CSS 中的 E:dir(dir) 和 E[dir="dir"] 有什么区别? [复制]

2024-02-13

W3C 在选择器 4 中引入了一个新的用于方向检测的伪类。我想知道它与普通属性选择器有什么区别:

CSS2- 属性选择器

E[dir="rtl"] { ... }

选择器4-dir 伪类

E:dir(rtl) { ... }

为此创建一个新的伪类有什么具体原因吗?这些选择器是相同的还是行为不同?是否有任何性能或特异性影响?


为此创建一个新的伪类有什么具体原因吗?

The same reason the :lang() pseudo-class was introduced alongside attribute selectors in CSS2.1 See What's the difference between html[lang="en"] and html:lang(en) in CSS? https://stackoverflow.com/questions/8916360/whats-the-difference-between-htmllang-en-and-htmllangen-in-css

这些选择器是相同的还是行为不同?

请参阅我对链接问题的回答。这是相关引用选择器4 https://drafts.csswg.org/selectors-4/#the-dir-pseudo为了完整起见:

:dir(C) 和 ''[dir=C]'' 之间的区别在于 ''[dir=C]'' 仅对元素上的给定属性执行比较,而 :dir(C) 伪-类使用文档语义的 UA 知识来执行比较。例如,在 HTML 中,元素的方向性是继承的,因此没有 dir 属性的子元素将与其具有有效 dir 属性的最近祖先具有相同的方向性。作为另一个示例,在 HTML 中,匹配 ''[dir=auto]'' 的元素将匹配 :dir(ltr) 或 :dir(rtl),具体取决于由其内容确定的元素的解析方向性。 [HTML5]

为了强调两者之间的相似之处:dir() and :lang(),如果你仔细看的话,第一句话实际上是逐字复制描述部分的同一段落:lang().

其余大部分文字内容是:lang()然而,这是新的,因为随着:dir(), Selectors 4 还引入了增强的功能:lang().

是否有任何性能或特异性影响?

由于您上一个问题的答案是它们的行为不同,因此性能无关紧要。

没有特殊性暗示,因为伪类和属性选择器同样特殊。


