当前位置:首页 >> 网页制作

举例详解CSS中的的优先级

计算优先级

优先级是根据由每种选择器类型构成的级联字串计算而成的。他是一个对应匹配表达式的权重。 如果优先级相同,靠后的 CSS 会应用到元素上。

注意:元素在文档树中的位置是不会影响优先级的
优先级顺序

优先级逐级增加的选择器列表:

    通用选择器(*)
    元素(类型)选择器
    类选择器
    属性选择器
    伪类
    ID 选择器
    内联样式

基于类型的优先级

优先级是根据选择器类型进行计算的. 在下面的例子中,属性选择器尽管选择了一个ID但是在优先级计算法则中还是根据其类型计算。
有如下样式声明:


CSS Code复制内容到剪贴板
  1. * #foo {   
  2.   color: green;   
  3. }   
  4. *[id="foo"] {   
  5.   color: purple;   
  6. }  

将其应用在下面的HTML中:


XML/HTML Code复制内容到剪贴板
  1. <p id="foo">I am a sample text.</p>  

演示例子:https://jsfiddle.net/donqi/vmo5m3re/
选择器优先级一致

优先级相同的情况下,后边定义的会覆盖前边定义的


XML/HTML Code复制内容到剪贴板
  1. <div class="box padding border"></div>  
  2. <div class="box border padding"></div>  
  3. <div class="padding box border"></div>  

css:


CSS Code复制内容到剪贴板
  1. div{   
  2.     height:100px;   
  3.     width:100px;   
  4.     padding:20px;   
  5.     margin:20px;   
  6.     border:10px solid hsla(0,0%,0%,0.5);   
  7.     background-color:#ccc;   
  8.     background-image:url("/favicon.png");   
  9.     background-repeat:space;   
  10.     background-origin:content-box;   
  11. }   
  12. div.box{   
  13.        
  14.     background-clip:content-box;   
  15. }   
  16. div.border{   
  17.     background-clip:border-box;   
  18. }   
  19. div.padding{   
  20.     background-clip:padding-box;   
  21. }  

演示例子: https://jsfiddle.net/donqi/wvLpwz48/