CSS Precedence - 哪一个胜过?

时间:2012-11-18 06:48:16

标签: css

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

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

一个。任何具有浏览器来源的声明
湾用户来源的正常声明
C。与作者出身的正常声明
d。文件级声明

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

干杯

3 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:1)

考试题目不正确,因为考试题目经常出现。表达“文档级声明”不是一个合适的术语,它有多种解释。此外,它使用“正常”一词而没有指明其含义,但你可能正确地猜测它意味着“没有!important”。

答案是“未定”,因为“a”包含一个带有!important的浏览器样式表规则,它胜过“b”和“c”(和“d”除非它意味着可能有{{ 1}}),但是说“a”通常胜过其他人是不正确的。 修改:可能会读取规范,因此浏览器样式表不能包含!important或者它们没有效果,但至少Firefox html.css使用!important (不明显)。

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

编辑:选项“d”可能只是让学生感到困惑,因为如果它意味着HTML文档中嵌入的样式表,那么这是作者样式剪辑的一个特例,并且是嵌入式的不影响级联规则(在嵌入!important并与style链接的样式表中),重要的是HTML元素的位置,而不是嵌入式和链接的内容。

答案 2 :(得分:0)

您正在审核CSS Cascading

所以,从链接

  

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

和它们之间的优先顺序如下

  

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

级联顺序由优先级升序

定义
user agent declarations
user normal declarations
author normal declarations
author important declarations
user important declarations 

CSS specificity Rules后来出现了。