Gepubliceerd: 14 januari 2025
Vanaf Chrome 133 kunnen ontwikkelaars en ontwerpers text-box de ruimte boven en onder de tekst aanpassen.
Uitgeschreven:
text-box-trim: trim-start | trim-end | trim-both | none;
text-box-edge: cap | ex | text | leading + alphabetic | text;
Afkorting:
text-box: trim-both cap alphabetic;
Met deze eigenschap kunt u de ruimte boven en onder tekst regelen, bijvoorbeeld voor <h1> , <button> en <p> . Elk lettertype produceert een andere hoeveelheid van deze blokgerichte ruimte, die bijdraagt aan de grootte van het element. Deze chaotische bijdrage aan de ruimte is niet gemakkelijk te meten en was tot nu toe onmogelijk te controleren.
Het lettertype wist het al, en nu weet CSS het ook.
De ruimte boven en onder een lettertype ontstaat door de manier waarop webtekst wordt opgemaakt, ook wel "half-leading" genoemd. Dit wordt uitstekend uitgelegd in een artikel van Matthias Ott getiteld "The Thing With Leading In CSS" . Kort gezegd, toen er nog met de hand werd gezet, werden stukjes lood gebruikt om tekstregels van elkaar te scheiden. Het web, geïnspireerd door leading, splitst het lood in twee stukken en plaatst een stuk boven en een stuk onder de tekst.

Deze geschiedenis is zinvol omdat text-box ons namen geeft voor elk deel: boven en onder. Bovendien kunnen we het inkorten.
Er bestaat ook al eerder zoiets als text-box . Je herinnert je misschien nog het interessante artikel van Ethan Wang, getiteld 'Leading-Trim: The Future Of Digital Typesetting' , waarin leading-trim (de naam die text-box voorheen had) voor het eerst werd geïntroduceerd.

Je eerste kennismaking met het inkorten van tekst kan via Figma zijn, met name via de "verticale trim"-functie voor ontwerpers. In dit artikel wordt uitgelegd waar deze verticale trim-optie te vinden is en hoe deze handig kan zijn voor knoppen.
Hoe je hier ook terecht bent gekomen, deze ogenschijnlijk kleine typografische instelling kan een groot verschil maken.
Functie en syntaxis
Dit zijn naar mijn mening de twee meest voorkomende one-liners die je nodig hebt bij het werken met text-box :
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;
}
Het bijsnijden van beide tot cap alphabetic is het meest voorkomende gebruik van deze functie. De volgende demo's maken hier veelvuldig gebruik van. Het vorige voorbeeld toont echter ook ex alphabetic omdat dit op zijn eigen unieke manier nuttig is voor de optische balans.
Ontdekkingsspeeltuin
Verken de syntaxis in onze oefenomgeving en bekijk de resultaten met behulp van de下拉菜单 (dropdownmenu's). Je kunt lettertypen wijzigen, de trimwaarden aanpassen en de kleurgecodeerde visualisaties en labels volgen.

Dingen om te proberen:
- Visueel inspecteren hoe
text-box-trimwerkt voor zowel tekst met één regel als tekst met meerdere regels. - Als je met de muis over een variant beweegt, zie je de trimwaarden die gebruikt zijn om dat effect te bereiken.
- Het lettertype wijzigen.
- Het bijsnijden van slechts één zijde van een tekstvak.
- Neem de syntaxis door terwijl je speelt.
Wat kan ik bouwen en welke problemen lost het op?
Er zijn een aantal veel eenvoudigere oplossingen voor centreren en uitlijnen die voortkomen uit deze trimmogelijkheid. Je kunt zelfs een betere regelafstand bereiken, waarbij bijvoorbeeld een gap tussen de inhoud kan worden gebruikt.

Gemakkelijker centreren
Voor kleinere, meer inline en inhoudelijke componenten is padding: 10px een redelijke stijl om te gebruiken voor een element dat aan alle kanten gelijke afstand heeft. Het resultaat kan echter verwarrend zijn, omdat er vaak extra ruimte aan de boven- en onderkant overblijft.
Om dit probleem te omzeilen, voegen ontwikkelaars vaak expliciet minder opvulling (padding) toe aan de boven- en onderkant (blok) om het effect van een halve regelafstand te compenseren.
button {
padding-block: 5px;
padding-inline: 10px;
}
Nu rest ons niets anders dan verschillende waardecombinaties uit te proberen totdat alles optisch gecentreerd is. Dit kan er op het ene scherm en besturingssysteem goed uitzien, maar niet op het andere.
text-box kunnen we de halve regelafstand van de tekst verwijderen, waardoor gelijke opvulwaarden zoals 10px nuttig kunnen zijn:
button {
text-box: trim-both cap alphabetic;
padding: 10px;
}

Hier zijn een paar <button> -elementen die laten zien hoe het bijsnijden van de ruimte met text-box ervoor zorgt dat padding: 10px er aan alle kanten gelijk uitziet in een praktisch interactief element. Let op hoe het alternatieve lettertype een enorm verschil in de regelafstand kan opleveren.

Hier zijn <span> -elementen, die vaak worden gebruikt om categorieën of badges weer te geven. Ook hier zou gelijke opvulling aan beide zijden de beste oplossing zijn, maar tot text-box moesten we het hier omheen werken.

Eenvoudigere uitlijning
De extra, oncontroleerbare regelafstand van een halve letter boven ( over ) en onder ( under ) een tekstvak maakt uitlijnen lastig. De volgende voorbeelden laten zien wanneer een regelafstand van een halve letterafstand uitlijnen kan bemoeilijken en hoe het bijsnijden van de zijkanten van een tekstvak een betere uitlijning kan opleveren.
Hier wordt een afbeelding naast tekst geplaatst. De afbeelding groeit mee met de hoogte die de tekst nodig heeft. Zonder text-box is de afbeelding altijd iets hoger. Met text-box kan de afbeelding perfect uitgelijnd worden met de tekst.

Let op: in gevallen met regelterugloop bevindt de witruimte zich boven de eerste opgemaakte tekstregel en onder de laatste opgemaakte tekstregel.
In het volgende voorbeeld ziet u hoe de functie zich logisch aanpast aan een verandering in writing-mode . Probeer de tekst te wijzigen en let op hoe de lay-out uitgelijnd blijft.

Ga verder met studeren
Wil je meer weten? De volgende lijst met links biedt diverse aanvullende informatie en toepassingsvoorbeelden.
- Een verzameling van alle demo's op Codepen .
- Uitstekend onderzoek en demonstraties door Jan Nicklas.
- Twee CSS-eigenschappen voor het verwijderen van witruimte uit tekstvakken op CSS Tricks.
- CSS Inline Layout op tekstranden .
- Niet te verwarren met
size-adjustofascent-override - CSS Baseline: Het goede, het slechte en het lelijke .
- Toegepast op veel HTML-elementen: CodePen .
- Safari's blogbericht .
- Waarom ik als ontwerper enthousiast ben over textbox-trim .