CSS text-combine-upright 属性

CSS text-combine-upright 语法

在 CSS 中,text-combine-upright 属性使得在垂直排版中的部分文本(如数字),进行水平排列(即横向排列),并且使其占据单个字符的空间。

text-combine-upright 属性主要用于东亚文字(如中文、日文、韩文)的排版,常用于将数字或简短的水平文本在垂直文本中压缩到一个字符的宽度内并保持直立。

语法:

text-combine-upright: 关键字;
text-combine-upright: 数值;

说明:

当 text-combine-upright 的取值为关键字时,有如下表 2 种。

text-combine-upright 关键字取值
取值 说明
none(默认值) 不连续横排
all 连续横排,使其占据单个字符空间

当 text-combine-upright 的取值为数值时,其具体语法如下。

text-combine-upright: digits n;

上面的 n 表示多少个数字连续横排,范围只能是 [2, 4],而不能是其他数字,默认值为 2。

注意:

  • text-combine-upright 属性只适用于垂直模式(即 writing-mode: vertical-rl;),它本质上为了使得部分特殊文本(如数字)排版的用户体验更好。
  • text-combine-upright 的取值为数值这种方式,暂时所有主流浏览器尚未支持。

CSS text-combine-upright 摘要

属于 CSS 文本属性
使用频率
是否继承
默认值 none
兼容性 查看
官方文档 查看
MDN 查看

CSS text-combine-upright 示例

想要真正理解 CSS text-combine-upright 属性,我们先来看一下默认情况下的垂直排版样式,请看下面例子。

示例 1:不使用 text-combine-upright

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        p {
            writing-mode: vertical-lr;
        }
    </style>
</head>
<body>
    <p>大家好,今天是2025年5月20日</p>
</body>
</html>

页面效果如下图所示。

不使用text-combine-upright的效果

分析:

可以看到,在垂直模式下,如果文本包含数字,则数字是顺时针 90°旋转后的效果。如果想要使得每个数字像正常直立的效果,可以使用 text-orientation: upright;。

修改后的 CSS 如下。再次运行后的效果如下图所示。

p {
    writing-mode: vertical-lr;
    text-orientation: upright;
}

加入text-orientation: upright;的效果

虽然数字是直立起来了,但效果并不理想。如果能够使得 “2025”、“20” 等能够直立并且横向排列,那就好了。此时就可以使用 text-combine-upright 属性来实现。

示例 2:使用 text-combine-upright

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        p { writing-mode: vertical-lr; }
        p > span {
            text-combine-upright: all;
        }
    </style>
</head>
<body>
    <p>大家好,今天是<span>2025</span>年5月<span>20</span></p>
</body>
</html>

页面效果如下图所示。

使用text-combine-upright的效果

分析:

text-combine-upright: all; 会使得当前元素所有文本都是横向排列,因此我们不能直接在 p 元素使用它,而是应该给 “2025” 和 “20” 这些需要横向排列的局部文字使用 span 元素包含起来,然后在 span 元素上使用它。

像上例子中,“2025” 占据的是一个汉字的空间,此时会显得有点挤,效果并不是很理想。想要达到预期的效果,小伙伴们还是静静等待 W3C 对该属性的不断修订以及主流浏览器对其的支持了。

上一篇: text-orientation

下一篇: list-style

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号