天天看点

CSS随笔

标签选择器

<code>p{}</code>

类选择器

<code>.class1{}</code>

id选择器

<code>#class1{}</code>

通配符 *

后代选择器 匹配标签下所有元素//

<code>ul li a{}</code>

<code>.className li a{}</code>

子元素选择器 仅匹配子元素/

<code>.className &gt; a{}</code>

并集选择器|

<code>div,ul {}</code>

伪类选择器

链接伪类选择器

<code>a:link /*选择所有未被访问过的链接*/</code>

<code>a:visited /*选择所有已被访问过的链接*/</code>

<code>a:hover /*选择鼠标悬停的链接*/</code>

<code>&lt;!-- - .classA:hover .classB {}//鼠标经过classA时,对classB操作 --&gt;</code>

<code>a:active /*选择活动链接(鼠标按下未弹起的链接)*/</code>

focus 伪类选择器 选取获得焦点(光标)的表单元素

一般情况 <code>&lt;input&gt;</code> 类表单元素才能获取,因此这个选择器主要针对表单元素

<code>input: focus{}</code>

font-style//字体样式(italic斜体,normal正常)

font-weight//字体粗细(700加粗,400正常)

font-size/line-height//字体大小(px)// 12px/1.5(1.5:行高为当前文字大小1.5倍)

font-family//字体系列,取首位有效字体

字体复合属性顺序, font-style font-weight 可省略

body{

font: font-style font-weight font-size/line-height font-family

}

color red/ #FFFFFF// rgb(0,0,0)

text-align 文本对齐

left(默认)

right

center

text-decoration 下划线

underline

line-through

overline

none

text-indent 缩进

text-indent: 3em;//3个当前文字距离

text-indent: 30px;

line-height 行间距

line-height: 25px

垂直居中:行高==盒高//c3盒子模型内容高度为减去边框padding后的内容height

css 引入

内部样式表

行内样式表

<code>&lt;p style = "color: red;"&gt;风雨过后&lt;/p&gt;</code>

外部样式表

<code>&lt;link rel="stylesheet" href="style.css"&gt;</code>

padding 属性是以下各内边距属性的简写属性:

padding-top

padding-right

padding-bottom

padding-left

块元素

<code>&lt;h1&gt;-&lt;h5&gt; &lt;p&gt; &lt;div&gt; &lt;ul&gt; &lt;li&gt;等</code>

可以控制宽度高度内边距

宽度默认是父级宽度100%

独占一行

容器

文字类元素内不能使用块级元素<code>&lt;p&gt; &lt;h1&gt;-&lt;h6&gt;</code>

行内元素

<code>&lt;a&gt; &lt;span&gt; &lt;em&gt; &lt;b&gt;</code>

一行可以显示多个行内元素

高宽度设置无效

默认宽度是它本身的宽度

行内元素只能容纳文本或其他行内元素

链接内不能放标签

特殊情况<code>&lt;a&gt;</code>里面可以放块级元素,//<code>&lt;a&gt;</code> 转换块级模式

行内块元素

<code>&lt;img&gt; &lt;input&gt; &lt;td&gt;</code>

和相邻行内元素(行内块)在一行上,但是他们之间会有空白间隙,一行可以显示多个

默认宽度就是它本身内容的宽度

高度行高外边距可控制

元素显示模式转换

行内元素a转换为块级元素

<code>a{height: 10px; display: block;} //设置点击区域</code>

转换为行内元素(不能设置宽高)

<code>display: inline</code>

转换为行内块

<code>display: inline-block</code>

背景颜色

<code>background-color :transparent; //默认透明</code>

背景图片

<code>background-image: (url)</code>

默认水平和垂直方向平铺

<code>background-repeat: repeat | no-repeat | repeat-x | repeat-y</code>

位置

<code>background-position: x y;background-position: left top;</code>

<code>background-position: top|center|bottom|left|center|right</code>

使用方位名词与顺序无关,省略时居中

是否滚动

<code>background-attachment: fixed|scroll...</code>

复合属性 background :颜色 地址 平铺 滚动 位置

<code>background: transparent url(x.png) no-repeat fixed top</code>

背景色半透明

<code>background: rgba(0,0,0,0.3)//a 不透明度 仅背景颜色</code>

<code>background: rgba(0, 0, 0, 0.6) url(./pic/bgi.png) no-repeat fixed top;</code>

<code>opacity: 0.3;//所有子元素继承相同透明度</code>

层叠性 //就近

继承性 //子继承父

优先级

