text-emphasis-position

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.

* Some parts of this feature may have varying levels of support.

Die text-emphasis-position CSS Eigenschaft legt fest, wo Hervorhebungszeichen gezeichnet werden. Ähnlich wie der Text, der vom HTML-Element <ruby> gerendert wird, wird, falls nicht genügend Platz für Hervorhebungszeichen vorhanden ist, die Linienhöhe erhöht.

Probieren Sie es aus

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

css
/* 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;

Werte

Die Eigenschaft akzeptiert einen oder zwei Werte:

  • Wenn nur ein Wert angegeben wird, kann dieser auto, over oder under sein. Wenn nur over oder under verwendet wird, wird right als Standardposition angenommen.
  • Wenn zwei Werte angegeben werden, müssen diese entweder over oder under und entweder right oder left enthalten. Ihre Reihenfolge spielt keine Rolle.

Die Werte umfassen:

auto

Zeichnet Zeichen über den Text im horizontalen Schreibmodus und rechts vom Text im vertikalen Schreibmodus.

over

Zeichnet Zeichen über den Text im horizontalen Schreibmodus.

under

Zeichnet Zeichen unter den Text im horizontalen Schreibmodus.

Zeichnet Zeichen rechts vom Text im vertikalen Schreibmodus.

left

Zeichnet Zeichen links vom Text im vertikalen Schreibmodus.

Beschreibung

Die bevorzugte Position von Hervorhebungszeichen hängt von der Sprache ab. Im Japanischen ist beispielsweise die bevorzugte Position over right. Im Chinesischen hingegen ist die bevorzugte Position under right. Die folgende Tabelle fasst die bevorzugten Positionen von Hervorhebungszeichen für Chinesisch, Mongolisch und Japanisch zusammen:

Bevorzugte Position von Hervorhebungs- und Ruby-Zeichen
Sprache Bevorzugte Position Illustration
Horizontal Vertikal
Japanisch over right Hervorhebungszeichen erscheinen über jedem hervorgehobenen Zeichen im horizontalen japanischen Text. Hervorhebungszeichen erscheinen rechts von jedem hervorgehobenen Zeichen im vertikalen japanischen Text.
Koreanisch
Mongolisch
Chinesisch under right Hervorhebungszeichen erscheinen unter jedem hervorgehobenen Zeichen im horizontalen vereinfachten chinesischen Text.

Hinweis: Die text-emphasis-position kann nicht festgelegt werden und wird daher auch nicht zurückgesetzt, wenn die text-emphasis Abkürzungseigenschaft verwendet wird.

Formale Definition

Anfangswertauto
Anwendbar aufalle Elemente
VererbtJa
Berechneter Wertwie angegeben
Animationstypdiskret

Formale Syntax

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

Beispiele

Hervorhebungspositionsmarken hinzufügen

Verwenden Sie das Dropdown-Menü, um die Position der Hervorhebungszeichen zu ändern. Dadurch wird die Klasse des <section> Elements geändert, was wiederum die Position der Hervorhebungszeichen im Text aktualisiert.

HTML

html
<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

css
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"] {
}

Ergebnis

Verwenden Sie das "Hervorhebungsposition"-Dropdown, um den Standort der Hervorhebungszeichen auszuwählen. Die bevorzugt-Option im Dropdown verwendet die bevorzugten Positionen, wie im Abschnitt Beschreibung erklärt.

Ruby vor Hervorhebungszeichen bevorzugen

Einige Editoren ziehen es vor, Hervorhebungszeichen auszublenden, wenn sie mit Ruby kollidieren. Im HTML kann dies mit der folgenden Stilregel geschehen:

css
ruby {
  text-emphasis: none;
}

Hervorhebungszeichen vor Ruby bevorzugen

Andere Editoren ziehen es vor, Ruby auszublenden, wenn es mit Hervorhebungszeichen kollidiert. Im HTML kann dies mit dem folgenden Muster geschehen:

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

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

Spezifikationen

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

Browser-Kompatibilität

Siehe auch