CSS @规则放在style属性中是否有效?

3
以下标记是否有效?
<!DOCTYPE html>
<html>
    <head>
         <title>Test whether at-rules are valid in style attributes</title>
    </head>
    <body style="@import url(style.css);"></body>
</html>

在Linux上,Firefox和Chromium无法渲染它,但W3C验证器没有将其标记为错误。


1
你不能在内联样式中导入。 - davidkonrad
1
W3C HTML验证器不会验证CSS。它是无效的:http://dev.w3.org/csswg/css-style-attr/#syntax - Blender
1
如果它不能工作,那么它是否有效并不重要。 - JJJ
1
规范的重要部分是“样式属性的值必须与CSS声明块内容的语法匹配”——@import在声明块中无效。因此,它不仅不能工作,而且也不合法。 - Chris Baker
1
CSS验证器(在提供适当的测试文档的情况下)将抱怨不正确的属性和值,但会忽略@规则。这似乎是一个错误。 - Quentin
显示剩余10条评论
2个回答

3

不可以。

在style属性中,只能放置一个声明

根据HTML 4.01规范

style属性的值的语法由默认样式表语言决定。例如,对于[[CSS2]]内联样式,使用第4.1.8节中描述的声明块语法(没有大括号分隔符)。


一份更新的参考资料(阐述了相同的原则):W3C推荐 CSS样式属性 - Jukka K. Korpela

2
这并不是那样的。@规则不能直接包含规则,只能包含选择器。
- @import导入文件时,不能在选择器之外有规则。 - @media仅能包含选择器。 - @font-face不会影响元素。
style属性旨在直接向元素设置规则,因此很明显@规则并不适用于它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接