东莞市官网网站建设,网站建设的基本步骤,汕头网站seo外包,长沙最大的广告公司2019独角兽企业重金招聘Python工程师标准 我们在使用CSS对网页元素定义样式时经常会遇到这种情况#xff1a;要对一般元素应用一般样式#xff0c;然后在更特殊的元素上覆盖它们。那么我们怎么样来保证我们所新定义的元素样式能覆盖目标元素上原有的样式呢 我们在使用CSS对网页元素定义样式时经常会遇到这种情况要对一般元素应用一般样式然后在更特殊的元素上覆盖它们。那么我们怎么样来保证我们所新定义的元素样式能覆盖目标元素上原有的样式呢 在CSS中会根据选择器的特殊性来决定所定义的样式规则的次序具有更特殊选择器的规则优先于具有一般选择器的规则如果两个规则的特殊性相同那么后定义的规则优先。 那么又怎么来计算选择器的特殊性呢下面这张图介绍了特殊性的计算方法 我们把特殊性分为4个等级每个等级代表一类选择器每个等级的值为其所代表的选择器的个数乘以这一等级的权值最后把所有等级的值相加得出选择器的特殊值。 4个等级的定义如下 第一等代表内联样式如: style””权值为1000。第二等代表ID选择器如#content权值为100。第三等代表类伪类和属性选择器如.content权值为10。第四等代表类型选择器和伪元素选择器如div p权值为1。 例如上图为例其中#NAV为二等选择器.ACTIVE为三等选择器UL、LI和A为四等选择器。则整个选择器表达式的特殊性的值为1*1001*103*1113 下面是一些计算示例 注意通用选择器*子选择器和相邻同胞选择器并不在这四个等级中所以他们的权值都为0。 我们再来看一个具体的例子假如有以下组样式规则你能判断出HTML代码中的两个标题是什么颜色吗 01#content div#main-content h2{02 color:red;03}0405#content #main-contenth2{06 color:blue07}08body #content div[idmain-content] h2{09 color:green;10}1112#main-content div.paragraph h2{13 color:orange;14}15#main-content [classparagraph] h2{16 color:yellow;17}18div#main-content div.paragraph h2.first{19 color:pink;20}以下是HTML代码 01div idcontent02 div idmain-content03 h2CSS简介/h204 pCSSCascading Style Sheet可译为“层叠样式表”或“级联样式表”是一组格式设置规则用于控制Web页面的外观。/p05 div classparagraph06 h2 classfirst使用CSS布局的优点/h207 p1、表现和内容相分离 2、提高页面浏览速度 3、易于维护和改版 4、使用CSS布局更符合现在的W3C标准./p08 /div09 /div 判断出来了么答案是两个标题都是红色的 让我们来一起算算六个样式规则各自的特殊性的值 第一个特殊性的值2*1002*1202第二个特殊性的值2*1001201第三个特殊性的值1*1001*103*1113第四个特殊性的值1*1001*102*1112第五个特殊性的值1*1001*101*1111第六个特殊性的值1*1002*103*1123 清楚了吧第一个样式规则以其202的高分一举夺得了本次样式选择器特殊性大赛的冠军后面一些规则虽然看起来好像更复杂但特殊性并不是拼谁的选择器表达式写得更长ID选择器才是王道 理解选择器的特殊性很重要特别是在修复bug的时候因为你需要了解哪些规则优先及其原因。 如果你遇到了似乎没有起作用的CSS规则很可能是出现了特殊性冲突。请在你的选择器中添加他的一个父元素的ID从而提高它的特殊性。如果 这能解决问题就说明样式表中其他地方很可能有更特殊的规则它覆盖了你的规则。如果是这种情况你可能需要检查代码解决特殊性冲突让代码尽可能简 洁。 转载于:https://my.oschina.net/F08zhoubo/blog/300174