此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

:dir()

Baseline 2023
Newly available

Since ⁨December 2023⁩, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

CSS 伪类 :dir() 根据元素中文本的书写方向匹配元素。

css
/* 选择任何文本方向为从右到左的元素 */
:dir(rtl) {
  background-color: red;
}

:dir() 伪类仅使用文本方向的语义值,即文档中定义的方向性。它不会考虑由 CSS 属性(例如 direction)设置的样式方向。

备注: 请注意,:dir() 伪类的行为与 [dir=…] 属性选择器并不相同。后者仅匹配具有 HTML dir 属性的元素,并会忽略那些虽然从父元素继承了方向但自身没有该属性的元素。(同样,[dir=rtl][dir=ltr] 也不会匹配 auto 值。)相比之下,:dir() 会匹配由用户代理计算得出的方向值,即使该值是继承而来的。

备注: 在 HTML 中,文本方向由 dir 属性决定。其他类型的文档可能使用不同的方法来确定方向。

语法

css
:dir([ltr | rtl]) {
  /* ... */
}

参数

:dir() 伪类需要一个参数,用于表示要匹配的文本方向。

ltr

匹配从左到右的元素。

rtl

匹配从右到左的元素。

示例

HTML

html
<div dir="rtl">
  <span>测试 1</span>
  <div dir="ltr">
    测试 2
    <div dir="auto">עִבְרִית</div>
  </div>
</div>

CSS

css
:dir(ltr) {
  background-color: yellow;
}

:dir(rtl) {
  background-color: powderblue;
}

结果

规范

Specification
HTML
# selector-ltr
HTML
# selector-rtl
Selectors Level 4
# dir-pseudo

浏览器兼容性

参见