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 Block-Container eines Textelements getrimmt werden sollen.
Vertikaler Abstand unterscheidet sich zwischen Schriftarten, was konsistentes Schriftsatzhistorisch im Web herausfordernd machte. Die text-box-trim
Eigenschaft — zusammen mit der entsprechenden Eigenschaft text-box-edge
, die angibt, wie viel Platz getrimmt werden soll — erleichtert es, konsistenten vertikalen Abstand von Text zu gewährleisten.
Hinweis:
Die Kurzschreibweise text-box
kann verwendet werden, um die text-box-trim
und text-box-edge
Werte in einer einzigen Deklaration anzugeben.
Syntax
/* 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 text-box-trim
Eigenschaft kann mit einem der folgenden Schlüsselwörter angegeben werden:
none
-
Der Standardwert. Kein Platz wird vom Text getrimmt.
trim-both
-
Sowohl die Start- (oben) als auch die Endkante (unten) werden getrimmt.
trim-start
-
Die Startkante (oben) wird getrimmt.
trim-end
-
Die Endkante (unten) wird getrimmt.
Beschreibung
Die Höhe von nur Textinhalt ist relativ zur Höhe der Schriftart. In digitalen Schriftdateien enthält die Höhe alle Zeichen, einschließlich Großbuchstaben, Ober- und Unterlängen usw. Verschiedene Schriftarten haben unterschiedliche Grundlinienhöhen, was bedeutet, dass Textzeilen mit derselben font-size
Zeilenkästen unterschiedlicher Höhe erzeugen, was die Erscheinung des Abstands zwischen den Zeilen beeinflusst.
Die text-box-trim
Eigenschaft ermöglicht es Ihnen, die obere und untere Kante des Block-Containers des Textes zu trimmen, um den Textabstand in Blockrichtung besser steuern zu können.
Die tatsächliche Menge an getrimmtem Raum wird mit der text-box-edge
Eigenschaft angegeben. Sie können zum Beispiel wählen, die obere Kante in Übereinstimmung mit den Großbuchstaben oder Kleinbuchstaben einer Schriftart zu trimmen und die untere Kante nahtlos mit der Grundlinie der Schrift.
Formale Definition
Anfangswert | none |
---|---|
Anwendbar auf | Block containers and inline boxes |
Vererbt | Nein |
Berechneter Wert | the specified keyword |
Animationstyp | diskret |
Formale Syntax
Beispiele
Grundlegende Verwendung von text-box-trim
Im folgenden Beispiel stellen wir text-box-edge: cap alphabetic
in zwei Absätzen ein, was die obere Kante der Block-Container der Text-Elemente an den oberen Großbuchstaben trimmt und die untere Kante bündig mit der Textgrundlinie.
Dann setzen wir text-box-trim
Werte von trim-end
für den ersten und trim-both
für den zweiten Absatz. Das führt dazu, dass beim ersten Absatz nur die untere Kante getrimmt wird, während beim zweiten sowohl die obere als auch die untere Kante getrimmt werden.
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 sieht wie folgt aus. Beachten Sie, dass wir oben und unten an jedem Absatz einen Rahmen hinzugefügt haben, damit Sie sehen können, wie der Raum in jedem Fall getrimmt wurde.
Interaktiver Vergleich der Werte text-box-trim
und text-box-edge
In diesem Beispiel bieten wir eine Benutzeroberfläche, die es Ihnen ermöglicht, die text-box-trim
und text-box-edge
Werte anzupassen, die auf einen Textabsatz angewendet werden.
HTML
In unserem HTML enthalten wir drei Hauptbestandteile:
- Drei
<select>
Elemente, mit denen Sie festlegen können, welche Kanten des Absatzes getrimmt werden sollen (dertext-box-trim
Wert) und wie viel Platz von den Block-Start- und Block-End-Kanten des Absatzes getrimmt werden soll (dertext-box-edge
Wert). - Ein
<p>
Element, das Text enthält, auf den dietext-box-*
Werte angewendet werden. Dieser Absatz hatcontenteditable
gesetzt, damit Sie den Text bearbeiten können. - Ein
<output>
Element, das dietext-box-*
Deklarationen anzeigt, die auf den Absatz angewendet werden. Dies wird aktualisiert, wenn eine Auswahl getroffen wird.
Wir importieren auch eine Schriftart von Google Fonts, um sie auf den Text unseres Demos anzuwenden.
Wir haben den genauen HTML-Code aus Gründen der Kürze verborgen.
CSS
In unserem CSS wenden wir die importierte Schriftart auf das <html>
Element an und legen das UI mit flexbox an. Wir haben den größten Teil des CSS-Codes aus Gründen der Kürze verborgen, aber unten zeigen wir die Regeln, die den Absatz stylen, auf den die text-box-*
Effekte angewendet werden, und das <output>
, das die angewendeten text-box-*
Regeln zeigt:
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;
}
Auch hier beachten Sie, dass wir einen oberen und unteren Rahmen am .display
Absatz hinzugefügt haben, damit Sie sehen können, wie sich der getrimmte Raum ändert, wenn verschiedene text-box-*
Werte ausgewählt werden.
JavaScript
Im JavaScript beginnen wir damit, Verweise auf die drei <select>
Elemente und zwei <p>
Elemente zu holen:
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 auf den Absatz einen text-box
Wert basierend auf den Werten der <select>
Elemente an und druckt auch die angewendeten Deklarationen in das Ausgabelement (sowohl die Lang- als auch Kurzschreibweise):
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 festzulegen. Dann wenden wir change
Ereignislistener auf alle <select>
Elemente an (über addEventListener
), sodass setEdgeTrim()
immer ausgeführt wird, wenn sich einer der <select>
Werte ändert, um die Benutzeroberfläche entsprechend zu aktualisieren:
setEdgeTrim();
boxTrimSelect.addEventListener("change", setEdgeTrim);
trimOverSelect.addEventListener("change", setEdgeTrim);
trimUnderSelect.addEventListener("change", setEdgeTrim);
Ergebnis
Die Ausgabe ist wie folgt:
text-box-trim
ist anfangs auf trim-both
gesetzt, was bedeutet, dass sowohl die oberen als auch unteren Kanten des Absatzes getrimmt werden. text-box-edge
ist anfangs auf cap alphabetic
gesetzt, was bedeutet, dass der Text bündig mit den oberen Großbuchstaben an der Startkante getrimmt ist und bündig mit der Grundlinie an der Endkante.
Versuchen Sie, die <select>
Werte zu ändern, um die Auswirkung auf den Anzeigetext zu sehen.
Spezifikationen
Specification |
---|
CSS Inline Layout Module Level 3 # text-box-trim |
Browser-Kompatibilität
Siehe auch
text-box
,text-box-edge
- CSS Inline-Layout Modul
- CSS text-box-trim auf developer.chrome.com (2025)