默认,用户和作者样式表有什么区别?

时间:2013-08-15 12:10:54

标签: css

CSS中,默认用户作者样式表之间有什么区别?

4 个答案:

答案 0 :(得分:34)

默认样式表由浏览器供应商提供。

用户样式表由浏览器用户提供。

作者样式表由网页作者提供。

答案 1 :(得分:23)

2.1 Spec给出了很好的解释:

  1. 作者:作者根据文档语言的惯例指定源文档的样式表。例如,在HTML中,样式表可以包含在文档中或外部链接。
  2. 用户:用户可以指定特定文档的样式信息。例如,用户可以指定包含样式表的文件,或者用户代理可以提供生成用户样式表的界面(或者表现得像它一样)。
  3. 用户代理:符合要求的用户代理必须应用默认样式表(或表现得如此)。用户代理的默认样式表应以满足文档语言的一般表示期望的方式呈现文档语言的元素(例如,对于可视浏览器,HTML中的EM元素使用斜体字体呈现)。有关HTML文档的建议默认样式表,请参阅HTML的示例样式表。

答案 2 :(得分:19)

好问题!以下是各种样式表的详细说明:

  1. 默认(又名用户代理/浏览器)样式表:首先,默认样式表也称为浏览器样式表或用户代理样式片。这是浏览器通过默认为其呈现的每个网页应用的样式表。因此,如果作为网页的作者,您不应用任何样式,即使这样也不是没有样式的。它仍然应用浏览器中安装的默认样式表中的样式细节。我们可以假设它必须包含所有标准HTML标记的一些样式,例如<span><p><h1>This SO帖子提供了有关各种浏览器的默认样式表的详细信息。

    查看以下HTML页面。我创建了一个非常基本的HTML表格,根本没有样式:

  2. <html>
      <head>    
      </head>
    
    <body>
    
     <table>
      <tr>
        <th>Firstname</th>
        <th>Lastname</th> 
        <th>Age</th>
      </tr>
      <tr>
        <td>Jill</td>
        <td>Smith</td> 
        <td>50</td>
      </tr>
      <tr>
        <td>Eve</td>
        <td>Jackson</td> 
        <td>94</td>
      </tr>
    </table>
    
    </body>
    </html>

    但是你仍然看到表格的标题以粗体显示。这来自浏览器的默认样式表。

    enter image description here

    1. 用户样式表:现在第二个级别是用户样式表。浏览器为您提供了扩展浏览器默认样式表的选项。对于例如在Internet Explorer中,您可以转到Tool&gt; Internet Options&gt; General Tab&gt; Accessibility button&gt; Accessibility Window&gt; User style sheet section&gt; “使用我的样式表格式化文档”复选框。

      enter image description here

      因此,对于相同的html标签,如果我在自己的样式表中提供不同的样式(在这种情况下为“D:\ myuserstylesheet.css”),那么它将开始覆盖它。

      myuserstylesheet.css看起来像这样:

      td { color: green; }

      现在,如果我在Internet Explorer浏览器设置中进行这些更改后加载包含简单表格的同一网页,则用户样式表中的样式将重新开始覆盖浏览器样式表,如下所示:

      enter image description here

    2. 作者样式表:然后是作者样式表,您在网站中定义为该网站的创建者/作者。这有三种形式:

      • 内嵌:在标签内部定义,例如<div style="width:20px;height:20px;background-color:#ffcc00;"></div>
      • 内部/嵌入式:在html网页的<style>标记内的<head>标记中定义的CSS样式。
      • 外部:在单独的物理文件(例如abc.css)中定义的CSS样式,它们使用<head>标记内的链接标记应用于html网页:<link rel="stylesheet" type="text/css" href="abc.css">
    3. 对于任何HTML元素,样式表的应用优先级有一个根本区别,如下所述:

      对于!important样式,当元素具有相同特异性的碰撞时(最高优先级到最低优先级)

      1. 用户代理(浏览器)样式表
      2. 用户样式表
      3. 作者样式表
      4. 然后,对于正常样式,当元素具有相同特异性的碰撞时(最高到最低优先级) - 这只是反向

        1. 作者样式表
        2. 用户样式表
        3. 用户代理(浏览器)样式表
        4. 当不同类型的作者样式表之间存在相同特异性的冲突时,它们与HTML元素(文本顺序)的接近程度在决定优先级/优先级时很重要。它如下(最高到最低优先级):

          1. 内嵌(最靠近HTML标记。实际上它位于HTML标记内部)
          2. 内部/嵌入式(距HTML标签相对较远)
          3. 外部(距HTML标签最远,因为它实际位于HTML网页之外。)
          4. 注意!important样式与普通样式相比总是具有更高的优先级。 您可以在CSS here中阅读有关特异性计算的更多信息。

答案 3 :(得分:-1)

用户vs作者vs用户代理样式表

根据w3.org,CSS声明按以下顺序应用(从最低优先级到最高优先级): - 用户代理 -用户正常 -作者正常 -重要作者 -用户重要

这里是有关User vs Author vs User Agent style sheets

的更多详细信息的链接