CSS - :dir()

The :dir CSS pseudo-class matches elements based on the directionality of the text contained in it. In HTML, the direction is determined by the dir attribute. For other document types there may be other document methods for determining the language.

Example

 

HTML
<div dir="rtl">
  <span>test1</span>
  <div dir="ltr">test2
    <div dir="auto">עִבְרִית</div>
  </div>
</div>

In this example :dir(rtl) will match the top level div, span containing test1, and the div with the hebrew characters. :dir(ltr) will match the div containing test2.

Syntax  

CSS
:dir( ltr <a href="css/value_definition_syntax#single_bar" title="Single bar">|</a> rtl ) { <var>style properties</var> }

Description  

The :dir CSS pseudo-class matches elements based on the directionality of the text contained in it. In HTML, the direction is determined by the dir attribute. For other document types there may be other document methods for determining the language.

Note that the usage of the pseudo-class :dir() is not equivalent of using the [dir=…] attribute selectors. The latter matches a value of the dir and doesn't match when no attribute is set, even if in that case the element inherits the value of its parent; similarly [dir=rtl] or [dir=ltr] won't match the auto value that can be used on the dir attribute. In the opposite, :dir() will match the value calculated by the UA, being inherited or the auto value.

Also :dir() considers only the semantic value of the directionality, the one defined in the document, most of the time in HTML. It won't consider styling directionality, the one set by CSS properties like direction which are purely stylistic.

Browser Compatibility  

Feature Chrome Firefox (Gecko) Internet Explorer Edge Opera Safari
Basic support No support [3] 17 (17) -moz
49 (49)
No support No support [1] No support No support [2]
Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support No support [3] 17.0 (17) -moz
49.0 (49)
No support No support No support [2]

[1]: Microsoft Edge feature request on UserVoice

[2]: WebKit bug #64861

[3]: Chrome issue #576815

See Also  

  • Language-related pseudo-classes: :lang, :dir

Specifications  

Specification Status Comment
WHATWG HTML Living Standard
The definition of ':dir(ltr)' in that specification.
Living Standard No changes.
Selectors Level 4
The definition of ':dir()' in that specification.
Working Draft Initial definition

License

© 2016 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-us/docs/web/css/:dir

CSS CSS Pseudo-class Experimental Reference