【问题标题】:Can we put focus on div without tabindex attr?我们可以把焦点放在没有 tabindex attr 的 div 上吗?
【发布时间】:2013-01-08 12:11:38
【问题描述】:

我在关注 FF 17 时遇到了一个奇怪的问题。我有一个没有 tabindex 属性的 div 和一个 tabindex="0" 的 div。我是 Shift+TAB 从第二个 div(带 tabindex)到第一个 div(没有 tabindex)。奇怪的是,第一个 div 正在接收焦点,整个 div 用虚线突出显示。谁能告诉我为什么即使没有 tabindex 属性,FF 也将重点放在第一个 div 上?

如果有兴趣,第一个 div 有以下 CSS

clear: both;
min-width: 1010px;
left: 7px;
right: 7px;
top: 141px;
bottom: 10px;
overflow: auto;
position: absolute;
-webkit-box-shadow: 0 5px 4px #DDD;
box-shadow: 0 5px 4px #DDD;
background: none repeat scroll 0 0 #FDFDFD;
border: 1px solid #AAA;
border-top: 0;

谢谢。

【问题讨论】:

    标签: css firefox html focus tabindex


    【解决方案1】:

    css 属性称为outline,它会勾勒页面上的元素,因此当您使用键盘切换时,您可以看到您在哪些元素上。

    如果您想禁用它,请在您的 css 类中设置 outline:0;

    【讨论】:

    • @Kyle Sevenoaks - 锚或无锚 - 他必须重置轮廓。编辑问题,使其更清楚。
    • 仅删除轮廓是不够的。没有 tabindex 属性的 div 不应获得焦点。那是我不明白的。
    • @user1853164 - 如果这还不够,请在jsfiddle.net 或类似网站上提供实时样本。
    【解决方案2】:

    因为它有overflow: auto,所以它得到了关注。发生这种情况的原因是 overflow:auto 的东西可以有滚动条,具体取决于它们的内容,当它们有滚动条时,您希望它们按 Tab 键顺序排列,这样您就可以对它们进行 Tab 键并使用箭头键滚动,对于没有滚动条的用户使用鼠标。但是到那时,您要么必须始终将overflow:auto 的东西放在标签顺序中,要么在更改字体大小或调整浏览器窗口大小等时更改标签顺序。后者让用户很困惑,所以 Gecko 是前者。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 2019-04-23
      • 1970-01-01
      相关资源
      最近更新 更多