为什么用户代理样式表是要应用的最后一个样式表?

时间:2015-07-21 15:14:22

标签: css3 mcpd

我看到answer 谈到了样式表在网页中的应用顺序。

我正在学习认证,我遇到了这个问题:

  

问题:
  您正在使用HTML5和CSS3创建应用程序。风格   这些页面来自五个样式表。风格不是   正确应用于应用程序中的页面。你需要   确定样式表的应用顺序   浏览器。五种样式表应按哪种顺序排列?至   回答,从样式表类型列表中移动样式表类型   到答案区域并按照它们的顺序排列   应用

     

用户代理样式表
用户正常样式表
作者正常   样式表
作者重要的样式表
用户重要   样式表

     

答案:

     

用户普通样式表
作者普通样式表
作者   重要样式表
用户重要样式表
用户代理   样式表

为什么"用户代理样式表"最后一个应用?不是第一个因为它是浏览器的默认样式表吗?

1 个答案:

答案 0 :(得分:4)

@GoldShip,答案就在这里:

http://www.w3.org/TR/2011/REC-CSS2-20110607/cascade.html#cascade

从上面链接引用:

  

6.4.1级联顺序

     

要查找元素/属性组合的值,用户代理必须应用以下排序顺序:

     
      
  1. 查找适用于目标媒体类型的相关元素和属性的所有声明。如果关联的选择器与相关元素匹配且目标媒体与包含声明的所有@media规则上的媒体列表以及到达样式表的路径上的所有链接匹配,则声明适用。

  2.   
  3. 根据重要性(正常或重要)和来源(作者,用户或用户代理)进行排序。按升序排列:

         
        
    1. 用户代理声明
    2.   
    3. 用户正常声明
    4.   
    5. 作者正常声明
    6.   
    7. 作者重要声明
    8.   
    9. 用户重要声明
    10.   
  4.   
  5. 根据选择器的特异性对具有相同重要性和来源的规则进行排序:更具体的选择器将覆盖更一般的选择器。伪元素和伪类分别计为普通元素和类。
  6.   
  7. 最后,按指定顺序排序:如果两个声明具有相同的权重,来源和特异性,则后者指定获胜。导入样式表中的声明被认为是在样式表本身中的任何声明之前。
  8.