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 Blöcke fortschreiten. Wenn sie für ein gesamtes Dokument festgelegt wird, sollte sie auf dem Wurzelelement (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 legt die Blockflussrichtung fest, die die Richtung bestimmt, in die blockbasierte Container gestapelt werden, und die Richtung, in der Inline-Inhalte innerhalb eines Blockcontainers fließen. Somit bestimmt sie auch die Reihenfolge von Blockinhalten.
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 Flussrichtung bei horizontalen Schriften wird ebenfalls durch die Richtung dieser Schrift beeinflusst, entweder von links nach rechts (ltr, wie Englisch und die meisten anderen Sprachen) oder von rechts nach links (rtl, wie Hebräisch oder Arabisch).
Werte
horizontal-tb-
Für
ltrSchriften fließt der Inhalt horizontal von links nach rechts. FürrtlSchriften fließt der Inhalt horizontal von rechts nach links. Die nächste horizontale Zeile wird unterhalb der vorherigen Zeile positioniert. vertical-rl-
Für
ltrSchriften fließt der Inhalt vertikal von oben nach unten, und die nächste vertikale Zeile wird links von der vorherigen Zeile positioniert. FürrtlSchriften fließt der Inhalt vertikal von unten nach oben, und die nächste vertikale Zeile wird rechts von der vorherigen Zeile positioniert. vertical-lr-
Für
ltrSchriften fließt der Inhalt vertikal von oben nach unten, und die nächste vertikale Zeile wird rechts von der vorherigen Zeile positioniert. FürrtlSchriften fließt der Inhalt vertikal von unten nach oben, und die nächste vertikale Zeile wird links von der vorherigen Zeile positioniert. sideways-rl-
Für
ltrSchriften fließt der Inhalt vertikal von oben nach unten. FürrtlSchriften fließt der Inhalt vertikal von unten nach oben. Alle Glyphen, auch die in vertikalen Schriften, werden seitwärts nach rechts gesetzt. sideways-lr-
Für
ltrSchriften fließt der Inhalt vertikal von unten nach oben. FürrtlSchriften fließt der Inhalt vertikal von oben nach unten. Alle Glyphen, auch die in vertikalen Schriften, werden seitwärts nach links gesetzt. lr-
Veraltet außer für SVG1-Dokumente. Für CSS verwenden Sie stattdessen
horizontal-tb. lr-tb-
Veraltet außer für SVG1-Dokumente. Für CSS verwenden Sie stattdessen
horizontal-tb. rl-
Veraltet außer für SVG1-Dokumente. Für CSS verwenden Sie stattdessen
horizontal-tb. tb-
Veraltet außer für SVG1-Dokumente. Für CSS verwenden Sie stattdessen
vertical-lr. tb-lrVeraltet-
Veraltet außer für SVG1-Dokumente. Für CSS verwenden Sie stattdessen
vertical-lr. tb-rl-
Veraltet außer für SVG1-Dokumente. Für CSS verwenden Sie stattdessen
vertical-rl.
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 demonstriert alle Schreibmodi und zeigt jeden mit Text in verschiedenen Sprachen.
HTML
Das HTML ist eine <table> mit jedem Schreibmodus in einer Zeile und einer Spalte, die Text in verschiedenen Schriften unter Verwendung dieses Schreibmodus zeigt.
<table>
<caption>
Using multiple writing modes
</caption>
<tr>
<th>Value</th>
<th>Vertical script</th>
<th>Horizontal (LTR) script</th>
<th>Horizontal (RTL) script</th>
<th>Mixed script</th>
</tr>
<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>
</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 Richtungsabhängigkeit des Inhalts anpasst, sieht so 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 des writing-mode mit Transformations
Falls Ihr Browser sideways-lr nicht unterstützt, gibt es einen Workaround mit transform, um einen ähnlichen Effekt zu erzielen, abhängig von der Schreibrichtung. Der Effekt von vertical-rl ist derselbe wie mit sideways-lr, weshalb keine Transformation für von links nach rechts Schreibweisen erforderlich ist. In einigen Fällen reicht es aus, den Text um 180 Grad zu drehen, um den Effekt von sideways-lr zu erzielen. Allerdings könnten Schriftglyphen möglicherweise nicht dafür entworfen sein, 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 Schreibmodi Modul
- SVG
writing-modeAttribut - Erstellen von vertikalen Formularelementen
- Umgang mit verschiedenen Textrichtungen
- Styling von vertikalem Text (Chinesisch, Japanisch, Koreanisch und Mongolisch) auf W3.org (2022)