一行 CSS 就能搞定!用 writing-mode 轻松实现文字竖排

背景

在项目开发过程中,会遇到文字竖排(从上到下)的布局形式。通常我们常用的实现方式是:

  1. 将每个字符单独使用标签包裹,再通过 ​Flexbox排列​
  2. 设置 ​固定宽度,强制换行​

在CSS中为我们提供了更优雅、更强大、更语义化的解决方案 ------ ​writing-mode属性​ ​,让文字竖排变得 ​​简单、灵活​​。

1. 常规实现方式

我们通常采用以下方式模拟或实现竖排文字效果:

1.1 ​​字符拆解 + Flexbox布局​

将每个文字单独放入一个标签(如 <span>),然后使用 Flexbox 垂直排列:

xml 复制代码
<div class="manual-vertical">
  <span>查</span>
  <span>看</span>
  <span>更</span>
  <span>多</span>
</div>
css 复制代码
.manual-vertical {
  display: flex;
  flex-direction: column;
  align-items: center;
}

1.2 ​​固定宽度+强制换行​

使用固定宽度,强制换行的方式实现:

css 复制代码
<div class="width">
    查看更多
</div>

.width {
    width: 50px;
    font-size: 50px;
    word-wrap: break-word;
}

展示样式:

2. writing-mode 方式(一行代码)

2.1 什么是 writing-mode?

writing-mode属性定义了文本水平或垂直排布以及在块级元素中文本的行进方向。 包括:

  • 横排(从左到右 或 从右到左)
  • 竖排(从上到下,从右到左 或 从左到右)
  • 甚至横躺(sideways)

2.2 最常用的竖排属性值:

属性值 效果描述 适用场景
vertical-rl 竖排,从右向左(​​中文传统排版习惯​ ​) 对于左对齐(ltr)文本,内容从上到下垂直流动,下一垂直行位于上一行左侧。对于右对齐(rtl)文本,内容从下到上垂直流动,下一垂直行位于上一行右侧。 中文诗词、菜单、标题、古籍风格
vertical-lr 竖排,从左向右。对于左对齐(ltr)文本,内容从上到下垂直流动,下一垂直行位于上一行右侧。对于右对齐(rtl)文本,内容从下到上垂直流动,下一垂直行位于上一行左侧。 日文、部分特殊排版
horizontal-tb 横排,从上到下(默认值)对于左对齐(ltr)文本,内容从左到右水平流动。对于右对齐(rtl)文本,内容从右到左水平流动。下一水平行位于上一行下方。 常规英文、中文网页
sideways-rl/ sideways-lr 文字横躺(从右到左 / 从左到右) 特殊效果,但兼容性有限

2.3 如何使用?

只需要一行 CSS:

css 复制代码
.vertical-text {
  writing-mode: vertical-lr;  /* 竖排,从左向右 */
  /* 可选:调整行高、字体、间距等 */
  line-height: 1.8;
  letter-spacing: 2px;
  text-align: center;
}

代码如下:

css 复制代码
<div class="vertical-demo">
  查看更多
</div>

.vertical-demo {
  writing-mode: vertical-rl;
  font-size: 24px;
  line-height: 2;
  height: auto;
}

3. 总结

最后总结一下:如果你正在实现文字竖排效果,​writing-mode就是你最好的选择​ ​。 它不仅让竖排文字变得 ​​像一句 CSS 那么简单​ ​。只需给你的元素加上 writing-mode: vertical-lr;,就能轻松拥有竖排文字效果。

如有错误,请指正O^O!

相关推荐
夜郎king11 分钟前
HTML5 SVG 实现日出日落动画与实时天气可视化
前端·html5·svg 日出日落
夏幻灵1 小时前
HTML5里最常用的十大标签
前端·html·html5
Mr Xu_1 小时前
Vue 3 中 watch 的使用详解:监听响应式数据变化的利器
前端·javascript·vue.js
未来龙皇小蓝1 小时前
RBAC前端架构-01:项目初始化
前端·架构
程序员agions2 小时前
2026年,微前端终于“死“了
前端·状态模式
万岳科技系统开发2 小时前
食堂采购系统源码库存扣减算法与并发控制实现详解
java·前端·数据库·算法
程序员猫哥_2 小时前
HTML 生成网页工具推荐:从手写代码到 AI 自动生成网页的进化路径
前端·人工智能·html
龙飞052 小时前
Systemd -systemctl - journalctl 速查表:服务管理 + 日志排障
linux·运维·前端·chrome·systemctl·journalctl
我爱加班、、2 小时前
Websocket能携带token过去后端吗
前端·后端·websocket
AAA阿giao2 小时前
从零拆解一个 React + TypeScript 的 TodoList:模块化、数据流与工程实践
前端·react.js·ui·typescript·前端框架