版权声明:本文为博主原创文章未经博主允许不得转载。 /u/article/details/
根据元素的标签定位如下:
一個元素不好定位时,它的兄长元素很起眼可以借助兄长来扬名,因此不妨称之为“弟弟选择器”即选择某个元素的弟弟元素(先为兄,后为弟):
版权声明:本文为博主原创文章未经博主允许不得转载。 /u/article/details/
根据元素的标签定位如下:
一個元素不好定位时,它的兄长元素很起眼可以借助兄长来扬名,因此不妨称之为“弟弟选择器”即选择某个元素的弟弟元素(先为兄,后为弟):
在我们开始之前先搞明白几个概念吧。下面是一段CSS代码:
上面这个样式表是由一个个样式规则组成而每一个样式规则又可以分为两部分:选择符与声明。选择符就相當于jQuery的选择器能针对特定元素进行设置。CSS有名叫层叠样式表基本上被css选中文字样式的元素的子元素能继承它的样式,但其子元素如果設置了样式也能覆写它,就像板页岩这样累在一起随着布局表格这样落后的布局方式的式微,CSS越来越受到人们的重视但IE6对CSS的支持不足与各种层不穷的bug,或者是某些大型网站对CSS的不合理使用CSS的体积膨胀起来了。维护它们可是一件麻烦事如何让元素显示出想要的样式,我们就必须对权重这个概念有所了解权重你可以说是针对样式规则的,也可以说针对选择符之所以这样说,因为有一个重要的标识苻! important可以放到样式声明的最后用来无视本文重点说的权重等级。我觉得最好还是不要用这东西首先IE6对它支持不好,要支持它需要把一个樣式规则分开写另,用多了会严重扰乱CSS的权重等级
有关CSS权重等级的介绍最早见于W3C,听说IE5是最早支持CSS的不知哪个早一点呢?很明显IE是沒有完全照足它来实现在《Calculating a selector's specificity》一章,它粗略地用a、b、c、d来对样式规则进行评估给出每一个的得分(1 或 0),但没有给出最终值的计算方式
虽然到目前为止我们已经知道a的权重肯定大于b,而b大于cd最小,但这实在不好计算对于接着下来嘚示例也不好解说。于是我引进外国另一个补充方案它出于这篇名叫的有才文章。它把abcd当成算术上的个、十、百、千这样的计数单位,各自相乘最后一加优先级就一目了然啦。我们甚至可以将它们转化为以下一个直观的图示
好了,我们开始分析一下w3c的示例看它能給我们什么多余的信息。
/* 通配符选择器权重为0在IE中,它无法区分元素节点与注释节点 */ /* 标签选择器与伪元素为1 */ /*这里存在后代选择器的概念但计算权重时像它这样的关系选择器会被进一步肢解,当成两个标签选择器了*/ /* 无视后代选择器与相邻选择器,只看它里面的选择器的荿分 */ /* 这个相邻选择器由标签选择器与属性选择器组成属性选择器为10 */ /*无视后代选择器,3个标签与1个类选择器类(className)在DOM中的位置比较显赫, /*两个类选择器与一个标签选择器合计得分21 */ /*行内样式,得分1000会覆盖内部样式或外部样式的设置*/
最后总结一下,十大选择器与伪元素的權重情况:
拆分为两个选择器再计算 |
拆分为两个选择器再计算 |
拆分为两个选择器再计算 |
拆分为两个选择器再计算 |
0 |
版权声明:本文为博主原创文章未经博主允许不得转载。 /u/article/details/
根据元素的标签定位如下:
一個元素不好定位时,它的兄长元素很起眼可以借助兄长来扬名,因此不妨称之为“弟弟选择器”即选择某个元素的弟弟元素(先为兄,后为弟):