有没有办法确保外部CSS文件的特定加载顺序?通常,可以异步加载多个外部样式表以提高性能,但我希望允许各个用户覆盖项目文档的默认样式表(同事是色盲的,但对其他人来说似乎很方便具有个人喜好的图书馆用户。
例如,让我们说我在文档中有这个:
<link rel="stylesheet" type="text/css" href="https://foo.bar/project_stylesheet.css">
<link rel="stylesheet" type="text/css" href=".localprefs.css">
期望的结果是.localprefs.css
(如果存在)总是覆盖全局项目样式表。
评估订单是否有保证,与加载顺序无关?如果没有,是否有一种简单的方法来强制解决问题?
编辑时:假设.localprefs.css
仅覆盖全局样式表中的选定样式。
答案 0 :(得分:1)
是。它按照文件中的顺序加载。因此.localprefs.css
将加载第二个。
请注意,如果第一个文件中的选择器更具体,则仍然优先(即#id
vs .class
)。但是,后一个文件将赢得任何关系(即.class
vs .class
)
答案 1 :(得分:1)
你拥有它的方式保证了加载顺序。最后加载的文件或CSS优先。
也就是说,加载顺序并不代表CSS中规则的特殊性。
所以说你有一个元素<h1 id="foo" class="bar">
。如果第一个样式表具有#foo { color: red; }
且最后一个样式表具有.bar { color: blue; }
,那么h1
的颜色将为红色,因为ID优先于某个类。你不能通过CSS加载的顺序强制特异性。要强制使用特异性,您可以使用!important
。