2

即将参加考试,我正在参加我们之前的考试。

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

一种。任何带有浏览器来源的声明
b. 带有用户来源的正常声明
c. 带有作者来源的正常声明
d. 文件级声明

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

干杯

4

3 回答 3

2

答案是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;
}
于 2012-11-18T06:51:22.477 回答
1

考试题是不正确的,因为考试题经常是。“文档级声明”这个表述不是一个专有名词,它有多种解释。此外,它使用“正常”这个词并没有具体说明其含义,但您可能猜对了它的意思是“没有!important”。

答案是“未定”,因为“a”包含一个带有 的浏览器样式表规则!important,它胜过“b”和“c”(以及“d”,除非它表示可能有的东西!important),但这样说是不正确的“a”通常胜过其他。编辑:可能会阅读规范,以使浏览器样式表不能具有!important或对其没有影响,但至少 Firefox html.css 使用!important(模糊)。

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

编辑:选项“d”可能只是为了混淆学生,因为如果它表示嵌入在 HTML 文档中的样式表,它是作者样式表的特例,并且嵌入不会影响级联规则(在嵌入的样式表中) withstyle和 linked with link,重要的是 HTML 元素的位置,而不是嵌入的与链接的东西)。

于 2012-11-18T07:47:22.323 回答
0

您正在引用CSS Cascading

所以,从链接

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

并且它们之间的优先级如下

默认情况下,作者样式表中的规则比用户样式表中的规则更重要。> 但是,对于“!important”规则,优先级是相反的。所有用户和作者规则都比 UA 的默认样式表中的规则具有更大的权重。

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

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

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

于 2012-11-18T09:08:09.020 回答