text-combine-upright

Avatar of Geoff Graham
Geoff Graham on

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Die CSS-Eigenschaft text-combine-upright kombiniert Zeichen im Platz eines Zeichens. Die Spezifikation nennt dies „horizontal-in-vertical“ Komposition, was eine gute Beschreibung des Anwendungsfalls ist: Situationen, in denen Sie möglicherweise einige Zeichen in einer vertikalen Schreibweise benötigen, um sie auf derselben Zeile horizontal anzuzeigen.

span {
  text-combine-upright: all;
}

Die Technik für horizontalen Text innerhalb von vertikalem Text ist eine japanische Technik namens tate-chū-yoko. So sieht das aus

Bei der Arbeit mit einer vertikalen links-nach-rechts Schreibweise (writing-mode: vertical-rl;), wie auf der linken Seite dieser Abbildung, kann die Eigenschaft text-combine-upright mehrere Zeichen nehmen und sie horizontal anzeigen, wobei der Zeichenraum im Wesentlichen in gleiche Teile aufgeteilt wird, je nachdem, wie viele Zeichen ausgewählt sind. In diesem Beispiel zeigt die rechte Seite zwei Zeichen, die sich den gleichen Zeichenraum innerhalb einer vertikalen Schreibweise teilen.

Syntax

text-combine-upright: none | all | [ digits <integer>? ]
  • Initialwert: none
  • Gilt für: nicht ersetzte Inline-Elemente
  • Vererbt: ja
  • Prozentwerte: n/v
  • Berechneter Wert: Schlüsselwort, plus Ganzzahl, wenn digits
  • Animationstyp: nicht animierbar

Werte

text-combine-upright akzeptiert die folgenden Werte

  • none: Dies ist der Anfangswert. Keine Zeichen werden horizontal in einer vertikalen Schreibweise angezeigt.
  • all: Alle aufeinanderfolgenden typografischen Zeichen im vertikalen Container-Box werden horizontal auf derselben Zeile angezeigt und nehmen den Platz eines einzelnen Zeichens in der vertikalen Box ein.
  • digits <integer>?: Alle aufeinanderfolgenden ASCII-Ziffern im vertikalen Container-Box werden horizontal auf derselben Zeile angezeigt und nehmen den Platz eines einzelnen Zeichens in der vertikalen Box ein, bis zur angegebenen Ganzzahl. Wenn keine Ganzzahl angegeben ist, beträgt der Standardwert 2 Ziffern. Alles unter 2 und über 4 ist ungültig.
/* Keyword values */
text-combine-upright: none;
text-combine-upright: all;

/* Digits values */
text-combine-upright: digits; /* 2 digits */
text-combine-upright: digits 4; /* 4 digits */

/* Global values */
text-combine-upright: inherit;
text-combine-upright: initial;
text-combine-upright: unset;

Verwendung

Nehmen wir das Beispiel, das direkt aus der Spezifikation stammt, ein <date>-Element mit vertikaler Schreibweise.

<date>平成20年4月16日に</date>
date {
  writing-mode: vertical-lr;
}

OK, wir möchten, dass Zahlen im Datum horizontal angezeigt werden. Es ist logisch anzunehmen, dass das Hinzufügen von text-combine-upright direkt auf das Element den Trick bewirkt.

date {
  text-combine-upright: digits 2; /* 👎 */
  writing-mode: vertical-lr;
}

Aber, nicht wirklich. Zum Zeitpunkt des Schreibens müssen wir die Eigenschaft auf die Ziffern selbst anwenden, damit dies funktioniert. Ein Span reicht aus.

<date>平成<span>20</span>年<span>4</span>月<span>16</span>日に</date>
date {
  writing-mode: vertical-lr;
}

span {
  text-combine-upright: digits 2;
}

Da haben wir es!

Browser-Unterstützung

Wie wir gerade im Beispiel gesehen haben, ist die Browserunterstützung im Moment etwas lückenhaft. Während viele Browser zumindest teilweise text-combine-upright unterstützen, gibt es deutlich weniger Unterstützung für den digits-Wert als für den all-Wert.

IEEdgeFirefoxChromeSafariOpera
11¹12+¹48+²48+5.1+³35+
Android ChromeAndroid FirefoxAndroid BrowseriOS SafariOpera Mobile
86+82+²81+5+³59+
Quelle: caniuse
  1. Verwendet den nicht standardmäßigen Namen: -ms-text-combine-horizontal
  2. Erkennt den digits-Wert hinter dem experimentellen Flag layout.css.text-combine-upright-digits.enabled, implementiert aber noch keine Layout-Unterstützung für tate-chū-yoko
  3. Verwendet den nicht standardmäßigen Namen: -webkit-text-combine

Spezifikation