CSS优先级-哪一个胜过



即将进行考试,我正在复习之前的考试。

问题:
当两个或多个样式表规则应用于同一元素时,以下哪种类型的规则将优先?

a。任何源自浏览器的声明
b。用户来源的正常声明
c。作者来源的正常声明
d。文档级别声明

那么答案是c还是d?我猜d是因为c是一个正常的声明,并不重要,但我在的任何地方都无法得到确切的答案

干杯

答案是Document-level declaration,它将把样式应用到最后一个链接样式表中声明的元素

测试用例

HTML

<html>
<head>
<link href="stylesheet1.css" rel="stylesheet" type="text/css" />
<link href="stylesheet2.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div>hello<!-- Color applied will be green --></div>
</body>
</html>

CSS

stylesheet1.css

div {
color: red;
}

stylesheet2.css

div {
color: green;
}

考试题是不正确的,因为考试题经常是错误的。"文档级声明"不是一个恰当的术语,它有多种解释。此外,它使用了"正常"一词,但没有具体说明其含义,但你可能猜对了,它的意思是"没有!important"。

答案是"尚未决定",因为"a"包含一个具有!important的浏览器样式表规则,它胜过"b"one_answers"c"(以及"d",除非它意味着可能具有!important),但说"a"通常胜过其他规则是不正确的编辑:可以阅读规范,这样浏览器样式表就不能有!important,或者它在其中没有效果,但至少Firefox html.css使用!important(不清楚)。

我敢打赌,考试的作者没有想到在浏览器样式表中使用!important规则的可能性,因此你应该回答"c"。

编辑:选项"d"可能只是为了混淆学生,因为如果它意味着嵌入HTML文档中的样式表,那么它是作者样式表的特殊情况,嵌入不会影响级联规则(在嵌入style并链接link的样式表中,重要的是HTML元素的位置,而不是嵌入与链接的东西)。

您正在重新定义CSS级联。

因此,从链接

样式表可能有三种不同的来源:作者、用户和用户代理。

,它们之间的优先级如下

默认情况下,作者样式表中的规则比用户样式表中规则的权重更大。然而,对于"!important"规则,优先级是颠倒的。所有用户和作者规则的权重都大于UA默认样式中的规则床单

级联顺序由优先级的升序定义

user agent declarations
user normal declarations
author normal declarations
author important declarations
user important declarations 

CSS的特殊性规则稍后会出现。

最新更新