内联CSS伪类

时间:2013-08-08 18:15:34

标签: html css

我一直认为您无法为元素添加内联:hover{..}样式,但是我很久以前就遇到了 this 页面,我看到的东西像这样。

<a href="http://www.w3.org/"
          style="{color: #900}
          :link {background: #ff0}
          :visited {background: #fff}
          :hover {outline: thin red solid}
          :active {background: #00f}">...</a>

我根本不喜欢内联样式,但我目前的应用程序基于内嵌样式/脚本,所以这对我来说是一个很好的功能。

有一个问题:无效

有谁知道为什么这不起作用? Chrome没有实现它吗?

Demo

w3.org

中的演示代码

1 个答案:

答案 0 :(得分:8)

事实上,the same document was referenced in another question here。这就是我不得不说的:

  

您链接的文件是 10年之久的草稿

现在已经11岁了,但这不是重点(虽然它确实表明了你给出的例子不起作用的可能原因)。关键是给出的示例没有出现在同一规范的latest revision中。因此,据推测,在样式属性中嵌入选择器被认为是不可行的并且因此而被删除。

我对the question linked in the comments的回答表明为什么这样的功能被认为不可行 - 它只是与CSS当前的语言状态不兼容:

  

请注意,内联样式与规则集中的选择器参与相同的级联,并且在级联中具有最高优先级(尽管!important)。所以它们甚至优先于伪类状态。允许内联样式中的伪类或任何其他选择器可能会引入新的级联级别,并带来一系列新的复杂性。

当然,我没有声称为实际做出决定和/或编写规范的人说话,但如果我是其中之一,那就是我不支持该功能的原因。< / p>

这也可以解释为什么没有浏览器实现这样的功能(或者更可能的是,缺乏实施是导致它被重新考虑然后最终被删除的因素之一,这给了供应商更多的理由 not not 现在开始实现它,因为规范已达到CR状态。)

这里的教训是永远不要引用W3C技术文档的旧版本作为正典。永远记住要查看最新规范;你应该能够在文件的标题中找到一个链接。