Que*_*tin 36
默认样式表由浏览器供应商提供.
用户样式表由浏览器的用户提供.
作者样式表由网页作者提供.
RBT*_*RBT 19
好问题!以下是各种样式表的详细说明:
默认(也称为用户代理/浏览器)样式表:首先,默认样式表也称为浏览器样式表或用户代理样式表.这是浏览器默认为其呈现的每个网页应用的样式表.因此,如果作为网页的作者,您不应用任何样式,即使这样也不是没有样式的.它仍然应用浏览器中安装的默认样式表中的样式细节.我们可以假设,它必须包含某些样式为所有标准的HTML标签如<span>
,<p>
,<h1>
等这 SO后提供有关的各种浏览器的默认样式表怎么看起来像巨大的细节.
查看以下HTML页面.我创建了一个非常基本的HTML表格,根本没有样式:
<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>
Run Code Online (Sandbox Code Playgroud)
但是你仍然看到表格的标题以粗体显示.这来自浏览器的默认样式表.
用户样式表:现在第二级是用户样式表.浏览器为您提供了扩展浏览器默认样式表的选项.对于例如在Internet Explorer中,你可以去Tool
> Internet Options
> General Tab
> Accessibility button
> Accessibility Window
> User style sheet section
"使用样式表编排文档格式"复选框>.
所以对于相同的html标签,如果我在自己的样式表中提供不同的样式(在这种情况下为"D:\ myuserstylesheet.css"),那么它将开始覆盖它.
myuserstylesheet.css
看起来像这样:
td
{
color: green;
}
现在,如果我在Internet Explorer浏览器设置中进行这些更改后加载包含简单表的同一网页,则用户样式表中的样式将重新开始覆盖浏览器样式表,如下所示:
作者样式表:然后是作者样式表,这是您在网站中定义的网站创建者/作者.这有三种口味:
<div style="width:20px;height:20px;background-color:#ffcc00;"></div>
<style>
标签内部定义的CSS样式<head>
.<head>
:<link rel="stylesheet" type="text/css" href="abc.css">
对于任何HTML元素,样式表的应用优先级有一个根本区别,如下所述:
对于!important
元素具有相同特异性碰撞的样式(最高优先级到最低优先级)
然后,对于正常样式,当元素具有相同特异性的碰撞时(从最高到最低优先级) - 它恰好相反
当不同类型的作者样式表之间存在相同特异性的冲突时,它们与HTML元素(文本顺序)的接近程度在决定优先级/优先级时很重要.它如下(最高到最低优先级):
注意:!important
与普通样式相比,样式始终具有更高的优先级.您可以阅读CSS更多关于特异性计算这里.