在网页排版场景中,文字竖排是较为特殊但实用的需求,比如传统古籍展示、竖版海报设计、特殊风格的标题排版等,都可以通过css的相关属性快速实现文字竖着写的效果,不需要额外借助图片或者复杂的js逻辑。

核心属性:writing-mode
实现文字竖排最核心的css属性是writing-mode,这个属性用来定义文本的水平或垂直排列方向,以及文本的行进方向。它的常用属性值如下:
- horizontal-tb:默认值,文本水平排列,从上到下换行,符合大多数常规页面的排版逻辑
- vertical-rl:文本垂直排列,从右到左换行,是中文竖排最常用的属性值,符合传统中文竖排的阅读习惯
- vertical-lr:文本垂直排列,从左到右换行,部分特殊场景会使用这个排列方向
基础竖排实现示例
下面是一个简单的文字竖排示例,将一段中文文本设置为从右到左的竖排效果:
/* 竖排文字基础样式 */
.vertical-text {
writing-mode: vertical-rl;
/* 可选:设置字体大小 */
font-size: 20px;
/* 可选:设置文字颜色 */
color: #333;
}
<div class="vertical-text">
床前明月光,疑是地上霜。举头望明月,低头思故乡。
</div>
调整字符排列方向:text-orientation
当使用writing-mode设置竖排后,部分字符(比如拉丁字母、数字)的排列方向可能不符合预期,这时候可以使用text-orientation属性调整字符的方向,它的常用属性值有:
- mixed:默认值,水平脚本的字符(如英文、数字)保持水平排列,垂直脚本的字符(如中文)保持垂直排列
- upright:所有字符都保持垂直排列,适合需要所有文字都统一竖排的场景
- sideways:所有字符都保持水平排列,但是整体旋转90度,部分旧版本浏览器支持有限
统一字符排列示例
如果竖排文本中包含英文和数字,希望所有内容都垂直排列,可以添加text-orientation: upright属性:
.vertical-text-upright {
writing-mode: vertical-rl;
text-orientation: upright;
font-size: 20px;
}
<div class="vertical-text-upright">
2024年春季新品发布会,Welcome to join us。
</div>
实际使用的注意事项
在使用css实现文字竖排时,需要注意以下几点:
- 竖排文本的行高需要适当调整,避免字符之间过于拥挤,可以通过
line-height属性设置合适的行高 - 部分旧版本浏览器(比如IE10及以下)不支持
writing-mode的标准属性值,如果需要兼容旧浏览器,可以添加带前缀的属性,比如-webkit-writing-mode: vertical-rl、-ms-writing-mode: tb-rl - 竖排文本的容器宽度需要根据字符数量调整,避免文本换行不符合预期,可以设置固定的宽度或者根据内容自适应宽度
不同场景的属性选择参考
不同排版需求对应的属性组合可以参考下表:
| 排版场景 | writing-mode值 | text-orientation值 |
|---|---|---|
| 传统中文竖排(从右到左) | vertical-rl | mixed(默认即可) |
| 竖排且所有字符统一垂直 | vertical-rl | upright |
| 从左到右的竖排排列 | vertical-lr | mixed |
通过上述属性的组合使用,就可以灵活实现各种css文字竖排的效果,满足不同页面的排版需求。如果需要更复杂的竖排效果,还可以结合letter-spacing调整字符间距,让竖排文字的展示效果更好。
csswriting_mode文字竖排text_orientation修改时间:2026-07-07 14:03:21