tabIndex 作为 CSS 属性?

Men*_*ris 5 html css dom properties tabindex

我想弄清楚如何tabindex通过 css 使用 HTML 属性。

我特别想添加tabIndex=0到所有包含className='my-checkbox'.

这就是我所拥有的:

<div tabIndex="0" className="my-checkbox">
...
<div>
Run Code Online (Sandbox Code Playgroud)

由于 my<div className="my-checkbox">在我的应用程序中重复多次,我不想tabIndex每次都显式定义该属性;因此我正在寻找一种避免代码重复的方法。

如何tabIndex=0向所有div包含 a 的元素添加属性className="my-checkbox"

我尝试添加以下 css 规则,但这不起作用:

div .my-checkbox-img {
   tab-index: '0'
}
Run Code Online (Sandbox Code Playgroud)

这增加了一种tab-index似乎不具有功能性的风格;Google Chrome 调试器将其显示为unknown property.

在此输入图像描述

我尝试过nav-index但它似乎也已被弃用。

从三方面总结我的问题:

  1. 样式和属性有什么区别?我正在寻找比这个答案更详细的东西。
  2. html 属性与 css 属性(例如tabIndextotab-index等)有何关系?
  3. 如何tabIndex=0向所有div包含 a 的元素添加属性className="my-checkbox"

jny*_*len 5

  1. 样式和属性有什么区别?

一般来说,它们是操纵元素行为的两种不同方式。某些特定属性和 CSS 属性之间存在一些临时重叠(当然,CSS 属性可以通过属性设置style),但除此之外,它们大多是独立的。有关详细信息,请查看HTML 属性参考CSS 参考

这是因为带有属性的 HTML 首先出现(大约 1993 年),然后 CSS 发明得很晚(大约 1996 年,采用期很长)。HTML 属性通常定义元素的“基本”或“固有”属性,例如src图像或脚本元素的属性。经典表格的大部分样式也可以由单独的属性控制,因为在 CSS 流行之前就需要这样做。

所以是的,多年来它变得有点混乱。

  1. html 属性与 css 属性有何关系

如上所述,它们通常不相关,除非在<img width>您链接到的特定情况下。

  1. 如何tabIndex=0向所有div包含 a 的元素添加属性className="my-checkbox"

这种特殊情况是使用 CSS 无法做到的。您应该将其添加到标记中,如果可能的话,在服务器端动态生成属性,或者(在我看来,这是一个更糟糕的解决方案)在页面加载后使用 JavaScript。