text-box

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

text-box CSS 属性是一个简写属性,对应于 text-box-trimtext-box-edge 属性,这两个属性共同指定了从文本元素的块容器的块起始边缘和块结束边缘修剪的空白量。

构成属性

此属性是以下 CSS 属性的简写:

语法

css
/* Single keyword */
text-box: normal;

/* One text-box-edge keyword */
text-box: trim-start text;
text-box: trim-both text;

/* Two text-box-edge keywords */
text-box: trim-start cap alphabetic;
text-box: trim-both ex text;

/* Global values */
text-box: inherit;
text-box: initial;
text-box: revert;
text-box: revert-layer;
text-box: unset;

text-box 值可以由一个 text-box-trim 值和一个 text-box-edge 值组成,它们之间用空格分隔。有关值的描述,请参阅这些页面。

text-box 属性也可以接受关键字 normal,它等同于 text-box: none auto;

如果省略了 text-box-trim,它将被设置为 trim-both。如果省略了 text-box-edge,它将被设置为 auto

正式定义

初始值normal
应用于块容器和内联框
继承性
计算值指定的关键字
动画类型离散

正式语法

text-box = 
normal |
<'text-box-trim'> || <'text-box-edge'>

<text-box-trim> =
none |
trim-start |
trim-end |
trim-both

<text-box-edge> =
auto |
<text-edge>

<text-edge> =
[ text | ideographic | ideographic-ink ] |
[ text | ideographic | ideographic-ink | cap | ex ] [ text | ideographic | ideographic-ink | alphabetic ]

描述

纯文本内容的高度与字体高度相关。在数字字体文件中,高度包含所有字符,包括大写字母、上行字符、下行字符等。不同的字体有不同的基线高度,这意味着具有相同 font-size 的文本行会产生不同高度的行框,从而影响行间距的外观。

text-box 属性可以从文本元素的块容器的块起始边缘和块结束边缘修剪多余的间距,这可以包括文本块起始边缘和块结束边缘的行距,以及字体内部定义的间距(如上所述)。这使得在块方向上控制文本间距变得更加容易。

示例

text-box 的基本用法

在下面的示例中,我们有两个带有 onetwo 类的 <p> 元素。

我们对第一个段落应用 text-boxtrim-end cap alphabetictext-box-edgecap alphabetic 指定将上边缘修剪到大写字母的顶部,下边缘与文本基线齐平。由于 text-box-trim 值设置为 trim-end,因此只修剪段落的下边缘。

我们对第二个段落应用 text-boxtrim-both ex alphabetictext-box-edgeex alphabetic 指定将上边缘修剪到字体的 x 高度(短小写字母的顶部边缘),下边缘与文本基线齐平。由于 text-box-trim 值设置为 trim-both,因此段落的上下边缘都被修剪。

css
.one {
  text-box: trim-end cap alphabetic;
}

.two {
  text-box: trim-both ex alphabetic;
}

p {
  border-top: 5px solid magenta;
  border-bottom: 5px solid magenta;
}

结果

输出如下。请注意,我们为每个段落添加了顶部和底部边框,以便您可以看到在每种情况下空间是如何被修剪的。

规范

规范
CSS 内联布局模块级别 3
# text-box-shorthand

浏览器兼容性

另见