CSS-Eigenschaft „text-box-trim“

Veröffentlicht am 14. Januar 2025

In Chrome 133 können Entwickler und Designer mit text-box den Abstand über und unter Text anpassen.

Browser Support

  • Chrome: 133.
  • Edge: 133.
  • Firefox: behind a flag.
  • Safari: 18.2.

Source

Langform:

text-box-trim: trim-start | trim-end | trim-both | none;
text-box-edge: cap | ex | text | leading + alphabetic | text;

Kurzform:

text-box: trim-both cap alphabetic;

Mit dieser Property können Sie den Abstand über und unter Text steuern, z. B. bei <h1>, <button> und <p>. Jede Schriftart erzeugt einen anderen Abstand in Blockrichtung, der zur Größe des Elements beiträgt. Dieser chaotische Beitrag zum Abstand lässt sich nicht einfach messen und war bisher nicht steuerbar.

Die Schriftart weiß es, jetzt weiß es auch CSS.

Auf CodePen testen

Der Abstand über und unter einer Schriftart entsteht durch die Art und Weise, wie Text im Web angeordnet wird. Das wird als „Halbzeilenabstand“ bezeichnet. Matthias Ott hat in einem Beitrag mit dem Titel The Thing With Leading In CSS ausführlich darüber geschrieben. Beim manuellen Setzen von Text wurden Metallstücke verwendet, um Textzeilen zu trennen. Im Web wird der Zeilenabstand in zwei Teile aufgeteilt und jeweils ein Teil über und unter dem Inhalt platziert.

Eine Überschrift mit einem pinkfarbenen Balken über und unter dem Text, um den Halbzeilenabstand zu veranschaulichen. Quelle

Diese Geschichte ist wichtig, weil text-box uns Namen für jede Hälfte gibt: „over“ und „under“. Außerdem können wir den Abstand entfernen.

Es gibt auch einen Stand der Technik für text-box. Vielleicht erinnern Sie sich noch an den Beitrag von Ethan Wang mit dem Titel Leading-Trim: The Future Of Digital Typesetting, in dem leading-trim (der frühere Name von text-box) zum ersten Mal vorgestellt wurde.

Ein Anzeigentitel mit zu viel Leerraum darüber und darunter wird anscheinend mit einer Schere abgeschnitten und entfernt.

Der Einstieg in das Kürzen von Text kann über Figma und die Steuerelemente für den vertikalen Abstand für Designer erfolgen. In diesem X-Beitrag wird gezeigt, wo sich diese Option für den vertikalen Abstand befindet und wie sie für Schaltflächen hilfreich ist.

Quelle

Unabhängig davon, wie Sie hierher gekommen sind, kann diese kleine typografische Steuerung einen großen Unterschied machen.

Funktion und Syntax

Hier sind meiner Meinung nach die beiden häufigsten Einzeiler, die Sie bei der Arbeit mit text-box benötigen:

h1 {
  /* trim both sides to the capital letters */
  text-box: trim-both cap alphabetic;

  /* trim both sides to the lowercase letter x */
  text-box: trim-both ex alphabetic;
}

Das Kürzen beider Seiten auf cap alphabetic ist die häufigste Verwendung dieser Funktion. In den folgenden Demos wird dies mehrmals verwendet. Im vorherigen Beispiel wird jedoch auch ex alphabetic verwendet, da es auf einzigartige Weise für das optische Gleichgewicht nützlich ist.

Explorer-Playground

Erkunden Sie die Syntax in unserem Playground, und sehen Sie sich die Ergebnisse in Drop-down-Menüs an. Sie können Schriftarten und Werte für das Kürzen über und unter dem Text ändern und die farblich gekennzeichneten Grafiken und Labels verfolgen.

Die Syntaxvorschau mit „text-box: trim-both cap alphabetic“ ist hervorgehoben und wird angezeigt. Es gibt drei weitere Drop-down-Menüs, in denen Sie Werte für das Kürzen auswählen können.

Mögliche Aktionen:

  1. Visuelle Überprüfung der Funktionsweise von text-box-trim bei einzeiligem und mehrzeiligem Text.
  2. Bewegen Sie den Mauszeiger auf eine Variante, um die Werte für das Kürzen zu sehen, die verwendet wurden, um diesen Effekt zu erzielen.
  3. Ändern Sie die Schriftart.
  4. Kürzen Sie nur eine Seite eines Textfelds.
  5. Überprüfen Sie die Syntax während der Wiedergabe.
Auf CodePen testen

