用@import覆盖css样式不起作用

时间:2012-09-08 11:11:28

标签: css import override

我在@import上看到了一些关于覆盖样式的类似问题,人们建议将@import置于底部,但这似乎不起作用。

--- index.html ---
<head>
<link rel="stylesheet" href="style.css" />
</head>
<body>
This text should be green.
</body>

--- style.css ---
body {color: red;}
@import url('style-override.css');

--- style-override.css ---
body {color: green;}

上面的示例将输出红色文字,而绿色则是。

  • 在head.css head head之后声明style-override.css将解决问题,但我想在@cmp文件中使用@import

  • 在style-override.css中添加!important 也会得到预期的结果,但这不是它应该工作的方式。

任何人都能解释一下吗?

2 个答案:

答案 0 :(得分:28)

这是行不通的,因为在样式表中声明的任何导入规则必须先于其他所有内容 - 否则,......好吧,它不起作用;)。

那么,你的style.css样式表中你应该拥有的是:

@import url('style-override.css');  
body {color: red;}

答案 1 :(得分:15)

@import规则必须位于 top 。这就是CSS spec.所说的:

  

任何@import规则必须在样式表中的所有其他at-rules和样式规则之前(除了@charset,它必须是样式表中存在的第一件事),否则@import规则无效。