【问题标题】:Why is tabbing through fields failing weirdly in Firefox?为什么在 Firefox 中通过字段切换会奇怪地失败?
【发布时间】:2021-01-17 10:20:12
【问题描述】:

我看到 Firefox 处理字段选项卡的奇怪行为,我无法理解为什么。我已将页面上的代码简化为对问题的非常简单的再现。

在从以下代码呈现的页面中单击input 上方和label 右侧之前,Tabbing 工作正常:

body {
  padding-top: 20px;
}

label {
  position: absolute;
  top: 5px;
}
<label>Click on the right side of this line and tabbing stops working |</label>
<input>

在输入下方或级别单击会导致选项卡再次按预期运行。这是预期的行为,我只是不了解标签,还是 Firefox 浏览器中的某种错误?

Firefox 版本是 80.0.1(64 位),我使用的是台式计算机。

Chrome 没有问题。

【问题讨论】:

  • tabindex 是您放置在元素上的属性,用于控制在文档中 tab 键 的顺序。
  • 我知道。该声明的主旨是我应该在整个问题的措辞中使用“tabbing”而不是“tabindexing”吗?由于“标签”在浏览器的上下文中具有多种含义,因此我似乎可以通过这种方式来减少混淆。
  • 是的,“tabindex”不是动词 :)。有趣的是,如果您单击input 的右侧选项卡可以正常工作,只有当您单击label 的右侧时才能正常工作......
  • 对我来说似乎非常奇怪,我报告了一个 Firefox 错误:bugzilla.mozilla.org/show_bug.cgi?id=1669016

标签: html css firefox


【解决方案1】:

您可以将width: 100% 应用到label,然后它可以工作,因为它跨越了整行。

body {
  padding-top: 20px;
}

label {
  position: absolute;
  top: 5px;
  width: 100%;
}
<label>Click on the right side of this line and tabbing works |</label>
<input>

【讨论】:

  • 我在这里包含的示例并不是我在代码中所拥有的。真正的代码有一个元素显示在 flex 容器中,因此它位于页面的中心,触发这种奇怪故障的阈值基本上是页面的整个上半部分。如果可能的话,我宁愿没有一个跨越整个空白空间的标签。
  • 这是针对特定示例代码的解决方法,而不是问题的答案,即为什么?
  • 嗯,“为什么”的答案是标签不会延伸到它右侧的区域,所以点击那里不会选择或聚焦它。并且我为示例代码添加了一个解决方案,预计会重现问题 AFAIK...
  • @Johannes 不过,其他浏览器似乎可以很好地处理这个问题。我认为我不必选择或单击页面上的特定元素来保留预期的选项卡行为。就像浏览器是我机器上的活动窗口一样,我希望标签至少可以循环浏览浏览器控件(即:“返回”、“刷新”、“url”等)。使用我上面的代码,它甚至在 Firefox 中都不会这样做。
猜你喜欢
  • 2017-10-06
  • 1970-01-01
  • 2015-06-24
  • 1970-01-01
  • 1970-01-01
  • 2013-06-22
  • 2010-11-12
  • 1970-01-01
  • 2021-08-26
相关资源
最近更新 更多