text-underline-position

Baseline 广泛可用 *

此特性已经十分成熟,可在许多设备和浏览器版本上使用。自 2020 年 7 月以来,它已在各大浏览器中可用。

* 此特性的某些部分可能存在不同级别的支持。

text-underline-position CSS 属性指定了使用 text-decoration 属性的 underline 值设置的下划线的位置。

试一试

text-underline-position: auto;
text-underline-position: under;
<section id="default-example">
  <p>
    <span class="transition-all" id="example-element"
      >C<sub>8</sub>H<sub>10</sub>N<sub>4</sub>O<sub>2</sub></span
    >
    is the chemical formula for caffeine.
  </p>
</section>
p {
  font: 1.5em sans-serif;
}

#example-element {
  text-decoration-line: underline;
}

语法

css
/* Single keyword */
text-underline-position: auto;
text-underline-position: under;
text-underline-position: left;
text-underline-position: right;

/* Multiple keywords */
text-underline-position: under left;
text-underline-position: right under;

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

auto

用户代理使用其自身的算法将下划线放置在字母基线处或其下方。

from-font

如果字体文件包含首选位置的信息,则使用该值。如果字体文件不包含此信息,则表现为设置了 auto,浏览器选择一个合适的位置。

强制将下划线设置在字母基线下方,位于不会穿过任何下行字母的位置。这对于确保包含大量下标的化学和数学公式的易读性很有用。

left

在垂直书写模式下,此关键字强制下划线位于文本的左侧。在水平书写模式下,它是 auto 的同义词。

在垂直书写模式下,此关键字强制下划线位于文本的右侧。在水平书写模式下,它是 auto 的同义词。

正式定义

初始值auto
应用于所有元素
继承性
计算值同指定值
动画类型离散

正式语法

text-underline-position = 
auto |
[ from-font | under ] || [ left | right ]

示例

一个基本示例

我们创建了两个示例文本段落。

html
<p class="horizontal">
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam consectetur ac
  turpis vel laoreet. Nullam volutpat pharetra lorem, sit amet feugiat tortor
  volutpat quis. Nam eget sodales quam. Aliquam accumsan tellus ac erat posuere.
</p>

<p class="vertical">
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam consectetur ac
  turpis vel laoreet. Nullam volutpat pharetra lorem, sit amet feugiat tortor
  volutpat quis. Nam eget sodales quam. Aliquam accumsan tellus ac erat posuere.
</p>

我们的 CSS 如下所示:

css
p {
  font-size: 1.5rem;
  text-transform: capitalize;
  text-decoration: underline;
  text-decoration-thickness: 2px;
}

.horizontal {
  text-underline-position: under;
}

.vertical {
  writing-mode: vertical-rl;
  text-underline-position: left;
}

在此示例中,我们将两个段落都设置为粗下划线。在水平文本中,我们使用 text-underline-position: under; 将下划线置于所有下行字母下方。

在设置了垂直 writing-mode 的文本中,我们可以使用 leftright 值,根据需要使下划线出现在文本的左侧或右侧。

实时示例如下:

全局设置 text-underline-position

由于 text-underline-position 属性是继承的,并且不会被 text-decoration 简写属性重置,因此在全局级别设置其值可能是合适的。例如,under 值可能适用于包含大量下标的化学和数学公式的文档。

css
:root {
  text-underline-position: under;
}

规范

规范
CSS 文本装饰模块级别 3
# text-underline-position 属性

浏览器兼容性

另见