2.2层叠
原理:为规则赋予不同的重要程度
允许用户使用!important标注来覆盖规则,主要是出于无障碍交互的需要
p{
font-size:1.5em !important;
color:#666 !important;
}
层叠机制的重要性由高到低:
~标注为!important的用户样式
~标注为!important的作者样式
~作者样式
~用户样式
~浏览器(或用户代理)的默认格式
在此基础上,规则再按选择符的特殊性排序。特殊性高的选择符会覆盖特殊性低的选择符。如果两条规则的特殊性相等,则后定义的规则优先。
2.3特殊性
每种选择符都对应着一个数值。
如果某条规则中用到的选择符不足10个,用十进制计算其特殊性,四个级别a,b,c,d
~行内格式,a为1
~b等于ID选择符的数目
~c等于类(class)选择符、伪类选择符及属性选择符的数目
~d等于类型(type)选择符和伪元素选择符的数目
(*)的特殊性为0。如果两条规则的特殊性相等,就必须考虑规则再样式中的位置,以及选择符的次序。
为了使代码不因为特殊性而复杂化,更好的做法是从一开始就简化选择符,降低特殊性。
intro-highlighted在<p class-"intro" intro-highlighted>这种标签中使用,会避免很多不必要的覆盖麻烦。
2.4继承
定义:有些属性,像颜色或字体大小,会被应用他们的元素的后代所继承
如果要设置的属性是一个可继承属性,那么应该考虑是否直接设置到父元素上。
通用选择符的特殊性为0,但仍然优先于继承的属性。
合理利用继承有助于减少选择符的数量
2.5为文档应用样式
(1).可以把样式放在style元素中,直接放在文档的head部分。
(2)link元素外链<link href="base.css" rel="stylesheet">
(2)@import外链<style>@import url("base.css");</style>
(4)推荐link方法
(5)层叠机制的原理是次序决定优先级:如果为某个元素应用样式时,有两个或更多特殊性相等的规则相互竞争,则后声明的样式胜出
(6)度量Web性能的一个重要指标就是网页内容实际显示在屏幕上需要多久。这个指标有时候也叫“渲染时间”或“上屏时间”
(7)提高性能:1.减少HTTP请求2.压缩和缓存内容3.不让浏览器渲染阻塞JavaScript