外部CSS文件加载顺序

时间:2017-01-18 23:50:44

标签: html css

有没有办法确保外部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仅覆盖全局样式表中的选定样式。

2 个答案:

答案 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