Spec-Zone.ru › CSS

`text-emphasis-position` CSS property

Baseline Widely available

This feature is well established and works across many devices and browser versions. It's been available across browsers since March 2022.

The text-emphasis-position CSS property sets where emphasis marks are drawn. Similar to the text rendered by the <ruby> HTML element, if there isn't enough room for emphasis marks, the line height is increased.

Try it

text-emphasis-position: auto;
text-emphasis-position: over right;
text-emphasis-position: under right;
text-emphasis-position: auto;
writing-mode: vertical-rl;
text-emphasis-position: over left;
writing-mode: vertical-rl;
text-emphasis-position: over right;
writing-mode: vertical-rl;
<section id="default-example">
  <p>
    I'd far rather be
    <span class="transition-all" id="example-element">happy than right</span>
    any day.
  </p>
</section>
p {
  font: 1.5em sans-serif;
}

#example-element {
  text-emphasis: filled double-circle #ffb703;
}

Syntax

/* Initial value */
text-emphasis-position: auto;

/* Keyword values */
text-emphasis-position: over;
text-emphasis-position: under;

text-emphasis-position: over right;
text-emphasis-position: over left;
text-emphasis-position: under right;
text-emphasis-position: under left;

text-emphasis-position: left over;
text-emphasis-position: right over;
text-emphasis-position: right under;
text-emphasis-position: left under;

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

Values

The property accepts one or two values:

  • If only one value is provided, it can be auto, over, or under. When only over or under is used, right is assumed as the default position.
  • If two values are provided, they must include one of over or under and one of right or left. Their order does not matter.

The values include:

auto
Draws marks over the text in horizontal writing mode and to the right of the text in vertical writing mode.
over
Draws marks over the text in horizontal writing mode.
under
Draws marks under the text in horizontal writing mode.
right
Draws marks to the right of the text in vertical writing mode.
left
Draws marks to the left of the text in vertical writing mode.

Description

The preferred position of emphasis marks depends on the language. In Japanese for example, the preferred position is over right. In Chinese, on the other hand, the preferred position is under right. The informative table below summarizes the preferred emphasis mark positions for Chinese, Mongolian and Japanese:

Preferred emphasis mark and ruby position
Language Preferred position Illustration
Horizontal Vertical
Japanese over right Emphasis marks appear over each emphasized character in horizontal Japanese text. Emphasis marks appear on the right of each emphasized character in vertical Japanese text.
Korean
Mongolian
Chinese under right Emphasis marks appear below each emphasized character in horizontal Simplified Chinese text.

Note: The text-emphasis-position cannot be set, and therefore are not reset either, using the text-emphasis shorthand property.

Formal definition

Initial value auto
Applies to all elements
Inherited yes
Computed value as specified
Animation type discrete

Formal syntax

text-emphasis-position = 
  auto |
  [ over | under ] &&
  [ right | left ]?

Examples

Adding emphasis mark positions

Use the dropdown menu to change the position of the emphasis marks. This will change the class on the <section> element, which in turn, will update the position of the emphasis marks on the text.

HTML

<p class="unsupported">
  The <code>auto</code> value is not supported in your browser.
</p>
<label for="position">Emphasis position:</label>
<select id="position">
  <option value="auto">auto</option>
  <option value="over-right">over right</option>
  <option value="over-left">over left</option>
  <option value="under-right">under right</option>
  <option value="under-left">under left</option>
  <option value="preferred">preferred</option>
</select>
<section id="setting" class="auto">
  <p class="horizontal" lang="zh">你好世界</p>
  <!-- Hello World in Chinese -->
  <p class="vertical" lang="ja">世界、こんにちは。</p>
  <!-- Hello World in Japanese -->
</section>

CSS

.unsupported {
  color: red;
}
@supports (text-emphasis-position: auto) {
  .unsupported {
    display: none;
  }
}
.horizontal {
  writing-mode: horizontal-tb;
}
.vertical {
  writing-mode: vertical-rl;
}
section {
  display: flex;
  justify-content: space-around;
}
section p {
  text-emphasis: filled circle tomato;
  text-emphasis-position: auto;
}
.over-right p,
.preferred p [lang="ja"] {
  text-emphasis-position: over right;
}
.over-left p {
  text-emphasis-position: over left;
}
.under-right p,
.preferred p [lang="zh"] {
  text-emphasis-position: under right;
}
.under-left p {
  text-emphasis-position: under left;
}
.preferred p [lang="ja"] {
}
const position = document.querySelector("#position");
const setting = document.querySelector("#setting");
const updateClass = () => {
  const currentClass = setting.classList;
  setting.classList.replace(currentClass, position.value);
};
position.addEventListener("change", updateClass);

Result

Use the "Emphasis position" dropdown to choose the location of the emphasis marks. The preferred option in the dropdown uses the preferred positions, as explained in the Description section.

Preferring ruby over emphasis marks

Some editors prefer to hide emphasis marks when they conflict with ruby. In HTML, this can be done with the following style rule:

ruby {
  text-emphasis: none;
}

Preferring emphasis marks over ruby

Some other editors prefer to hide ruby when they conflict with emphasis marks. In HTML, this can be done with the following pattern:

em {
  text-emphasis: dot; /* Set text-emphasis for <em> elements */
}

em rt {
  display: none; /* Hide ruby inside <em> elements */
}

Specifications

Specification
CSS Text Decoration Module Level 3
# text-emphasis-position-property

Browser compatibility

Desktop Mobile
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS
text-emphasis-position
99
25
99
79
46
85
15
7
7
99
25
46
68
14
7
7
18.0
1.5
99
4.4
7
7
auto
No
No
132
No
No
No
132
No
No
No
No
No
left
62
79
46
49
8
62
46
46
8
8.0
62
8
over
99
99
108
85
7
99
108
68
7
18.0
99
7
right
62
79
46
49
8
62
46
46
8
8.0
62
8
under
99
99
108
85
7
99
108
68
7
18.0
99
7

See also

  • text-underline-position
  • text-emphasis-style
  • text-emphasis-color
  • text-emphasis shorthand property
  • writing-mode

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/text-emphasis-position

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API