【发布时间】:2012-02-24 07:06:11
【问题描述】:
我是否遗漏了什么,或者这个例子的行为——http://dabblet.com/result/gist/1716833——在 Webkits/Fx 中相当奇怪?
有一个带有标签和以下选择器的输入:
input:hover + .target {
background: red;
}
当您悬停附加到input 的label 时会触发此样式,而不仅仅是input 本身。更重要的是:label 与 for 和 input 包裹在 label 之间是有区别的——如果你首先悬停input,然后将光标直接移动到.target——奇怪的悬停不会在包装版本中触发。
这只是在 Firefox 和 Safari/Chrome 中重现,但在 Opera 中没问题。
所以,问题是:这个问题是否在规范中的某处有所描述?我找不到任何合适的地方来描述它并说明什么行为是正确的。
【问题讨论】:
-
根据w3.org/TR/html4/interact/forms.html#h-17.9,“当 LABEL 元素获得焦点时,它会将焦点传递给其关联的控件。”
-
是的,但是 HTML 中的 focus 是一回事,CSS 中的伪类是另一回事,这些领域之间不可能有任何相似之处。类似的情况在 CSS4 中被描述为草稿:dev.w3.org/csswg/selectors4/#idref-combinators — 但我不认为,这必须像现在在 Fx 和 webkits 中那样工作。
-
@kizu:
:focus也是一个 CSS 伪类。你说得对,标签焦点与这里的问题无关,但这只是我想指出的。
标签: html css firefox css-selectors webkit