CSS三大特性
- 层叠性
- 继承性
- 优先级
层叠性
层叠性:就近原则
- 样式冲突遵循的原则就是就近原则,那个样式离结构近,就执行那那个样式
- 同类种选择器,第二个选择器相同样式会覆盖第一个选择器
- 在同一个选择器中,相同的属性,以最后一个为准
- 主要解决样式冲突问题。
- 样式不冲突,不会叠加。
继承性
所谓继承性是指书写CSS样式表时,子标签会继承父标签的某些样式,子标签会继承父标签的某些此样式,如文本的颜色和字号。
- 恰当的使用继承可以简化代码,降低CSS的复杂性。
- 子元素可以继承父元素的样式(text-,font-,line- 这些元素开头的可以继承,以及color属性)
一,可以被继承的css属性
- 字体系列属性:font、font-family、font-weight、font-size、fontstyle;
- 文本系列属性:
- 内联元素:color、line-height、word-spacing(设置单词之间的间距)、letter-spacing(设置文本字符间距)、 text-transform(用于设置文本的大小写:uppercase所有字符强制转为大写,lowercase转小写,capitalize首字符强制转为大写);
- 块级元素:text-indent、text-align;
- 元素可见性:visibility
- 表格布局属性:caption-side(标题位置)、border-collapse(设置边框分离还是合并)、border-spacing(边框分离状态下设置边框间距)、empty-cells(定义如何渲染无可视内容的单元格边框和背景)、table-layout(定义用于布局单元格行和列的算法);
- 列表布局属性:list-style
二,不可以被继承的css属性
- display:规定元素应该生成的框的类型;
- 文本属性:vertical-align、text-decoration(用于设置文本的修饰线外观包括上/下划线,管穿线,删除线,闪烁 );
- 盒子模型的属性:width、height、margin、border、padding;
- 背景属性:background、background-color、background-image;
- 定位属性:float、clear、position、top、right、bottom、left、min-width、min-height、maxwidth、max-height、overflow、clip;
优先级
当同一个元素指定多个选择器就会由优先级产生。
选择器相同,则执行层叠性。
选择器不同,则根据选择器权重执行
选择器权重:
选择器 选择器权重 继承或者* 0,0,0,0 元素选择器 0,0,0,1 类选择器,伪类选择器 0,0,1,0 Id选择器 0,1,0,0 行内选择器 style=” “ 1,0,0,0 !important 重要性 无穷大 注意点:
权重是由四组数字组成,但不会有进位。
可以理解为类选择器永远大于元素选择器,id选择器永远大于类选择器。
等级判断,从左向右,如果某一位数值相同,则判断下一位数值。
可以简单记忆法:通配符和继承权重为0,标签选择器为1,类(伪类)选择器10,id选择器为100,行类样式为1000,!important 无穷大。
继承的权重为0,如果该元素没有直接选中,不管父元素权重多高,子元素得到的权重都是0。
权重叠加:如果是复合选择器,则会有权重叠加,需要计算权重多高
- div ul li ——> 0,0,0,3
- a:hover ——>0,0,1,1
- .nav ul li ——>0,0,1,2
- .nav a ——> 0,0,1,1