Was kann ich erstellen und welche Probleme werden dadurch gelöst?

Aus dieser Kürzungsmöglichkeit ergeben sich einige viel einfachere Lösungen für die Zentrierung und Ausrichtung. Sie können sogar einen korrekten Zeilenabstand erzielen, bei dem zwischen den Inhalten ein Abstand wie gap verwendet werden kann.

Ein Vergleich zwischen zwei Inhaltsgruppen.
Die erste Gruppe hat einen Halbzeilenabstand, die zweite einen gekürzten Zeilenabstand. Dadurch ist die zweite Gruppe enger zusammen. Auf CodePen testen

Einfachere Zentrierung

Bei kleineren, inline- und inhaltsbezogenen Komponenten ist padding: 10px ein angemessener Stil, um für ein Element einen gleichen Abstand auf allen Seiten festzulegen. Das Ergebnis kann jedoch verwirrend sein, da oben und unten oft zusätzlicher Abstand vorhanden ist.

Um dieses Problem zu umgehen, legen Entwickler oft explizit einen geringeren Abstand oben und unten (Block) fest, um die Auswirkungen des Halbzeilenabstands auszugleichen.

button {
  padding-block: 5px;
  padding-inline: 10px;
}

An diesem Punkt müssen wir Wertkombinationen ausprobieren, bis die Elemente optisch zentriert sind. Das sieht auf einem Bildschirm und Betriebssystem möglicherweise gut aus, auf einem anderen jedoch nicht.

Mit text-box können wir den Halbzeilenabstand aus dem Text entfernen, sodass gleiche Abstände wie 10px nützlich sind:

button {
  text-box: trim-both cap alphabetic;
  padding: 10px;
}
Es werden zwei Beispiele gezeigt.
Das erste Element hat einen Abstand von 10 px und einen Halbzeilenabstand. Das zweite Element hat die gleiche Größe, aber „text-box: trim-both cap alphabetic“. Dadurch ist die zweite Schaltfläche optisch zentriert. Auf CodePen testen

Hier sind einige <button> Elemente, die zeigen, wie durch das Kürzen des Abstands mit text-box der Abstand von padding: 10px auf allen Seiten in einem praktischen interaktiven Element gleich aussieht. Beachten Sie, wie die alternative Schriftart einen ganz anderen Halbzeilenabstand erzeugen kann.

Drei Gruppen von Schaltflächen. Im ersten Beispiel wird eine normale serifenlose Schriftart verwendet, im zweiten eine ausgefallene oder lustige Schriftart und im dritten derselbe Effekt mit einer Handschrift-Schriftart.
Jede Schriftart hat einen anderen Halbzeilenabstand, aber die Werte für das Kürzen sind die gleichen und können den Abstand normalisieren. Auf CodePen testen

Hier sind <span>-Elemente, die häufig verwendet werden, um Kategorien oder Badges anzuzeigen. Auch hier sollte ein gleichseitiger Abstand die beste Lösung sein, aber bis text-box mussten wir uns damit behelfen.

Tags werden nebeneinander angezeigt. Die erste Gruppe hat halben Zeilenabstand, die zweite gekürzten Zeilenabstand.
Die zweite Gruppe von Tags ist dank des gekürzten Zeilenabstands enger und optisch zentriert.

Einfachere Ausrichtung

Der zusätzliche, unkontrollierbare Halbzeilenabstand über (over) und unter (under) einem Textfeld erschwert auch die Ausrichtung. In den folgenden Beispielen wird gezeigt, wann der Halbzeilenabstand die Ausrichtung erschweren kann und wie das Kürzen der Blockseiten eines Textfelds zu einer besseren Ausrichtung führen kann.

Hier wird ein Bild neben Text platziert. Das Bild wird auf die Höhe des Textes vergrößert. Ohne text-box ist das Bild immer etwas höher. Mit text-box kann das Bild perfekt an den Textinhalt ausgerichtet werden.

Auf CodePen testen

Beachten Sie, dass bei Zeilenumbruch der Leerraum über der ersten formatierten Textzeile und unter der letzten formatierten Textzeile liegt.

Im folgenden Beispiel sehen Sie, wie sich die Funktion logisch anpasst an eine Änderung von writing-mode. Ändern Sie den Text und beobachten Sie, wie das Layout weiterhin ausgerichtet bleibt.

Auf CodePen testen

Weiterlernen

Möchten Sie mehr erfahren? In der folgenden Liste mit Links finden Sie verschiedene Mengen an zusätzlichen Informationen und Anwendungsfällen.