【问题标题】:Why `div:focus does` not works without tabindex为什么 `div:focus 没有`tabindex 不起作用
【发布时间】:2018-04-23 21:53:54
【问题描述】:

div:focus 不起作用

div:focus {
    background-color:red;
}
<div>Will</div>
<div>You</div>
<div>Marry</div>
<div>Me</div>

但是I got a suggestion o solve this by using tabindex

div:focus {
    background-color:red;
}
<div tabindex="1">Will</div>
<div tabindex="1">You</div>
<div tabindex="1">Marry</div>
<div tabindex="1">Me</div>

但我不知道如果我添加了tabindex,为什么它会起作用??为什么没有tabindex 就不能工作?我不要答案我只想知道原因??

【问题讨论】:

  • 它在添加tabindex 属性时起作用,因为这意味着div 元素将接受用户焦点。由于 div 不打算与之交互,因此默认情况下它们不接受焦点。
  • 请不要滥用格式化工具。您已经有足够长的时间知道如何正确格式化问题了。
  • 能否告诉我投反对票的原因?
  • 我认为投反对票的原因是你应该做更多的研究,而像你这样高的代表表明你应该知道这一点。所以,please, do more research
  • @RameshRajendran 就在规范中:w3.org/TR/html50/editing.html#attr-tabindex - “tabindex 内容属性允许作者控制元素是否应该是可聚焦的......”

标签: html css


【解决方案1】:

好吧,div 不是可聚焦元素,添加tabindex="-1" 将使 div 可聚焦,就这么简单。另外,使用tabindex="-1",您甚至可以将不可选项卡元素设置为可选项卡,在包含不可选项卡元素的表单中使用时非常方便

【讨论】:

  • 正是我想知道的。但是如何在添加tabindex="-1"时转换为可聚焦元素???
  • 默认情况下,元素可以具有 :active 状态。但只有某些元素是可聚焦的
  • 正如@RoryMcCrossan 所说,div 不可编辑。添加 tabindex(决定元素的 tab 顺序)并将其设置为 -1 将允许 div 可编辑,但不会包含在 tab 顺序中。欲了解更多详情,请转到here@RameshRajendran
  • @RameshRajendran 1. 默认情况下,div 不是可聚焦的元素。 2. 可选项卡元素是可聚焦元素。因此,使 div 可选项卡将使它们具有焦点。
  • @ibrahimmahrir tab-able elements are focusable elements 我明白了。但我想知道 为什么可选项卡元素是可聚焦元素???
【解决方案2】:

我得到了我想要的,来自 @Turnip 评论

我的问题:

如果我添加了 tabindex,为什么它会起作用?为什么没有 tabindex 就不能工作?我不要答案我只想知道原因??

答案:

tabindex 内容属性允许作者控制一个元素是否应该是可聚焦的,它是否应该可以使用顺序焦点导航来访问,以及为了顺序焦点导航的目的,元素的相对顺序是什么. “选项卡索引”这个名称来自于“选项卡”键在可聚焦元素中导航的常见用途。术语“tabbing”是指通过使用顺序焦点导航可以到达的可聚焦元素向前移动。

Referrence

【讨论】:

    【解决方案3】:

    正如他们在this docs:中所说的那样

    提示:在接受键盘的元素上允许使用 :focus 选择器 事件或其他用户输入。

    那么,一个 div 就不是一个 Focusable 对象。

    请查看official mozzila docs 关于:focus

    如果您想测试它是否真的有效,请使用输入(它确实是可聚焦的)。你会看到它的工作原理

    input:focus {
        background-color:red;
    }
    <div>
    <input type="text">
    Will
    </input>
    </div>
    
    <div>
    <input type="text">
    You
    </input>
    </div>
    
    <div>
    <input type="text">
    Marry 
    </input>
    </div>
    
    <div>
    <input type="text">
    Me 
    </input>
    </div>

    【讨论】:

    • 请注意,W3Schools 不是(也从来不是)“文档”。它们不是参考,只是一个很久以前假装隶属于 W3C 并通过 SEO 登上 Google 顶峰的网站。他们的文章经常过时,有时甚至完全是错误的。 MDN 更加全面和准确:developer.mozilla.org/en-US/docs/Web/CSS/%3Afocus
    • 好的。但我的主要问题是how it will convert to an editable element while adding tabindex="-1"??
    • @RoryMcCrossan,关于 W3Schools 的精彩解释。我曾经工作过的一家公司阻止我们访问他们的“文档”。我假设这就是原因。我可能会建议为这个答案的 OP 找到一个更有信誉的来源。
    • @RoryMcCrossan 你很好,但你的链接没有说明我粘贴在那里的关键提示。添加两个链接。 :)
    • 那是因为是 tabindex 这样做,而不是 :focus 选择器:developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/…
    猜你喜欢
    • 2011-04-20
    • 2012-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 2017-08-31
    相关资源
    最近更新 更多