css三大特性
三大特性:层叠性、继承性、优先级
层叠性
给相同的选择器设置了相同的样式,遵循“后来者居上”的原则,后面写的发生冲突的样式会代替前面写的样式,如果没法生冲突的样式,则不会覆盖。
eg:
div{
color: pink;
font-size: 18px;
}
div{
color:aqua; 相同div标签,都设置了颜色的属性,则后面的这个颜色会代替pink颜色,而字体大小不会改变,仍然是18px
}
继承性
子标签会继承父标签的某些样式,如文本颜色和字号。
某些样式:text-、font-、line-这些元素开头的可以继承,以及color属性。
行高的继承:
body {
font:12px/1.5 microsoft YaHei; line-height这里没写单位时,指行高为当前文字大小的1.5倍,即line-height=12px*1.5
}
div {
font-size:14px; 子元素div继承父元素的line-height,使行高为当前文字大小的1.5倍,即line-height=14px*1.5
}
优先级
当同一个元素指定了多个选择器,那么会执行那个选择器的样式呢?即优先级。
当选择器相同,则执行层叠性;
当选择器不同时,则根据选择器权重执行。
由上到下,权重越来越大,优先级越高:!important>行内样式表>id选择器>类选择器>标签选择器>继承
div {
color:pink!important; 后面有!important时,级别最高!
}
注意点:继承的权重是0。不管父亲的权重有多高,子元素的权重永远是0!
若ul指定了一个类选择器,而他的儿子li指定了一个标签选择器,虽然类选择器的权重高,但是li作为他的儿子继承的权重是0!标签选择器的权重是1 ,所以li使用的是标签选择器的样式
权重叠加:如果是复合选择器,就会有权重叠加的问题:标签选择器+标签选择器>标签选择器,即0001+0001=0002;类选择器+标签选择器>标签选择器+标签选择器,等。
权重虽然会叠加,但永远不会有进位的问题!!就算是10个0001叠加,结果也是000,10,绝对不会变成0010,超过类选择器