files/en-us/web/css/reference/properties/text-emphasis-position/index.md
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.
{{InteractiveExample("CSS Demo: text-emphasis-position")}}
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;
}
/* 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;
The property accepts one or two values:
auto, over, or under. When only over or under is used, right is assumed as the default position.over or under and one of right or left. Their order does not matter.The values include:
auto
over
under
right
left
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:
</td>
<td rowspan="4">
</td>
</tr>
<tr>
<td>Korean</td>
</tr>
<tr>
<td>Mongolian</td>
</tr>
<tr>
<td>Chinese</td>
<td>under</td>
<td>right</td>
<td>
</td>
</tr>
[!NOTE] The
text-emphasis-positioncannot be set, and therefore are not reset either, using the {{cssxref("text-emphasis")}} shorthand property.
{{CSSInfo}}
{{csssyntax}}
Use the drop down 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.
<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>
.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);
Use the "Emphasis position" drop down to choose the location of the emphasis marks. The preferred option in the drop down uses the preferred positions, as explained in the Description section.
{{EmbedLiveSample("Emphasis_mark_positions", 450, 250)}}
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;
}
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}}
{{Compat}}