CSS选择器、优先级与匹配原理
为了分析Bootstrap源码,所以的先把CSS选择器相关的东东给巩固好 废话就不多说了 CSS 2.1 selectors,Part 1 计算指定选择器的优先级:重新认识CSS的权重
使用的规则也很简单,就是 选择器的权值加到一起,大的优先;如果权值相同,后定义的优先 。虽然很简单,但如果书写的时候没有注意,很容易就会导致CSS的重复定义,代码冗余。 从上面我们可以得出两个关键的因素:
记得以前看过一篇文章 256个class类名选择器干掉一个id选择器实例页面 http://www.zhangxinxu.com/study/201208/256-class-fire-an-id.html Gecko overflows the count of classes into the count of IDs,each of which holds 8 bits. — Cameron McCormack (@heycam) August 16,2012 给出的答案是:所有的类名(classes)都是以8字节字符串存储的。8字节所能hold的最大值就是255. 当同时出现256个class,势必会越过其边缘,溢出到id区域。 ? 总结: 比较同一级别的个数,数量多的优先级高,如果相同即比较下一级别的个数 ,至于各级别的优先级,大家应该已经很清楚了,就是: important > 内联 > ID > 类 > 标签 | 伪类 | 属性选择 > 伪对象 > 这也就解释了为什么11个标签的定义会比不上1个类的定义,1个类加11个标签会比不上2个类的权重高。 ? ? 选择器种类 查阅资料归纳下大概有如下几种:
css1-css3提供非常丰富的选择器,但是由于某些选择器被各个浏览器支持的情况不一样,所以很多选择器在实际css开发中很少用到 ? 关于CSS的执行效率:
? Google 资深web开发工程师Steve Souders对CSS选择器的效率从高到低做了一个排序:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |