writing-mode
writing-mode
CSS 属性设置文本行是水平排列还是垂直排列,以及块级元素的排列方向。当为整个文档设置时,应在根元素(HTML 文档的 html
元素)上设置。
试试看
此属性指定块级流方向,即块级容器堆叠的方向,以及内联级内容在块级容器中流动的方向。因此,它也决定了块级内容的顺序。
语法
/* Keyword values */
writing-mode: horizontal-tb;
writing-mode: vertical-rl;
writing-mode: vertical-lr;
/* Global values */
writing-mode: inherit;
writing-mode: initial;
writing-mode: revert;
writing-mode: revert-layer;
writing-mode: unset;
writing-mode
属性指定为以下列出的值之一。水平脚本中的流动方向也受该脚本的方向性的影响,无论是从左到右(ltr
,如英语和大多数其他语言)还是从右到左(rtl
,如希伯来语或阿拉伯语)。
值
horizontal-tb
-
对于
ltr
脚本,内容从左到右水平流动。对于rtl
脚本,内容从右到左水平流动。下一行水平线位于上一行下方。 vertical-rl
-
对于
ltr
脚本,内容从上到下垂直流动,下一行垂直线位于上一行左侧。对于rtl
脚本,内容从下到上垂直流动,下一行垂直线位于上一行右侧。 vertical-lr
-
对于
ltr
脚本,内容从上到下垂直流动,下一行垂直线位于上一行右侧。对于rtl
脚本,内容从下到上垂直流动,下一行垂直线位于上一行左侧。 sideways-rl
-
对于
ltr
脚本,内容从上到下垂直流动。对于rtl
脚本,内容从下到上垂直流动。所有字形,即使是垂直脚本中的字形,也向右倾斜。 sideways-lr
-
对于
ltr
脚本,内容从下到上垂直流动。对于rtl
脚本,内容从上到下垂直流动。所有字形,即使是垂直脚本中的字形,也向左倾斜。 lr
-
除 SVG1 文档外,已弃用。对于 CSS,请改用
horizontal-tb
。 lr-tb
-
除 SVG1 文档外,已弃用。对于 CSS,请改用
horizontal-tb
。 rl
-
除 SVG1 文档外,已弃用。对于 CSS,请改用
horizontal-tb
。 tb
-
除 SVG1 文档外,已弃用。对于 CSS,请改用
vertical-lr
。 tb-lr
-
除 SVG1 文档外,已弃用。对于 CSS,请改用
vertical-lr
。 tb-rl
-
除 SVG1 文档外,已弃用。对于 CSS,请改用
vertical-rl
。
正式定义
正式语法
示例
使用多种书写模式
此示例演示了所有书写模式,并使用各种语言的文本显示了每种模式。
HTML
HTML 是一个<table>
,其中每种书写模式都在一行中,一列显示使用该书写模式的各种脚本中的文本。
<table>
<caption>
Using multiple writing modes
</caption>
<tr>
<th>Value</th>
<th>Vertical script</th>
<th>Horizontal (LTR) script</th>
<th>Horizontal (RTL) script</th>
<th>Mixed script</th>
</tr>
<tr class="text1">
<th>horizontal-tb</th>
<td>我家没有电脑。</td>
<td>Example text</td>
<td>מלל ארוך לדוגמא</td>
<td>1994年に至っては</td>
</tr>
<tr class="text2">
<th>vertical-lr</th>
<td>我家没有电脑。</td>
<td>Example text</td>
<td>מלל ארוך לדוגמא</td>
<td>1994年に至っては</td>
</tr>
<tr class="text3">
<th>vertical-rl</th>
<td>我家没有电脑。</td>
<td>Example text</td>
<td>מלל ארוך לדוגמא</td>
<td>1994年に至っては</td>
</tr>
<tr class="experimental text4">
<th>sideways-lr</th>
<td>我家没有电脑。</td>
<td>Example text</td>
<td>מלל ארוך לדוגמא</td>
<td>1994年に至っては</td>
</tr>
<tr class="experimental text5">
<th>sideways-rl</th>
<td>我家没有电脑。</td>
<td>Example text</td>
<td>מלל ארוך לדוגמא</td>
<td>1994年に至っては</td>
</tr>
</table>
<p class="notice">
Your browser does not support the <code>sideways-lr</code> or
<code>sideways-rl</code> values.
</p>
CSS
调整内容方向性的 CSS 如下所示
.text1 td {
writing-mode: horizontal-tb;
}
.text2 td {
writing-mode: vertical-lr;
}
.text3 td {
writing-mode: vertical-rl;
}
.text4 td {
writing-mode: sideways-lr;
}
.text5 td {
writing-mode: sideways-rl;
}
结果
使用 writing-mode 与转换
如果您的浏览器不支持 sideways-lr
,则可以使用transform
来实现类似的效果,具体取决于脚本方向。vertical-rl
的效果与 sideways-lr
相同,因此对于从左到右的脚本不需要进行转换。在某些情况下,将文本旋转 180 度足以实现 sideways-lr
的效果,但字体字形可能不是为旋转而设计的,因此这可能会产生意外的定位或渲染。
HTML
<table>
<caption>
Using writing-mode with transforms
</caption>
<thead>
<tr>
<th>Vertical LR</th>
<th>Vertical LR with transform</th>
<th>Sideways LR</th>
<th>Only rotate</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<span class="vertical-lr">我家没有电脑。</span>
<span class="vertical-lr">Example text</span>
</td>
<td>
<span class="vertical-lr rotated">我家没有电脑。</span>
<span class="vertical-lr rotated">Example text</span>
</td>
<td>
<span class="sideways-lr">我家没有电脑。</span>
<span class="sideways-lr">Example text</span>
</td>
<td>
<span class="only-rotate">我家没有电脑。</span>
<span class="only-rotate">Example text</span>
</td>
</tr>
</tbody>
</table>
CSS
.vertical-lr {
writing-mode: vertical-lr;
}
.rotated {
transform: rotate(180deg);
}
.sideways-lr {
writing-mode: sideways-lr;
}
.only-rotate {
inline-size: fit-content;
transform: rotate(-90deg);
}
结果
规范
规范 |
---|
CSS 书写模式级别 4 # block-flow |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。