CSS书写模式由writing-mode属性控制,决定文本横排或竖排及流向。其值包括horizontal-tb(默认,水平从左到右)、vertical-rl(垂直从上到下,列从右向左)和vertical-lr(垂直从上到下,列从左向右)。该属性改变块轴与行内轴方向,影响width/height、margin、padding、text-align等属性的行为逻辑。在vertical-rl或vertical-lr下,width控制垂直高度,height控制水平宽度;text-align沿行内轴对齐,竖排时居中为垂直居中。常用于中文日文竖排、创意设计、紧凑导航栏、图表标签等场景。需配合text-orientation控制字符旋转,推荐使用逻辑属性如margin-block-start、padding-inline-end、block-size、inline-size等以适应不同书写模式。direction用于设置行内文本方向(ltr/rtl),影响双语混排。Flexbox与Grid布局的轴向也随writing-mode变化,flex-direction: row在竖排模式下表现为水平排列。关键是从物理方向思维转向逻辑轴思维,提升多语言与多方向布局灵活性。

CSS的书写模式,说白了,就是决定了文本内容在页面上是横着排还是竖着排,是从左往右还是从右往左流动的。我们主要通过
writing-mode
要设置CSS的书写模式,核心就是使用
writing-mode
horizontal-tb
.element {
writing-mode: horizontal-tb;
}vertical-rl
立即学习“前端免费学习笔记(深入)”;
.element {
writing-mode: vertical-rl;
}vertical-lr
.element {
writing-mode: vertical-lr;
}设置起来很简单,你只需要把这个属性应用到你想要改变书写模式的元素上就行。比如,你有一个
div
p
writing-mode: vertical-rl;
writing-mode
在默认的
horizontal-tb
vertical-rl
vertical-lr
这意味着什么呢?
width
height
width
height
margin-top
margin-left
margin-block-start
margin-inline-end
writing-mode
vertical-rl
margin-block-start
margin-right
text-align
horizontal-tb
text-align: center
vertical-rl
vertical-lr
text-align: center
float
position
top
left
举个例子,假设你有一个
div
<div class="vertical-text-container">
<p>第一行文字</p>
<p>第二行文字</p>
</div>.vertical-text-container {
writing-mode: vertical-rl;
/* 这里的width实际上控制的是垂直方向的“高度” */
width: 200px;
/* 这里的height实际上控制的是水平方向的“宽度” */
height: 100px;
background-color: #f0f0f0;
border: 1px solid #ccc;
padding: 10px;
}
p {
margin: 0;
/* text-align: center 在 vertical-rl 模式下会使文本在垂直方向上居中 */
text-align: center;
}你会发现,
width
height
垂直书写模式虽然不常用,但在一些特定场景下却能发挥奇效,甚至可以说是不可或缺。
日文、中文等语言的传统排版:这是最主要的应用场景。很多东亚语言的传统书籍、报纸、诗歌,都是从右往左、从上到下竖排的。在网页上需要模拟这种阅读体验时,
writing-mode: vertical-rl;
创意网页设计和艺术排版:设计师有时候为了追求独特的视觉效果,会刻意使用垂直文本。比如,一个网站的标题、一个宣传语、或者某个特定的UI元素,通过垂直排版能带来更强的视觉冲击力或艺术感。这在一些品牌网站、艺术作品集或者个人博客中比较常见。
紧凑的UI元素和侧边栏导航:在一些空间有限的UI设计中,垂直书写模式可以帮助我们更有效地利用空间。例如,一个左侧或右侧的导航栏,如果导航项名称较长,但横向空间又不足,可以考虑将其设置为垂直文本。这样既能展示完整内容,又能保持布局的紧凑。
<nav class="vertical-nav">
<a href="#">产品介绍</a>
<a href="#">服务项目</a>
<a href="#">联系我们</a>
</nav>.vertical-nav {
writing-mode: vertical-rl; /* 文本从上到下,导航项从右往左堆叠 */
width: 30px; /* 导航条的“宽度” */
height: 100%; /* 导航条的“高度” */
background-color: #333;
color: white;
display: flex; /* 使用Flexbox辅助布局 */
flex-direction: column; /* 导航项垂直排列 */
justify-content: center; /* 导航项垂直居中 */
align-items: center; /* 导航项水平居中 */
}
.vertical-nav a {
display: block;
padding: 10px 5px;
text-decoration: none;
color: inherit;
white-space: nowrap; /* 防止文本自动换行 */
}这个例子中,导航链接会竖着排,并且整个导航栏是窄窄的一条。
图表标签或数据展示:在一些数据可视化图表中,轴标签或者数据点标签可能需要垂直显示,以避免重叠或节省空间。虽然通常会用
transform: rotate()
writing-mode
总的来说,垂直书写模式的应用场景虽然小众,但它提供了一种强大的排版能力,让我们能够跳出传统的横向思维,探索更多样化的网页布局和内容呈现方式。
writing-mode
当
writing-mode
text-orientation
text-orientation: mixed;
text-orientation: upright;
text-orientation: sideways;
.vertical-text {
writing-mode: vertical-rl;
text-orientation: upright; /* 让英文字母和数字也保持直立 */
}没有
text-orientation
逻辑属性(Logical Properties):前面也提到了,为了更好地适应
writing-mode
margin-block-start
margin-block-end
margin-inline-start
margin-inline-end
padding-block-start
padding-block-end
padding-inline-start
padding-inline-end
border-block-start
border-block-end
border-inline-start
border-inline-end
inset-block-start
inset-block-end
inset-inline-start
inset-inline-end
block-size
inline-size
writing-mode
margin-top
direction
writing-mode
direction
vertical-rl
direction: rtl;
line-height
text-align
line-height
text-align
text-align
inline-size
height
Flexbox 和 Grid 布局:当父元素设置了
writing-mode
writing-mode
flex-direction: row;
vertical-rl
writing-mode
处理
writing-mode
以上就是CSS书写模式怎么设置_CSS书写模式使用教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号