【问题标题】:Inline CSS Pseudo-classes内联 CSS 伪类
【发布时间】:2013-08-10 14:04:58
【问题描述】:

我一直认为您不能将内联 :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

的演示代码

【问题讨论】:

  • 如果你的目标是新 Geckos,你可以看看scoped stylesNot that that's a real solution,但既然你正在处理内联的东西......
  • “它适用于所有浏览器”、“它不适用于所有浏览器”、“它不适用于任何浏览器”和“有一个特殊的浏览器”之间存在差异它可能在“。一般来说,如果它不能在每个(现代)浏览器中工作,它被认为是不工作的。您从 W3C 获得的链接文档来自 2003 年,即我们所说的前现代浏览器时代。
  • 特别是当您说“该问题中的所有答案都不正确”时。
  • @PW Kad:感谢您的链接。我在这里发布了一个答案,而不是作为骗子关闭,因为这个问题围绕旧的规范链接而不是一般的概念。

标签: html css


【解决方案1】:

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

您链接到的文档是10 年前的草稿

现在已经 11 岁了,但这不是重点(尽管它确实暗示了您给出的示例不起作用的一个很可能的原因)。重点是给出的例子并没有出现在同一规范的latest revision中。因此,据推测,在样式属性中嵌入选择器被认为是不可行的,因此被丢弃。

我对@9​​87654323@ 的回答说明了为什么这样的功能被认为不可行——它与 CSS 作为一种语言的当前状态根本不兼容:

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

当然,我并没有声称代表实际做出决定和/或编写规范的人发言,但如果我是其中之一,这就是我不支持该功能的原因。

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

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

【讨论】:

  • 感谢您的信息:)
猜你喜欢
  • 2011-07-14
  • 2016-07-17
  • 1970-01-01
  • 2011-11-12
  • 2016-05-05
相关资源
最近更新 更多