继承或* &lt; 元素选择器&lt; 类选择器 &lt; id选择器 &lt; 行内style &lt; important // color: xxx!important 权重((0,0,0,0) (0,0,0,1) 0010,0100,1000,无穷大)

权重的叠加,不进位

继承:0

不继承:

-li: .nav li(10+1=0011)

<code>border边框 (border/border-top/border-left...)</code>

<code>border-width//边框的粗细px</code>

<code>border-style//边框样式//实线 solid 虚线dashed 点线dotted...</code>

<code>boeder-color</code>

<code>border-collapse//表格细线边框</code>

<code>border 复合写法 border: 1px solid transparent</code>

<code>边框影响盒子大小(边框width独立于盒子宽高)</code>

<code>border-radius: 5px;</code>

-<code>border-radius: 50%;//长度50%</code>

<code>border-radius: 10px 20px 30px 40px;//左上-顺时针</code>

<code>border-top-left-radius: 10px;//左上</code>

content 内容px

padding 内边距

边框与内容之间的距离

复合写法

一个值:padding: 2px;上下左右

两个值:padding: 2px 5px;上下2,左右5

三个值:padding: 1px 2px 3px;上1 左右2 下3

四个值padding:1px 2px 3px 4px;上1 右2 下3 左4 (顺时针)

影响盒子大小

<code>盒子本身没有指定width/height属性,则此时padding不会撑开盒子宽/高</code>

marjin 外边距 盒子之间距离

marjin-botton/top/

复合同padding

水平居中块级盒子

盒子必须指定宽度

左右外边距设置为auto

<code>marjin-left: auto;marjin-right: auto;</code>

<code>marjin: 0 auto</code>

水平居中行内元素

父元素添加 text-aline: center

水平居中行内块元素

外边距合并-嵌套块元素塌陷

清除内外边距

行内元素为了照顾兼容性,尽量只设置左右内外边距,不设置上下内外边距(可以转换成行内块元素 display:inline-block)

阴影

box-shadow: h-shadow v-shadow blur spread color inset;

水平位置 允许负值

垂直位置的阴影

(可选)模糊距离//虚实

(可选)尺寸

(可选)颜色

(可选)将外阴影(outset)改为内阴影inset

文字阴影 text-shadow: 1px 1px rgba()

多个块级元素纵向排列-标准流

多个块级元素横向排列-浮动( - 行内块空隙)

块级,行内元素

浮动元素会脱离标准流(脱标)

不保留原先的位置,(浮动图层)

浮动元素会一行内显示并且元素顶部对齐

浮动元素会具有行内块元素的特性

行内元素/块元素添加浮动-&gt;行内块元素(width,height)

与标准流父级一起使用;一浮全浮

浮动只影响后面的标准流,不影响前面的标准流

元素浮动,后面的标准流占据浮动元素(重叠),

不影响浮动元素前面的标准流(浮动元素前面的标准流独占一行,浮动元素另起一行,上限为标准流底部)

清除浮动

清除浮动元素脱离标准流造成的影响

闭合浮动 只让浮动在父盒子内部影响不影响父盒子外面的其他盒子

父级盒子不方便给高度,浮动盒子不占有位置,导致父级盒子高度为0

额外标签法(隔墙法)

在浮动元素末尾添加一个空的块级标签

div{clear: both;}

父级元素添加overflow: //hidden

:after伪元素 父级添加clearfix类

双伪元素

静态定位 static

相对定位 relative

相对原来的位置

不脱标,保留原来位置

宽度默认变为100%

绝对定位 absolute

没有父元素或父元素未定位,以浏览器为基准(Document)

父元素有定位(相对,绝对,固定定位),则以最近一级有定位的父元素为参看点(子绝父相)

脱标,不占有位置

水平/垂直居中

left: 0%

margin-left: -1/2width px;

宽度默认变为0

固定定位 fixed

固定于浏览器可视区的位置(浏览器页面滚动时元素位置不会改变)

不占有原来位置

粘性定位 sticky

以浏览器可视窗口为参照点(fixed)

占有原先的位置(relative)

必须添加top/left/right/bottom之一才有效

不兼容ie

定位叠放次序 z-index

只有定位的盒子有z-index

数值越大越靠上

z-index: 1;

定位特殊特性

行内元素添加绝对定位或固定定位,可以直接设置高度和宽度

块级元素添加绝对定位或固定定位,如果不给高度或宽度,默认大小是内容的大小

浮动元素只会压住下面标准流的盒子,不会压住文字或图片(文字环绕)

