text-box-edge

可用性有限

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

text-box-edge CSS 属性指定从文本元素的块容器中裁剪的空格量。

不同字体之间的垂直间距不同,这使得在网络上保持一致的排版历来具有挑战性。text-box-edge 属性——以及其对应的属性 text-box-trim,后者指定从哪个(哪些)边缘裁剪空间——使得实现一致的排版变得更容易。如果未设置 text-box-trim 或将其设置为 none,则 text-box-edge 属性无效。

注意: text-box 简写属性可用于在单个声明中指定 text-box-edgetext-box-trim 值。

语法

css
/* Single keyword */
text-box-edge: auto;
text-box-edge: text;

/* Two <text-edge> values */
text-box-edge: text text;
text-box-edge: text alphabetic;
text-box-edge: cap alphabetic;
text-box-edge: ex text;

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

text-box-edge 属性值被指定为 auto<text-edge> 值。

auto

默认值。等同于 text-edgetext

<text-edge>

一个或两个单独的关键字,表示用于裁剪文本元素块容器的上方和下方边缘位置。

  • 如果指定了两个值,则第一个值指定应用于文本的块起始(上方)边缘的裁剪行为,第二个值指定应用于文本的块结束(下方)边缘的裁剪行为。
    • 有效的上方边缘裁剪值:textcapex
    • 有效的下方边缘裁剪值:textalphabetic
  • 如果指定一个值,它指定上方下方边缘的裁剪行为。在撰写本文时,唯一有效的单个值是 text

描述

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

text-box-edge 属性允许您从文本块容器的起始和/或结束边缘裁剪空间。这可以包括文本块起始边缘和块结束边缘的行距以及字体内部定义的间距(如上所述)。它通过指定一个 <text-edge> 值来完成此操作,该值指示要裁剪到哪个上方边缘和下方边缘。

使用 text-box-trim 属性指定要从哪个(哪些)边缘裁剪空间。例如,您可以选择从文本块容器的上方边缘、下方边缘或两者同时裁剪空间。

这些属性使得在块方向上控制文本间距变得容易得多。

正式定义

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

正式语法

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

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

示例

text-box-edge 的基本用法

对于水平 writing-mode 语言(例如英语或阿拉伯语),您最常用的 text-box-edge 值是 cap alphabeticex alphabeticcap 值将文本元素块容器的上方边缘裁剪到大写字母的顶部,而 ex 值将上方边缘裁剪到字体的 x 高度(短小写字母的顶部边缘)。在每种情况下,alphabetic 值将下方边缘与文本基线齐平。

在此示例中,我们演示了这些常用值对两个 <p> 元素的影响。此外,我们在这两个元素上都设置了 text-box-trim 值为 trim-both,以便它们的起始结束边缘都被裁剪。

css
p {
  text-box-trim: trim-both;
  border-top: 5px solid magenta;
  border-bottom: 5px solid magenta;
}

.one {
  text-box-edge: cap alphabetic;
}

.two {
  text-box-edge: ex alphabetic;
}

结果

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

交互式 text-box-edge 值比较

有关完整的交互式 text-box-edge 示例,请参阅 text-box-trim 页面

规范

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

浏览器兼容性

另见