writing-mode
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since März 2017.
* Some parts of this feature may have varying levels of support.
Die writing-mode CSS Eigenschaft legt fest, ob Textzeilen horizontal oder vertikal angeordnet werden, sowie die Richtung, in der sich Blöcke bewegen. Wenn sie für ein gesamtes Dokument festgelegt wird, sollte sie auf dem Root-Element (dem html-Element für HTML-Dokumente) eingestellt werden.
Probieren Sie es aus
writing-mode: horizontal-tb;
writing-mode: vertical-lr;
writing-mode: vertical-rl;
writing-mode: sideways-rl;
writing-mode: sideways-lr;
<section class="default-example" id="default-example">
<div class="transition-all" id="example-element">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</div>
</section>
#example-element {
border: 1px solid #c5c5c5;
padding: 0.75em;
width: 80%;
max-height: 300px;
display: flex;
}
#example-element > div {
background-color: rgb(0 0 255 / 0.2);
border: 3px solid blue;
margin: 10px;
flex: 1;
}
Diese Eigenschaft spezifiziert die Blockflussrichtung, also die Richtung, in der Container auf Blockebene gestapelt werden, und die Richtung, in der Inhalte auf Inline-Ebene innerhalb eines Blockcontainers fließen. Daher bestimmt sie auch die Reihenfolge der Inhalte auf Blockebene.
Syntax
/* Keyword values */
writing-mode: horizontal-tb;
writing-mode: vertical-rl;
writing-mode: vertical-lr;
writing-mode: sideways-rl;
writing-mode: sideways-lr;
/* Global values */
writing-mode: inherit;
writing-mode: initial;
writing-mode: revert;
writing-mode: revert-layer;
writing-mode: unset;
Die writing-mode Eigenschaft wird als einer der unten aufgeführten Werte angegeben. Die Fließrichtung in horizontalen Schriften wird auch von der Richtung dieser Schrift beeinflusst, entweder links-nach-rechts (ltr, wie im Englischen und den meisten anderen Sprachen) oder rechts-nach-links (rtl, wie im Hebräischen oder Arabischen).
Werte
horizontal-tb-
Für
ltr-Schriften fließen Inhalte horizontal von links nach rechts. Fürrtl-Schriften fließen Inhalte horizontal von rechts nach links. Die nächste horizontale Linie wird unter der vorherigen Linie positioniert. vertical-rl-
Für
ltr-Schriften fließen Inhalte vertikal von oben nach unten, und die nächste vertikale Linie wird links von der vorherigen Linie positioniert. Fürrtl-Schriften fließen Inhalte vertikal von unten nach oben, und die nächste vertikale Linie wird rechts von der vorherigen Linie positioniert. vertical-lr-
Für
ltr-Schriften fließen Inhalte vertikal von oben nach unten, und die nächste vertikale Linie wird rechts von der vorherigen Linie positioniert. Fürrtl-Schriften fließen Inhalte vertikal von unten nach oben, und die nächste vertikale Linie wird links von der vorherigen Linie positioniert. sideways-rl-
Für
ltr-Schriften fließen Inhalte vertikal von oben nach unten. Fürrtl-Schriften fließen Inhalte vertikal von unten nach oben. Alle Glyphen, selbst in vertikalen Schriften, sind seitwärts nach rechts ausgerichtet. sideways-lr-
Für
ltr-Schriften fließen Inhalte vertikal von unten nach oben. Fürrtl-Schriften fließen Inhalte vertikal von oben nach unten. Alle Glyphen, selbst in vertikalen Schriften, sind seitwärts nach links ausgerichtet. lr-
Veraltet, außer für SVG1-Dokumente. Für CSS sollte
horizontal-tbverwendet werden. lr-tb-
Veraltet, außer für SVG1-Dokumente. Für CSS sollte
horizontal-tbverwendet werden. rl-
Veraltet, außer für SVG1-Dokumente. Für CSS sollte
horizontal-tbverwendet werden. tb-
Veraltet, außer für SVG1-Dokumente. Für CSS sollte
vertical-lrverwendet werden. tb-lrVeraltet-
Veraltet, außer für SVG1-Dokumente. Für CSS sollte
vertical-lrverwendet werden. tb-rl-
Veraltet, außer für SVG1-Dokumente. Für CSS sollte
vertical-rlverwendet werden.
Formale Definition
| Anfangswert | horizontal-tb |
|---|---|
| Anwendbar auf | alle Elemente außer Tabellenzeilengruppen, Tabellenspaltengruppen, Tabellenzeilen und Tabellenspalten |
| Vererbt | Ja |
| Berechneter Wert | wie angegeben |
| Animationstyp | Not animatable |
Formale Syntax
writing-mode =
horizontal-tb |
vertical-rl |
vertical-lr |
sideways-rl |
sideways-lr
Beispiele
>Verwendung mehrerer Schreibmodi
Dieses Beispiel zeigt alle Schreibmodi und zeigt jeden mit Text in verschiedenen Sprachen.
HTML
Das HTML ist eine <table> mit jedem Schreibmodus in einer Zeile mit einer Spalte, die Text in verschiedenen Schriften zeigt, die diesen Schreibmodus verwenden.
<table>
<caption>
Using multiple writing modes
</caption>
<thead>
<tr>
<th>Value</th>
<th>Vertical script</th>
<th>Horizontal (LTR) script</th>
<th>Horizontal (RTL) script</th>
<th>Mixed script</th>
</tr>
</thead>
<tbody>
<tr class="text1">
<th>horizontal-tb</th>
<td>我家没有电脑。</td>
<td>Example text</td>
<td>מלל ארוך לדוגמא</td>
<td>1994年に至っては</td>
</tr>
<tr class="text2">
<th>vertical-lr</th>
<td>我家没有电脑。</td>
<td>Example text</td>
<td>מלל ארוך לדוגמא</td>
<td>1994年に至っては</td>
</tr>
<tr class="text3">
<th>vertical-rl</th>
<td>我家没有电脑。</td>
<td>Example text</td>
<td>מלל ארוך לדוגמא</td>
<td>1994年に至っては</td>
</tr>
<tr class="experimental text4">
<th>sideways-lr</th>
<td>我家没有电脑。</td>
<td>Example text</td>
<td>מלל ארוך לדוגמא</td>
<td>1994年に至っては</td>
</tr>
<tr class="experimental text5">
<th>sideways-rl</th>
<td>我家没有电脑。</td>
<td>Example text</td>
<td>מלל ארוך לדוגמא</td>
<td>1994年に至っては</td>
</tr>
</tbody>
</table>
<p class="notice">
Your browser does not support the <code>sideways-lr</code> or
<code>sideways-rl</code> values.
</p>
CSS
Das CSS, das die Richtung des Inhalts anpasst, sieht folgendermaßen aus:
.text1 td {
writing-mode: horizontal-tb;
}
.text2 td {
writing-mode: vertical-lr;
}
.text3 td {
writing-mode: vertical-rl;
}
.text4 td {
writing-mode: sideways-lr;
}
.text5 td {
writing-mode: sideways-rl;
}
Ergebnis
Verwendung von writing-mode mit Transformationen
Wenn Ihr Browser sideways-lr nicht unterstützt, gibt es eine Möglichkeit, mit transform einen ähnlichen Effekt zu erzielen, abhängig von der Schreibrichtung. Der Effekt von vertical-rl ist derselbe wie bei sideways-lr, daher ist keine Transformation für links-nach-rechts-Schriften erforderlich. In einigen Fällen reicht es aus, den Text um 180 Grad zu drehen, um den Effekt von sideways-lr zu erzielen, jedoch sind Schriftglykene möglicherweise nicht dafür ausgelegt, gedreht zu werden, was zu unerwarteten Positionierungen oder Darstellungen führen kann.
HTML
<table>
<caption>
Using writing-mode with transforms
</caption>
<thead>
<tr>
<th>Vertical LR</th>
<th>Vertical LR with transform</th>
<th>Sideways LR</th>
<th>Only rotate</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<span class="vertical-lr">我家没有电脑。</span>
<span class="vertical-lr">Example text</span>
</td>
<td>
<span class="vertical-lr rotated">我家没有电脑。</span>
<span class="vertical-lr rotated">Example text</span>
</td>
<td>
<span class="sideways-lr">我家没有电脑。</span>
<span class="sideways-lr">Example text</span>
</td>
<td>
<span class="only-rotate">我家没有电脑。</span>
<span class="only-rotate">Example text</span>
</td>
</tr>
</tbody>
</table>
CSS
.vertical-lr {
writing-mode: vertical-lr;
}
.rotated {
transform: rotate(180deg);
}
.sideways-lr {
writing-mode: sideways-lr;
}
.only-rotate {
inline-size: fit-content;
transform: rotate(-90deg);
}
Ergebnis
Spezifikationen
| Specification |
|---|
| CSS Writing Modes Level 4> # block-flow> |
| Scalable Vector Graphics (SVG) 2> # WritingModeProperty> |
Browser-Kompatibilität
Loading…
Siehe auch
directionunicode-biditext-orientationtext-combine-upright- CSS-logische Eigenschaften
- CSS-Schreibmodul Modul
- SVG
writing-modeAttribut - Vertikale Formularelemente erstellen
- Umgang mit unterschiedlichen Schreibrichtungen
- Vertikalen Text gestalten (Chinesisch, Japanisch, Koreanisch und Mongolisch) auf W3.org (2022)