你的位置:首页 > 网页设计

[网页设计]常见布局bug及修复方案—选择器特殊性问题

最简单的一些CSS问题是由代码中的打字和语法错误造成的。例如,在声明末尾忘了加分号,或者在应该输入font-family时输入了font-face。通过CSS Validator 等服务运行代码可以突出显示所有语法错误, 并且显示错误所在的行和对每个错误的简短描述。除了语法错误之外,比较常见的一个问题与特殊性和分类次序有关。在将一个规则应用于一个元素时,如果发现没有任何效果,这时往往存在特殊性问题。可以应用其他规则而且它们会工作正常,但是某些规则似乎不起作用。在这些情况下,问题往往是己经在文档的其他地方使用更特殊的选择器为这个元素定义了规则。

首先介绍一下选择器特殊性的概念:
  为了计算规则的特殊性,给每神选择器都分配一个数字值,然后,将规则的每个选择器的值加在一起,计算出规则的特殊性。可惜特殊性的计算不是以10为基数的,而是采用一个更高的未指定的基数。这能确保非常特殊的选择器(比如ID选择器不会被大量一般选择器(比如类型选择器)所超越,但是,为了简化,如果在一个特定选择器中的选择器数量少于10个,那么可以以10为基数计算特殊性。
选择器的特殊性分成4个成分等级:a、b、c、d
  • 如果样式是行内样式,那么a=1
  • b等于ID选择器的总数。
  • c等于类、伪类和属性选择器的数量。
  • d等于类型选择器和伪元素选择器的数量。
使用这些规则可以计算任何CSS选择器的特殊性,下表给出了一些示例。


通过比较最后一列,我们很容易得出特殊性的优先级。
在下面的示例中,开发人员希望将内容区域中的段落背景设置为红色,但是希望下联second段落为蓝色。
 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5   <title>css布局</title> 6   <style type="text/css"> 7     body { 8       margin: 0; 9       padding: 0;10     }11     .poem p {12       background-color: red;13    }14     .second{15     background-color: blue;16    }17   </style>18 </head>19 <body>20   <div class="poem">21     <p class="first">床前明月光</p>22     <p class="second">疑是地上霜</p>23     <p class="first">举头望明月</p>24     <p class="second">低头思故乡</p>25   </div>26 </body>27 </html>
 (修改前)    
但是在浏览器中显示second段落仍为红色。这是因为与选择second段落的选择器相比,选择内容区域中所有段落的选择器的特殊性更强,在浏览器的开发者工具中也很容易发现第二个样式被前面的覆盖了。为了实现想要的结果,需要让选择second段落的选择器更特殊。在这种情况下,最好的方法是在second段落选择器的幵头添加内容元素的class:
.poem .second{background-color: blue;}
(修改后)
 
 

来自为知笔记(Wiz)


什么时候去贵州旅游最好贵州跟团旅游报价多少贵州旅游必去的地方是贵州旅游必去景点排名贵州旅游地图线路大全珠海一棵树休闲农庄有公交车吗?一棵树农庄乘坐几路车? 走进老天津卫 做一回纯正的本地人 日照刘家湾赶海园门票价格是多少、开放时间是什么时候? 在布里斯班必做的五件事 大学城广东科学馆地址?大学城广东科学中心乘车路线? DFS集团T广场于铜锣湾希慎广场盛大开幕 宝墨园和南粤苑一天时间能逛完吗?宝墨园南粤苑套票可以预订吗? 宝墨园景区的特色与创新?南粤苑是宝墨园的一部分吗? 南京周园简介?南京溧水周园图片介绍? 济源怎么去焦作神农山?济源到神农山怎么走? 西安海洋馆表演时间?西安曲江海洋馆表演节目有什么? 曲江海洋馆有学生票吗?西安曲江海洋馆优惠票怎么买? 春节回家,怎么样才能买到特价车票? 站票半价有可能吗? 春节回家给父母带什么最贴心? 春节旅游要谨防哪些陷阱? 556-3204-304F Datasheet 556-3204-304F Datasheet 556-3205-304 Datasheet 556-3205-304 Datasheet 556-3205-304F Datasheet 556-3205-304F Datasheet 河源去图瓦卢旅游 河源去图瓦卢旅游 河源去图瓦卢旅游 河源去土耳其旅游 河源去土耳其旅游 河源去土耳其旅游 河源去土库曼斯坦旅游 河源去土库曼斯坦旅游 河源去土库曼斯坦旅游