Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有title属性的CSS样式表链接的优先级_Css_Operator Precedence - Fatal编程技术网

具有title属性的CSS样式表链接的优先级

具有title属性的CSS样式表链接的优先级,css,operator-precedence,Css,Operator Precedence,我看到: 他们似乎都说,对于同一个选择器多次出现,最后一个选择器获胜。然而,对我来说,情况并非如此。因此,鉴于“Aqua.css”具有: “Red.css”有: 然后使用以下命令: <link rel="stylesheet" type="text/css" href="Aqua.css" title="Aqua"/> <link rel="stylesheet" type="text/css" href="Red.css" title="Red"/> <

我看到:

他们似乎都说,对于同一个选择器多次出现,最后一个选择器获胜。然而,对我来说,情况并非如此。因此,鉴于“Aqua.css”具有:

“Red.css”有:

然后使用以下命令:

<link rel="stylesheet" type="text/css" href="Aqua.css" title="Aqua"/>
<link rel="stylesheet" type="text/css" href="Red.css" title="Red"/>
<style type="text/css">
body {color: lime;}
body {color: yellow;}
</style>

主体{颜色:石灰;}
正文{颜色:黄色;}
最后一个是黄色,正如其他答案所说。但是,如果我将其更改为:

<style type="text/css">
body {color: lime;}
body {color: yellow;}
</style>
<link rel="stylesheet" type="text/css" href="Aqua.css" title="Aqua"/>
<link rel="stylesheet" type="text/css" href="Red.css" title="Red"/>

主体{颜色:石灰;}
正文{颜色:黄色;}
然后使用水,而不是最后一个,红色。看见体色为浅绿色,但Aqua.css在Red.css之前。我找到的所有答案都说身体的颜色是红色的

每当我有多个指向css样式表的链接时,它们之间唯一的区别就是某个东西(元素或类或任何东西)的颜色,然后使用第一个样式表,而不是最后一个,但这似乎不是我读到的所有内容都应该发生的。我试过Edge、Chrome和IE;我注意到它们之间没有相关的区别

因此,我有以下两个问题:

  • 我看到的行为(使用第一个链接标记而不是最后一个链接标记)与其他答案不同,这是否正确
  • 如果是,为什么
我很抱歉,如果我应该发布一个其他线程的答案,但我认为创建一个新问题更干净

我提出这个问题的原因是,我正在尝试创建一个动态样式表系统,因此理解优先级更为重要,只是尝试一些东西来看看哪些东西比正常情况下更有效。我将尝试解释规范,但在其他答案中,我想了解其他线程中提供的内容。

免责声明:我以前的答案和思路完全错误,因此我将其删除,我将此作为替换发布,以免与之前的任何讨论混淆

当您给
元素一个
title
属性时,您将其定义为一个替代样式表集

<link rel="stylesheet" type="text/css" href="Aqua.css" title="Aqua"/>
                                                       ^^^^^^^^^^^^
<link rel="stylesheet" type="text/css" href="Red.css" title="Red"/>
                                                      ^^^^^^^^^^^

^^^^^^^^^^^^
^^^^^^^^^^^
风格的优先性是一个模糊的概念。
Red.css
样式从未被应用,因为该样式表集当前未处于活动状态

:

此外,title属性在这个元素上有特殊的语义:链接的title;替代样式表集名称

也值得一读:

文档不需要有单个样式表。您可以为它提供默认样式和任意数量的备选方案,供读者选择。例如,此页面包含所有W3C核心样式,以及Web上其他地方的两个样式表(作者:David Baron)

读者如何选择备选方案取决于浏览器。并非所有的浏览器都提供菜单,但很多浏览器都提供。例如,在Opera、Internet Explorer和Firefox中,您可以在“查看”菜单下找到样式。自2012年起,Chrome需要扩展(例如Decklin Foster的样式选择器)


在定义替代样式表时,应该使用
rel=“alternative stylesheet”
,但这似乎是浏览器预期的行为。删除
title
属性,
元素返回规范中定义的标准行为。

我相信答案是,无法保证将首先加载哪个样式表,以及将按什么顺序设置主体属性。这就是为什么你不应该这样做的原因。@Rob,“不能保证哪个样式表将首先被加载”加载顺序与此无关。只要加载了所有样式表,DOM顺序就会严格定义将应用哪些样式。这里不涉及模糊逻辑或猜测。@zzzzBov我对此不太确定,我想回忆一下我前一段时间读到的一篇文章,关于不保证首先应用什么。如果您有两个外部样式表,它们都包含与本问题中相同元素的相同CSS属性,并且第二个样式表在第一个之前完成下载,那么应用哪一个?如果我能肯定地回忆起来,我会回答这个问题,但我现在没有时间尝试找到这个答案。我所想的可能不适用于此,但这是可以研究的。“如果您有两个外部样式表,都包含与本问题中相同元素的相同CSS属性,并且第二个样式表在第一个样式表应用之前完成下载?”谢谢。你的错误被原谅,错误就会发生。请理解当知道有事情正在发生,而其他人却忽视了我所看到的是多么令人沮丧。我希望你明白我的意思。而且,CSS似乎不必要地复杂。我不明白你在这里说的大部分内容(我将继续学习),但重要的是标题是“问题”。现在我知道title属性比一些人意识到的更相关,我希望这也能帮助其他人。
<style type="text/css">
body {color: lime;}
body {color: yellow;}
</style>
<link rel="stylesheet" type="text/css" href="Aqua.css" title="Aqua"/>
<link rel="stylesheet" type="text/css" href="Red.css" title="Red"/>
<link rel="stylesheet" type="text/css" href="Aqua.css" title="Aqua"/>
                                                       ^^^^^^^^^^^^
<link rel="stylesheet" type="text/css" href="Red.css" title="Red"/>
                                                      ^^^^^^^^^^^