Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

text-box-trim

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Die text-box-trim CSS Eigenschaft gibt an, welche der oberen und unteren Kanten des Textinhalts von einem Blockcontainer eines Textelements geschnitten werden sollen.

Der vertikale Abstand variiert zwischen Schriftarten, was das konsistente Satzbilden historisch gesehen im Web herausfordernd machte. Die Eigenschaft text-box-trim — zusammen mit ihrer entsprechenden Eigenschaft text-box-edge, die angibt, wie viel Platz abgeschnitten werden soll — erleichtert das Erzielen eines konsistenten vertikalen Abstands von Text.

Hinweis: Die text-box Kurzschreibweise kann verwendet werden, um die Werte von text-box-trim und text-box-edge in einer einzigen Deklaration anzugeben.

Syntax

css
/* Keywords */
text-box-trim: none;
text-box-trim: trim-both;
text-box-trim: trim-start;
text-box-trim: trim-end;

/* Global values */
text-box-trim: inherit;
text-box-trim: initial;
text-box-trim: revert;
text-box-trim: revert-layer;
text-box-trim: unset;

Wert

Der Wert der Eigenschaft text-box-trim kann als eines der folgenden Schlüsselwörter angegeben werden:

none

Der Standardwert. Kein Raum wird vom Text abgeschnitten.

trim-both

Sowohl die obere (über) als auch die untere (unter) Kante werden beschnitten.

trim-start

Die obere (über) Kante wird beschnitten.

trim-end

Die untere (unter) Kante wird beschnitten.

Beschreibung

Die Höhe von reinem Textinhalt ist relativ zur Höhe der Schriftart. In digitalen Schriftdateien umfasst die Höhe alle Zeichen, einschließlich Großbuchstaben, Oberlängen, Unterlängen usw. Verschiedene Schriftarten haben unterschiedliche Basislinienhöhen, was bedeutet, dass Textzeilen mit derselben font-size unterschiedliche Linienboxenhöhen erzeugen, was sich auf das Erscheinungsbild der Zwischenräume zwischen den Zeilen auswirkt.

Die Eigenschaft text-box-trim ermöglicht es Ihnen, die obere und untere Kante des Textblockcontainers abzuschneiden, was es einfacher macht, den Textabstand in Blockrichtung zu kontrollieren.

Die tatsächliche Menge an Raum, der abgeschnitten wird, wird mit der Eigenschaft text-box-edge angegeben. Zum Beispiel können Sie wählen, die obere Kante im Einklang mit den Großbuchstaben oder den Kleinbuchstaben einer Schriftart zu trimmen und die untere Kante bündig mit der Basislinie der Schriftart.

Formale Definition

Anfangswertnone
Anwendbar aufBlock containers and inline boxes
VererbtNein
Berechneter Wertthe specified keyword
Animationstypdiskret

Formale Syntax

text-box-trim = 
none |
trim-start |
trim-end |
trim-both

Beispiele

Grundlegende Verwendung von text-box-trim

Im folgenden Beispiel setzen wir text-box-edge: cap alphabetic auf zwei Absätzen, wodurch die obere Kante der Blockcontainer der Textelemente auf die Höhe der Großbuchstaben und die untere Kante bündig mit der Textbasislinie zugeschnitten wird.

Dann setzen wir text-box-trim Werte von trim-end auf dem ersten und trim-both auf dem zweiten. Dies führt dazu, dass beim ersten Absatz nur die untere Kante beschnitten wird, während beim zweiten Absatz sowohl die obere als auch die untere Kante beschnitten werden.

css
p {
  text-box-edge: cap alphabetic;
  border-top: 5px solid magenta;
  border-bottom: 5px solid magenta;
}

.one {
  text-box-trim: trim-end;
}

.two {
  text-box-trim: trim-both;
}

Ergebnis

Die Ausgabe ist wie folgt. Beachten Sie, wie wir einen oberen und unteren Rand zu jedem Absatz hinzugefügt haben, so dass Sie sehen können, wie der Raum in jedem Fall beschnitten wurde.

Interaktive Wertvergleich von text-box-trim und text-box-edge

In diesem Beispiel bieten wir eine Benutzeroberfläche, die es Ihnen ermöglicht, die auf einen Textabsatz angewendeten Werte von text-box-trim und text-box-edge auszuwählen.

HTML

