【问题标题】:Does W3C standardize the movement of focus when input gets hidden?当输入被隐藏时,W3C 是否标准化焦点的移动?
【发布时间】:2015-01-14 22:29:02
【问题描述】:

让我们看一个代码示例。 Live version。 HTML:

<input type="text" class="a" />
<input type="text" class="b" />

CSS:

input:focus {
  background: red;
  display: none;
}

这里的输入在获得焦点后立即失去焦点,因为它被隐藏了。焦点应该转到下一个输入。我认为它应该振荡聚焦任一输入,就像它发生在悬停时正常​​的粗体文本一样。

但是当我们在 Chrome 中打开示例并将焦点设置到任一字段时,它们都会失去焦点。 Firefox 做了一些更有趣的事情:两个字段都失去焦点,但一个仍然隐藏。

我查看了W3C standard,但似乎没有什么是对有效行为的描述。

正确的行为是什么?是否已定义?

【问题讨论】:

    标签: html css focus w3c


    【解决方案1】:

    是的,但它在 HTML5 规范而不是 CSS 规范中。

    这被称为 focus fix-up,描述它的规范在这里:http://www.w3.org/html/wg/drafts/html/master/editing.html#focus-fixup-rule-one

    简而言之,它说焦点移动到“[同一个]对照组中的第一个非惰性焦点区域”,但完整的规则太长,无法在此处复制。

    【讨论】:

    • 太棒了。但是你所说的“焦点转移到……焦点区域”是什么意思?将焦点转移到已经集中的事物上有何意义?
    • @polkovnikov.ph - 是的,我想知道这一点。 (这是规范的直接引用)。我认为这意味着一个可以接收焦点的区域,但它并没有与定义相关联。
    • FWIW,这些焦点修正规则 don’t seem to 是 HTML5 的一部分。
    猜你喜欢
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 2022-11-21
    • 1970-01-01
    • 2018-05-05
    • 1970-01-01
    相关资源
    最近更新 更多