css properties text-underline-offset

The text-underline-offset CSS property sets the offset distance of an underline text decoration line (applied using text-decoration) from its original position.

text-underline-offset is not part of the text-decoration shorthand. While an element can have multiple text-decoration lines, text-underline-offset only impacts underlining, and not other possible line decoration options such as overline or line-through.

Syntax

/* Single keyword */
text-underline-offset: auto;

/* length */
text-underline-offset: 0.1em;
text-underline-offset: 3px;

/* percentage */
text-underline-offset: 20%;

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

The text-underline-offset property is specified as a single value from the list below.

Values

auto

The browser chooses the appropriate offset for underlines.

<length>

Specifies the offset of underlines as a length, overriding the font file suggestion and the browser default. It is recommended to use em units so the offset scales with the font size.

<percentage>

Specifies the offset of underlines as a percentage of 1 em in the element's font. A percentage inherits as a relative value, and so therefore scales with changes in the font. For a given application of this property, the offset is constant across the whole box that the underline is applied to, even if there are child elements with different font sizes or vertical alignment.

Formal definition

Initial valueauto
Applies toall elements
Inheritedyes
Computed valuespecified keyword or absolute length
Animation typeby computed value

Formal syntax

auto | <length> | <percentage>

Examples

Demonstration of text-underline-offset

<p class="oneline">Here's some text with an offset wavy red underline!</p>
<br />
<p class="twolines">
  This text has lines both above and below it. Only the bottom one is offset.
</p>
p {
  text-decoration: underline wavy red;
  text-underline-offset: 1em;
}

.twolines {
  text-decoration-color: purple;
  text-decoration-line: underline overline;
}

See also