一、CSS3
1.1 css3
css3一些改变:
1 | 盒模型 |
css3 的使用不用进行任何声明,HTML可以使用css3 ,html 5 也可以使用css3 。只要浏览器支持就能渲染。
浏览器对于css3不认识的新属性不会报错,采用静默不处理方式。
1.2 属性选择器
之前学习的选择器有:
1 | 基础选择器:div{} #box{} .box{} *{} |
1.2.1 属性选择器:[]
css 3 中通过标签属性进行选中元素
[]
1 | img { |
1.2.2 开头匹配:^=
1 | /* 开头匹配 选择href中以 html开头的 a 标签*/ |
1.2.3 结尾匹配:$=
1 | /* 结尾匹配 选择href中以 html结尾的 a 标签*/ |
1.2.4 任意匹配:*=
1 | /* 任意匹配 选择href中有 2 的 a 标签*/ |
1.2.5 分组匹配:~=
表示含义:属性值必须是独立单位(只存在一个属性值,或者有其他属性值但必须用空格隔开)
html 5 可以自定义属性,以data- 开头
1 | /* 分组匹配 */ |
1.2.6 短横匹配:|=
选中元素必须以属性值开头,如果还有其他属性值必须以短横隔开
1 | /* 短横匹配 */ |
1.2.7 注意:可以省略标签名
属性选择器并不是必须以标签开头。省略标签名也是合法的。
1 | /* 省略标签名 */ |
1.2.8 注意:属性选择器也可以使用连续交集
1 | /* 属性选择器可以使用交集 中间不能有空格 */ |
1.3 儿子序选择器
儿子序选择器:
通过儿子在父级元素排名进行选中,只关心儿子在父亲盒子排名是老几,不关心儿子标签类型。
1.3.1 :first-child { }
元素:first-child {选中父级元素中第一个儿子}
1 | .box h3:first-child { |
1 | .box p:first-child { |
1.3.2 :last-child { }
元素:last-child {选中父级元素中最后一个儿子}
1 | .box p:last-child { |
1.3.3 :nth-child(n) {}
元素:nth-child(n) {任意一个儿子} n 是从 1 开始数的
1 | .box h3:nth-child(3) { |
1.3.4 :nth-child(an+b) {}
元素:nth-child(an+b) { 连续多个} n 是从0开始
an 表示2、4、6……
an+b 表示1、3、5……
1 | .box h3:nth-child(2n) { |
1 | .box h3:nth-child(2n+1) { |
1 | table, tr, td { |
tr20 20行 td10 10列
1.3.5 nth-last-child(n) { }
元素:nth-last-child(n) {倒数第几个儿子} n 从倒数第一开始
1 | .box p:nth-last-child(3) { |
1.3.6 :nth-last-child(an+b) { }
元素:nth-last-child(an+b) { 倒数连续多个} n 是从0开始(倒数)
an 表示2、4、6……
1 | .box p:nth-last-child(3n+2) { |
1.4 儿子类型序选择器
强调同种标签(类型的含义)中排名
:first-of-type 同种标签的老大
:last-of-type 最后一个
:nth-of-type(n) 任意 序号是从1 开始
:nth-of-type(an+b) 任意连续 n从0开始
:nth-last-of-type(n) 任意 n从倒数第一开始
:nth-last-of-type(an+b) 任意连续 n从0开始(倒数)
1 | /* 关注的是同种标签中的排名,而不是所有儿子标签中的整体的排名 */ |
1.5 关系节点选择器
1.5.1 后代选择器 div p { }
1.5.2 子代选择器 >
选中元素必须是儿子节点,不能选中孙子等其他元素
1 | .box > p { |
1.5.3 + 后面第一个亲兄弟(同一个父节点)
1 | /* + 表示后面第一个亲兄弟 */ |
1.5.4 ~ 表示后面所有的亲兄弟
1 | /* ~ 表示后面所有亲兄弟 */ |