一行 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!

相关推荐
BBB努力学习程序设计1 天前
CSS Sprite技术:用“雪碧图”提升网站性能的魔法
前端·html
BBB努力学习程序设计1 天前
CSS3渐变:用代码描绘色彩的流动之美
前端·html
冰暮流星1 天前
css之动画
前端·css
jump6801 天前
axios
前端
spionbo1 天前
前端解构赋值避坑指南基础到高阶深度解析技巧
前端
用户4099322502121 天前
Vue响应式声明的API差异、底层原理与常见陷阱你都搞懂了吗
前端·ai编程·trae
开发者小天1 天前
React中的componentWillUnmount 使用
前端·javascript·vue.js·react.js
永远的个初学者1 天前
图片优化 上传图片压缩 npm包支持vue(react)框架开源插件 支持在线与本地
前端·vue.js·react.js
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ1 天前
npm i / npm install 卡死不动解决方法
前端·npm·node.js
Kratzdisteln1 天前
【Cursor _RubicsCube Diary 1】Node.js;npm;Vite
前端·npm·node.js