让我们看一个代码示例。 Live version 。 HTML:
<input type="text" class="a" />
<input type="text" class="b" />
CSS:
input:focus {
background: red;
display: none;
}
此处,输入在获得焦点后立即失去焦点,因为它被隐藏了。焦点应该转到下一个输入。我认为它应该振荡聚焦任一输入,就像粗体文本在悬停时变得正常一样。
但是当我们在 Chrome 中打开示例并将焦点设置到任一字段时,它们都会失去焦点。 Firefox 做了一件更有趣的事情:两个字段都失去了焦点,但其中一个仍然是隐藏的。
我查看了W3C standard ,但似乎没有什么是有效行为的描述。
什么是正确的行为?它是否已定义?
最佳答案
是的,但它是在 HTML5 规范中,而不是在 CSS 规范中。
这称为焦点修复,描述它的规范如下:http://www.w3.org/html/wg/drafts/html/master/editing.html#focus-fixup-rule-one
简而言之,它表示焦点移动到“[同一]对照组中的第一个非惰性聚焦区域”,但完整的规则太长,无法在此处复制。
关于html - W3C 是否标准化了输入隐藏时焦点的移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27953635/