CSS direction 属性用于控制页面文档的文字排版方向。通过该属性可以将文字的排版方向设置为从左向右排版(LTR),或从右向左排版(RTL)。
某些语言(如阿拉伯文,波斯文和希伯来语等)的文字书写格式是从右向左排版的,而大部分语言的书写格式是从左向右书写(如中文,英文,法文等)。在某些场合中,同一个文档中可能需要混合使用从右到左(RTL)和从左到右(LTR)的文字排版。如果你在同一个段落中同时使用中文和阿拉伯文,那么就会出现双向文本( bi-directional text)的情况。此时,浏览器会使用Unicode编码指定的算法来决定双向文本的显示方向。
CSS direction
属性用于指定以下情况的文字方向:
- 文本流的“嵌入”和方向覆盖。这种情况它需要和
unicode-bidi
属性结合使用。 - 块级元素的基本书写方向。例如段落元素
<p>
的文字方向。如果要使direction
属性在内联元素上起作用,unicode-bidi
属性的值必须为embed
或override
。 - 应用于表格列布局方向。当为表格的列元素指定了
direction
属性之后,由于在文档树中,表格列不是列中的单元格的祖先元素,列中的单元格不会继承列的direction
属性。
HTML文档中的文本方向可以通过dir
属性来改变。所有的HTML元素都可以使用dir
属性。dir
属性的值可以设置为ltr
(默认值),或者rtl
。设置了dir
属性的节点的所有后代节点都会继承dir
属性。direction
属性则是通过CSS属性的方法来改变HTML文档文本方向的方法。
如果你将原来是从左到右排版的文字修改为从右到左排版,这段文字的标点符号会显示在相反的位置上,例如下面的两段文字:第一段使用默认的LTR排版,第二段使用RTL排版。
这是一段用于测试的文字!
这是一段用于测试的文字!
direction
属性和unicode-bidi
属性是唯一不受all
属性的简写方式影响的属性。
direction
属性的作用和HTML标签中的dir
属性效果相同。而unicode-bidi
属性的功能可以使用HTML元素<bdo>
来实现。
如果你想改变一个内联元素的文本方向,可以在CSS代码中结合使用direction
和unicode-bidi
属性来实现。也可以通过修改<bdo>
元素的dir
属性来实现。例如:
<p>这是一段从左向右排版的文字。<span class="right-to-left">这是一段从右到左排版的文字</span>,它们混排在一起。</p>
.right-to-left{ direction: rtl; /* 下面的代码用于在内联元素上设置文本方向 */ unicode-bidi: embed; /* 或者 bidi-override */ }
如果使用<bdo>
元素,代码应该类似下面的样子:
<p>这是一段从左向右排版的文字。<bdo dir="rtl">这是一段从右到左排版的文字</bdo>,它们混排在一起。</p>
官方语法
direction: ltr | rtl | inherit
参数:
- ltr:方向从左到右。文字从左向右排版。
- rtl:方向从右到左。文字从右向左排版。
- inherit:继承父元素的文字排版方向。
direction
属性的初始值为ltr
。
应用范围
direction
属性可以应用在所有的元素上。
示例代码
direction: ltr; direction: rtl; direction: inherit;
下面的代码将blockquote
元素的文本方向设置为从右向左:
blockquote { direction: rtl; }
在线演示
下面的例子演示一段从右向左排版的效果,注意标点符号的位置:
正常的LTR排版:
CSS-层叠样式表是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言!!CSS目前最新版本为CSS3,是能够真正做到网页表现与内容分离的一种样式设计语言。
从右到左的RTL排版:
CSS-层叠样式表是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言!!CSS目前最新版本为CSS3,是能够真正做到网页表现与内容分离的一种样式设计语言。
浏览器支持
所有的现代浏览器都支持CSS direction
属性,包括:Chrome, Firefox, Safari, Opera, Internet Explorer 以及 Android 和 iOS。