绝对定位或固定定位会压住所有内容

display

display: none;//隐藏,位置不保留

display: block;//显示/块

visibility

visibility: visible;

visibility: hidden;//隐藏后继续保留原来位置

overflow

溢出

visible(默认)

hidden

scroll//显示滚动条(溢出and不溢出)

auto//溢出显示滚动条

可能隐藏有溢出的定位元素

精灵图

将多个小背景图整合到一个大图片 减少请求次数

background-img

background-position:x y;//左上移动为负

background: url() no-repeat -1px -2px;

将盒子width height 设为零

width: 0;

height: 0;

cursor: default//pointer/move/text/not-allowed

表单边框(input textarea..)

outline // 取消外边框 outline: none;

防止文本域移动

resize: none

vertical-align 使行内元素盒模型与其行内元素容器垂直对齐。例如,用于垂直对齐一行文本内的图片

行内元素 行内块元素

&lt;./p/Snipaste_2021-08-19_08-24-45.png&gt;

由于图片默认(行内块元素)与文字基线对齐(base-line)

产生 图片底侧空白缝隙

1.更改vertical-align: bottom...

display: block

单行文本溢出省略号显示

条件:

强制一行内显示文本

white-space: nowrap (默认normal 自动换行)

超出部分隐藏

overflow: hidden

文字用省略号代替超出的部分

text-overflow: ellipsis

多行文本溢出省略号显示(控制盒子大小)

有较大兼容性问题,适合webKit浏览器或移动端

word-break: break-all;单词所有单词碰到边界一律拆分换行

使浮动盒子边框重叠

显示被覆盖的盒子边框-提高层级

无定位

鼠标经过增加position: relative;

有定位

z-index

浮动元素不会压住文字

块中 行内元素,行内块元素与其内容水平居中

<code>&lt;video&gt;</code>

常见属性

autoplay: autoplay;//视频就绪自动播放(谷歌浏览器需用muted解决自动播放问题)

<code>&lt;video src="#" muted&gt;&lt;/video&gt;</code>

...https://www.runoob.com/tags/tag-video.html

audio

autoplay 谷歌浏览器禁用

...https://www.runoob.com/tags/tag-audio.html

input类型

type: search 限制输入内容

....https://www.runoob.com/tags/att-input-type.html

新增表单属性

required=required // 表单拥有该属性表示其内容不能为空

placeholder = 提示文本//表单的提示信息,存在默认值将不再显示

autofocus = autofocus//自动聚焦属性,页面加载完成自动聚焦到指定表单

autocomplete

multiple= multiple //可以多选文件提交

input[value]//只选择有value的input//权重11

input[type=text]//只选择type=text的input

input[type^=val]//以val开头

input[type$=val]//以val结尾

input[type*=val]//含有val

E:first-child//匹配父元素中的第一个子元素E

E:last-child//匹配父元素中的最后一个E元素

E:nth-child(n)//匹配父元素中第n个子元素E

根据: 前面的空格位置判断父元素

ul :first-child//ul中第一个子元素

ul li:first-child//ul中第一个li元素

lu li :first-child//ul中li的第一个子元素

nth-child(even)//第偶数个

nth-child(odd)//奇数

nth-child(n)//n=0,1,2....第0个和超出的被忽略

2n

2n+1

5n [5,10,15...]

n+5 [5,]

-n+5 [1,..5]

section div:nth-child(1)

section 第一个子元素需要为div

nth-child 会把所有的盒子排列序号

执行时先看 :nth-child(1) 之后回去看前面div //是否匹配//选择//忽略

nth-of-type

section div:nth-of-type(1)

会把指定的盒子排序

执行时先看 div指定的元素 之后回去看 :nth-of-type(1)

利用CSS创建新标签元素

选择符:

::before 在元素内部的前面插入内容

::after 在元素内部的后面插入内容

box-sizing: content-box 盒子大小为width+padding+border(默认)

box-sizing: border-box 盒子大小为width// padding和border不会撑大盒子(前提是padding border不超过width)//IE怪异盒模型

filter: blur(5px);//blur模糊处理 数值越大 越模糊

width: clac(100% - 30px);

transition: 要过度的属性 花费时间 (运动曲线) (何时开始) //谁做过渡给谁加

transition: width 1s

transition: width 1s, height 1s;

transition: all 0.5s//所有元素

本文来自博客园,作者:w0000,转载请注明原文链接:https://www.cnblogs.com/w0000/p/15141190.html