我看到:优先
- CSS 2, precedence of stylesheets imported using link element
- In which order do CSS stylesheets override?
- stylesheet - Can one CSS file take priority over another CSS file?
他们都好像说的是,对于相同的选择发生多次,最后一个胜。但是,这不是我所遇到的。因此,考虑到 “Aqua.css” 有:
body {color:aqua;}
和 “Red.css” 有:
body {color:red;}
然后使用以下:
<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,而不是最后一个,红色。见Precedence of CSS rules Sample 2。体色是水族但Aqua.css是Red.css之前。所有我找到的答案说,车身颜色将是红色。
每当我有多个链接到CSS样式表和它们之间唯一的区别是什么颜色(元素或类或其他),则使用第一样式表,而不是最后,但似乎不是我读过的每一样东西都应该发生。我曾尝试Edge,Chrome和IE;我注意到他们之间没有相关的区别。
所以,我有以下两个问题:
- 我是正确,我看到的行为(第一个链接标签被用来代替过去的)是从其他的答案有什么不同?
- 如果是这样的话,为什么?
我很抱歉如果我应该发布了其他线程之一的答案,但我认为创建一个新问题更为清晰。
的原因,我问的是,我想创建一个动态的系统样式这么理解的优先级是更重要的,它是不那么有效,只是试一下,看比在正常情况下,是什么在起作用。我将试图解释规范,但到已经在其他的答案的程度,我想了解什么已经在其他线程这里提供。
我相信答案是,不能保证哪个样式表将首先被加载,并且以什么顺序设置主体属性。这就是为什么你不应该这样做。 – Rob
@Rob,“不能保证哪个样式表会先加载”,加载顺序与它无关。 *只要所有样式表都加载了*,DOM排序就会严格定义将应用哪些样式。没有涉及模糊逻辑或猜测。 – zzzzBov
@zzzzBov我不太确定,我想回忆一下我前段时间阅读过的关于不能保证首先应用什么的文章。如果您有两个外部样式表,其中包含与此问题中相同元素的相同CSS属性,并且第二个样式表在第一个样式表应用之前完成下载?如果我可以肯定地回忆,我会做出这个答案,但我现在没有时间去尝试找到它。我所想的可能不适用于此,但这是可以研究的。 – Rob