CSS direction 属性用于控制页面文档的文字排版方向。通过该属性可以将文字的排版方向设置为从左向右排版(LTR),或从右向左排版(RTL)。
某些语言(如阿拉伯文,波斯文和希伯来语等)的文字书写格式是从右向左排版的,而大部分语言的书写格式是从左向右书写(如中文,英文,法文等)。在某些场合中,同一个文档中可能需要混合使用从右到左(RTL)和从左到右(LTR)的文字排版。如果你在同一个段落中同时使用中文和阿拉伯文,那么就会出现双向文本( bi-directional text)的情况。此时,浏览器会使用指定的来决定双向文本的显示方向。
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。