In unserem HTML enthalten wir drei Hauptelemente:

  • Drei <select> Elemente, die es ermöglichen, festzulegen, welche Kanten des Absatzes beschnitten werden sollen (der text-box-trim Wert) und wie viel Platz von den block-start und block-end Kanten des Absatzes beschnitten werden soll (der text-box-edge Wert).
  • Ein <p> Element, das Text enthält, auf das die text-box-* Werte angewendet werden. Dieser Absatz hat contenteditable, damit Sie den Text bearbeiten können.
  • Ein <output> Element, das die auf den Absatz angewendeten text-box-* Deklarationen anzeigt. Dieses wird aktualisiert, wenn eine Auswahl vorgenommen wird.

Wir importieren zudem eine Schriftart vom Google Fonts Service, die auf den Text unseres Demos angewendet wird.

Wir haben den genauen HTML-Code aus Gründen der Kürze ausgeblendet.

CSS

In unserem CSS wenden wir die importierte Schriftart auf das <html> Element an und gestalten die Benutzeroberfläche mit Hilfe von flexbox. Wir haben den größten Teil des CSS-Codes aus Gründen der Kürze ausgeblendet, aber unten zeigen wir die Regeln, die den Absatz stylen, auf den die text-box-* Effekte angewandt werden, sowie das <output>, das die text-box-* Regeln zeigt, die angewendet werden:

css
p {
  margin: 0;
  font-size: 6rem;
  font-weight: bold;
  border-top: 5px solid magenta;
  border-bottom: 5px solid magenta;
}

output {
  border: 2px solid gray;
  border-radius: 10px;
  padding: 10px;
  margin: 0;
  width: fit-content;
}

Beachten Sie erneut, wie wir einen oberen und unteren Rand zu dem .display Absatz hinzugefügt haben, so dass Sie sehen können, wie sich der beschnittene Raum ändert, wenn verschiedene text-box-* Werte ausgewählt werden.

JavaScript

Im JavaScript beginnen wir damit, Referenzen zu den drei <select> Elementen und zwei <p> Elementen zu erhalten:

js
const boxTrimSelect = document.getElementById("box-trim");
const trimOverSelect = document.getElementById("trim-over");
const trimUnderSelect = document.getElementById("trim-under");

const displayElem = document.querySelector("p");
const codeElem = document.querySelector("output");

Als nächstes definieren wir eine Funktion namens setEdgeTrim(). Diese wendet einen text-box Wert auf den Absatz an, basierend auf den Werten der <select> Elemente, und gibt auch die angewendeten Deklarationen an die Ausgabe aus (sowohl die Langform als auch die Kurzform-Äquivalente):

js
function setEdgeTrim() {
  const textBoxTrimValue = boxTrimSelect.value;
  const textBoxEdgeValue = `${trimOverSelect.value} ${trimUnderSelect.value}`;
  displayElem.style.textBox = `${textBoxTrimValue} ${textBoxEdgeValue}`;

  codeElem.innerHTML = `
    <span><code>text-box-trim: ${textBoxTrimValue}</code></span>
    <br>
    <span><code>text-box-edge: ${textBoxEdgeValue}</code></span>
    <br><br>
    <span>Shorthand equivalent:</span>
    <br><br>
    <span><code>text-box: ${textBoxTrimValue} ${textBoxEdgeValue}</code></span>
  `;
}

Im letzten Teil des JavaScripts führen wir die setEdgeTrim() Funktion einmal aus, um einen Anfangszustand für die Benutzeroberfläche einzustellen. Wir wenden dann change Ereignislistener auf alle <select> Elemente an (über addEventListener), so dass setEdgeTrim() immer ausgeführt wird, wenn sich ein <select> Wert ändert, um die Benutzeroberfläche entsprechend zu aktualisieren:

js
setEdgeTrim();

boxTrimSelect.addEventListener("change", setEdgeTrim);
trimOverSelect.addEventListener("change", setEdgeTrim);
trimUnderSelect.addEventListener("change", setEdgeTrim);

Ergebnis

Die Ausgabe ist wie folgt:

text-box-trim ist anfänglich auf trim-both gesetzt, was bedeutet, dass sowohl die obere als auch die untere Kante des Absatzes beschnitten werden. text-box-edge ist anfänglich auf cap alphabetic gesetzt, was bedeutet, dass der Text bündig mit der Höhe der Großbuchstaben an der Anfangskante zugeschnitten ist und bündig mit der Basislinie an der Endkante.

Versuchen Sie, die <select> Werte zu ändern, um den Effekt zu sehen, den sie auf den Anzeigetext haben.

Spezifikationen

Specification
CSS Inline Layout Module Level 3
# text-box-trim

Browser-Kompatibilität

Siehe auch