一,复合选择器
1,css 三大特性
1.1 层叠性
作用:解决样式冲突
1,样式冲突,遵循就近原则,那个离结构近,执行那个
1,样式不冲突,不会层叠
1.2 继承性
13 优先级
通常可以将css的优先级由高到低分为6组:
第一优先级:无条件优先的属性只需要在属性后面使用**!important**。它会覆盖页面内任何位置定义的元素样式。ie6不支持该属性。
第二优先级:在html中给元素标签加style,即内联样式。该方法会造成css难以管理,所以不推荐使用。
第三优先级:由一个或多个id选择器来定义
第四优先级:由一个或多个类选择器、属性选择器、伪类选择器定义
第五优先级:由一个或多个类型选择器定义
第六优先级:通配选择器
内联样式:写在标签属性style的样式,如 <p style="color=red">
ID选择器,如#id{…}
类选择器,如 .class{…}
属性选择器,如 input[type="email"]{…}
伪类选择器,如a:hover{…}
伪元素选择器,如 p::before{…}
标签选择器,如 input{…}
通配选择器,如 *{…}
继承的权重为0
2, 权重叠加
选择器 | 权重 |
!important | 无穷大 |
内联式 | 1,0,0,0 |
ID选择器 | 0,1,0,0 |
类选择器 / 属性选择器 /伪类选择器 | 0,0,1,0 |
标签选择器 / 伪元素选择器 | 0,0,0,1 |
继承的权重为0
举例:
ul li{ /*它们都是标签选择器,故权重为 0,0,0,2*/
color: red;
}
.nav ul li{ /*因为有一个类选择器,两个标签选择器,故权重就是 0,0,1,2*/
color: red;
}
权重虽然会有叠加但是不会有进位