1 It's not clear to me why it took almost 15 years for :dir() to be added to Selectors, but there you go.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CSS 中的 E:dir(dir) 和 E[dir="dir"] 有什么区别? [复制] 的相关文章

  • 如何根据字体大小计算div高度

    有没有办法自动计算div高度知道包含的字体大小和系列吗 浏览器是如何计算的 例子 div style font size 14px font family courier Text div Above div高度为 16px 为了 font
  • 使用 jQuery 实时更新文本

    我最近一直在用 jQuery 做一个项目 但遇到了一个问题 基本思想是创建一些 JS 代码 以便当您在选项卡上的文本框中输入内容时 div 内的文本会随着您的键入而更改 并且当您移动到新选项卡时 它会更改为文本框中的文本那里 这很难解释 所
  • Internet Explorer 10+ 媒体查询和响应断点

    我正在尝试将 IE10 特定媒体查询与最大宽度页面断点结合起来 我很确定它们可以组合 但不知道如何去做 这是原始的 IE10 唯一的 css 媒体查询 media all and ms high contrast none ms high
  • 使弹性盒中的项目占据所有垂直和水平空间

    我目前在容器中有元素 每个元素都包含一个图像 我想使用 Flexbox 将它们分布到四个角或容器中 图像在水平方向上分布正确 但在垂直方向上没有占用所有可用空间 Here s what it looks like at the moment
  • 在 html5 音频播放器时间轴上制作样式

    我想在 html5 音频播放器上制作一个样式
  • 使用小屏幕时强制在按钮文本内换行

    我有一个响应式网络应用程序 其中包含一些对于小移动屏幕来说太大的按钮 它们包含太多文字 因此最终会从屏幕上消失 我目前正在使用a通过给它们引导类来标记为按钮 所以目前的代码是这样的 a Here I have a button with l
  • LESS 循环中的多个选择器

    我使用以下代码使用 LESS CSS 生成列布局 columnBuilder index when index lt columnCount container columnCount grid index width unit baseW
  • 如何改变CSS切换开关的大小

    我正在为一个名为 elementor 的插件设计一个元素 这个项目实际上只是为了帮助我学习 WordPress 开发的功能 我正在制作一个 切换内容 滑块 可以在文本或预定义的 html 之间切换 我根据本指南使用了滑块 https www
  • 我可以通过 Javascript 获取非标准 CSS 属性的值吗?

    我正在尝试读取自定义 非标准 CSS 属性 在样式表 不是内联样式属性 中设置并获取其值 以此 CSS 为例 someElement foo bar 我已经设法通过 IE7 中的 currentStyle 属性获取它的值 var eleme
  • 如何在奇数行和偶数行之间交替孩子的数量?

    我搜索了它 但是使用 CSS flexbox 当我想显示奇数行的 3 个项目和偶数行的 2 个项目时出现问题 My idea is something like this 我尝试使用某种nth child选择器 但这并不是完整的解决方案 n
  • 使用 CSS3 在屏幕上移动图像

    我浏览网页已经有一段时间了 试图找到一种方法 让图标在加载页面时移动到屏幕上 从左侧移动到 body div 的中心 如何才能做到这一点 这是我到目前为止所拥有的 CSS3 a rotator text decoration none pa
  • 使文本区域填充表格单元格

    我知道 SO 上也有类似的问题 但答案似乎对我不起作用 我的表格有一个填充多行的单元格 我希望文本区域填充整个单元格 我发现的代码不适用于高度 CSS textarea width 100 height 100 resize none we
  • Flexbox 中的 Bootstrap 列无法在较小的屏幕上换行

    我的网站有一个部分 我在 2 个 div 上使用下面的 CSS 其中一个a标签以使内容在中心垂直对齐 问题是 使用 Flex 样式属性时 理想情况下 当窗口 col md 4会一个一个地堆叠起来 这并没有发生 相反 列变得非常瘦并且仍然并排
  • 填充重叠的圆形区域

    我有两个相交的圆 我想让相交区域具有颜色 即使这两个圆是透明的 我想我可以找到一些方法用 css 来做到这一点mix blend mode财产 但我没有成功 当然 我可以使圆圈具有颜色并降低其不透明度 但我希望它们是白色或透明的 其中只有重
  • 如何为 p 标签中的星号第一个字符着色

    我认为这会很容易使用 first letter伪元素 但它不起作用 I have p Required Fields p 我希望 是红色的 有任何想法吗 请注意 我无法更改 html http jsfiddle net 3ducS http
  • VS2010中是否可以更改CSS验证方案

    我正在 VS2010 中编辑一个简单的 CSS 文件 编辑器似乎对 CSS 的理解相当有限 例如 my rule position relative 生成警告 Validation CSS 1 0 position is not a kno
  • 无法删除文档底部的空白

    我似乎每次渲染页面时都会生成这个空间块 我不知道它是如何出现在那里的 下面是我在 chrome 中检查时的图像 它发生在其他浏览器中 这是一个问题 因为它位于我的页脚下方 所以我只有空格 似乎没有 CSS 可以解决它 只能直接删除空格 这很
  • 如何覆盖 CSS 模块文件中的全局 CSS?

    让我们说在我的global css我有一个 Next js 项目的文件 flex display flex justify content center align items center height 100 我也有一个Layout j
  • CSS,堆叠圆圈

    我想制作一些圆形 div 就像下面代码中的那样 不过 我希望它们彼此堆叠在一起 所以我想要一个蓝色圆圈 展开 在当前红色圆圈后面 但中心与红色圆圈相同 红色的必须在上面 这是我当前的代码 circles margin right auto
  • 在 IE7 中水平对齐 div,无垂直堆叠

    我有一个固定容器 里面有一个附加容器 其中根据用户选择容纳了许多 DIV 我需要这些额外的 DIV 水平排列并提供水平滚动 但不是垂直滚动 比如这样 x x x 本质上 我的设置如下所示 div div div class final im

随机推荐