CSS中的tabindex

Bor*_*nov 45 html css keydown

是否可以使用CSS控制tabindex,如果是,哪些浏览器支持它以及哪些元素?

编辑

我应该说,我的目标是在div上捕获keydown事件.我看到这个页面http://www.quirksmode.org/js/events/keys.html#测试键盘事件,它显示了keydown触发除文档和正文以外的任何内容或某种表单元素或链接的唯一方法是要在其上声明tabindex.但我在W3​​C网站上看到:

以下元素支持tabindex属性:A,AREA,BUTTON,INPUT,OBJECT,SELECT和TEXTAREA.

所以我有点困惑,为了使标准兼容并使我的用例工作,该怎么办?

EDIT2

我的整个用例是一个带有很多内容的div,带有一个人工滚动条.我可以用鼠标事件滚动它,但到目前为止键盘没有运气.

dal*_*ege 28

2017年更新

正如@Wallop在评论中指出的那样,由于"缺乏实施兴趣" ,该nav-index房产在2015年已从规范删除.


看看nav-indexW3C在CSS3-UI中引入的属性.

此属性与a具有完全相同的行为,tabindex并且适用于任何元素.

'nav-index'属性是一种指定顺序导航顺序(也称为"制表顺序")的输入方法中立方式.此属性是HTML4/XHTML1属性'tabindex'的替代品

对于用例而言可能是最符合标准的解决方案,nav-index到目前为止仅由Opera解释(截至2012年6月),并且W3C也标记为"风险特征",因此可能随时丢弃.

替代的跨浏览器解决方案是:

  • 非标准兼容:tabindex在a上设置属性DIV.这适用于所有常见浏览器.

  • 符合标准:DIVA没有href属性集的情况下替换为anchor元素(),使用它设置样式display: block并添加tabindex属性.

关于BoltClock的观点,我同意标签顺序是非常合理的(文本选择顺序和标签顺序都与文档中元素排列的顺序密切相关).另一方面,CSS今天有更广泛的用途.它不仅可以操作文档(content属性)的内容,还可以操作事件何时触发的行为:即使用pointer-events,displayz-index指针事件的顺序将发生变化.如果这些是非常基本的CSS属性,为什么你也不能影响KeyBoardEvents呢?

  • 截至2014年4月,`nav-index`仍然相对没有浏览器支持.:( (6认同)
  • nav-index现已弃用,没有新的浏览器支持它.http://www.w3schools.com/cssref/css3_pr_nav-index.asp (4认同)
  • 我听说HTML5中的所有元素都允许使用"tabindex"...出于某种原因. (2认同)
  • @JeremyWest`nav-index`听起来不错,但似乎[仍然不受支持](http://www.w3schools.com/cssref/css3_browsersupport.asp)任何浏览器. (2认同)

Noi*_*art 7

这有点旧,但现在有像-moz-user-focus这样的css选项.我确定有一个webkit等价物.

https://developer.mozilla.org/en-US/docs/CSS/-moz-user-focus

  • 这只是我遇到了同样的问题,并希望以用户提出的方式回答它.这些stackoverflow主题在bing和google上出现了很长时间,所以我想在这里添加答案. (7认同)
  • @Noitidart 你能提供证据证明“以用户为中心”是一个标准吗?我找不到支持你的说法的文档。 (3认同)