field-sizing CSS property
Baseline
2026
Neu verfügbar
Seit June 2026 funktioniert diese Funktion auf aktuellen Geräten und in aktuellen Browserversionen. Auf älteren Geräten oder in älteren Browsern funktioniert sie möglicherweise nicht.
Die field-sizing CSS Eigenschaft ermöglicht es Ihnen, das GröÃenverhalten von Elementen zu steuern, denen eine standardmäÃig bevorzugte GröÃe zugewiesen wird, wie z.B. Formularelemente. Diese Eigenschaft ermöglicht Ihnen, das standardmäÃige GröÃenverhalten zu überschreiben, sodass Formularelemente ihre GröÃe an ihre Inhalte anpassen können.
Diese Eigenschaft wird typischerweise verwendet, um Text-<input> und <textarea> Elemente so zu gestalten, dass sie ihren Inhalt umschlieÃen können und wachsen, wenn mehr Text in das Formularelement eingegeben wird.
Syntax
/* Keyword values */
field-sizing: content;
field-sizing: fixed;
/* Global values */
field-sizing: inherit;
field-sizing: initial;
field-sizing: revert;
field-sizing: revert-layer;
field-sizing: unset;
Werte
Beschreibung
field-sizing: content überschreibt die standardmäÃig bevorzugte GröÃeneinstellung von Formularelementen. Diese Einstellung bietet eine Möglichkeit, Texteingaben so zu konfigurieren, dass sie ihren Inhalt umschlieÃen und wachsen, wenn mehr Text eingegeben wird. Sie hören auf zu wachsen, wenn sie maximale GröÃenbeschränkungen erreichen (definiert durch die GröÃe ihres beinhaltenden Elements oder festgelegt über CSS), zu diesem Zeitpunkt ist Scrollen erforderlich, um den gesamten Inhalt anzuzeigen.
Elemente, die von field-sizing: content betroffen sind
Konkret hat field-sizing mit content Auswirkungen auf folgende Elemente:
- Formularelement-Typen, die direkte Texteingaben von Nutzern akzeptieren. Dazu gehören die Typen
email,number,password,search,tel,textundurl.- Wenn keine Mindestbreite für die Steuerung festgelegt ist, wird sie nur so breit wie der Textcursor sein.
- Steuerungen mit
placeholderAttributen werden groà genug dargestellt, um den Platzhaltertext anzuzeigen. - Das
sizeAttribut verändert die standardmäÃig bevorzugte GröÃe solcher<input>Elemente. Daher hatsizekeine Wirkung auf<input>Elemente mitfield-sizing: contentgesetzt.
fileEingaben. Direkte Texteingabe ist nicht möglich; jedoch ändert sich der angezeigte Dateiname, wenn der Nutzer eine neue Datei zum Hochladen auswählt. Wennfield-sizing: contentgesetzt ist, wird die Steuerung ihre GröÃe ändern, um den Dateinamen zu umschlieÃen.<textarea>Steuerungen. Es ist erwähnenswert, dass<textarea>Elemente mitfield-sizing: contentsich ähnlich verhalten wie einzeilige Texteingaben, mit folgenden Ergänzungen:- Wenn
<textarea>Elemente aufgrund einer Breitenbeschränkung nicht wachsen können, werden sie anfangen, in der Höhe zu wachsen, um zusätzliche Zeilen von Inhalt darzustellen. Wenn dann eine Höhenbeschränkung erreicht wird, werden sie anfangen, eine Scrollleiste anzuzeigen, um den gesamten Inhalt sichtbar zu machen. - Die
rowsundcolsAttribute verändern die standardmäÃig bevorzugte GröÃe einer<textarea>. Daher habenrows/colskeine Wirkung auf<textarea>Elemente mitfield-sizing: contentgesetzt.
- Wenn
<select>Steuerungen. Diese verhalten sich etwas anders, als man es mitfield-sizing: contenterwarten könnte. Die Wirkung hängt von der Art der<select>Steuerung ab, die Sie erstellen:- Normale Dropdown-Boxen werden ihre Breite ändern, um immer den angezeigten Optionswert zu fassen, während neue Werte ausgewählt werden. (StandardmäÃig ist die GröÃe des Dropdowns so eingestellt, dass sie den längsten Optionswert anzeigen kann.)
- Listboxen (
<select>Elemente mit demmultipleodersizeAttribut) werden groà genug dargestellt, um alle Optionen anzuzeigen, ohne dass ein Scrollen erforderlich ist. (StandardmäÃig erfordert die Dropdown-Box ein Scrollen, um alle Optionswerte anzuzeigen.) - Das
sizeAttribut hat wenig Wirkung auf<select>Elemente, diefield-sizing: contentgesetzt haben. In solchen Fällen prüft der Browser, ob diesizegleich1ist, um zu bestimmen, ob die<select>Steuerung als Dropdown oder als Listbox erscheinen sollte. Es wird jedoch immer alle Optionen einer Listbox anzeigen, selbst wennsizekleiner ist als die Anzahl der Optionen.
field-sizing Interaktion mit anderen GröÃeneinstellungen
Die Flexibilität der GröÃenanpassung, die durch field-sizing: content für Formularelemente bereitgestellt wird, kann überschrieben werden, wenn Sie andere CSS-GröÃeneigenschaften verwenden. Vermeiden Sie es, eine feste width und height zu setzen, wenn Sie field-sizing: content verwenden, da diese eine feste GröÃe für die Steuerung neu durchsetzen werden. Die Verwendung von Eigenschaften wie min-width und max-width zusammen mit field-sizing: content ist jedoch sehr effektiv, da sie es der Steuerung erlauben, mit dem eingegebenen Text zu wachsen und zu schrumpfen und gleichzeitig verhindern, dass die Steuerung zu groà oder zu klein wird.
Das maxlength Attribut bewirkt, dass die Steuerung aufhört zu wachsen, wenn das maximale Zeichenlimit erreicht ist.
Formale Definition
| Anfangswert | fixed |
|---|---|
| Anwendbar auf | Elements with default preferred size |
| Vererbt | Nein |
| Berechneter Wert | wie angegeben |
| Animationstyp | diskret |
Formale Syntax
field-sizing =
fixed |
content
Beispiele
>Wachsende und schrumpfende Textfelder
Dieses Beispiel zeigt die Wirkung von field-sizing: content auf ein- und mehrzeilige Textfelder. Die Felder passen ihre GröÃe an, während Text hinzugefügt oder entfernt wird, um den Inhalt effektiv zu umschlieÃen, bis eine kleinere oder gröÃere GröÃenbegrenzung erreicht ist.
HTML
Das HTML in diesem Beispiel enthält vier Formularfelder, jedes mit einem zugehörigen <label>: drei <input> Elemente der Typen text, email und tel, und ein <textarea> Element.
<div>
<label for="name">Enter name:</label>
<input type="text" id="name" />
</div>
<div>
<label for="email">Enter email:</label>
<input type="email" id="email" placeholder="e.g. a@b.com" />
</div>
<div>
<label for="tel">Enter telephone:</label>
<input type="tel" id="tel" maxlength="15" />
</div>
<div>
<label for="comment">Enter comment:</label>
<textarea id="comment">This is a comment.</textarea>
</div>
Beachten Sie die folgenden Punkte zum HTML:
- Die ersten beiden Felder haben keine Längenbeschränkungen.
- Das dritte Feld (vom Typ
tel) hat einmaxlengthAttribut gesetzt, welches das Wachstum des Feldes stoppt, wenn das Zeichenlimit erreicht ist. - Das
<textarea>wird in der Inline-Richtung wachsen, bis die Kante dermin-widthBeschränkung (festgelegt im untenstehenden CSS-Code) erreicht ist, dann wird es anfangen, neue Zeilen in der Blockrichtung hinzuzufügen, um nachfolgende Zeichen zu enthalten. - Das
emailEingabefeld hat einen Platzhalter gesetzt. Dies führt dazu, dass das Feld groà genug dargestellt wird, um den gesamten Platzhalter anzuzeigen. Sobald das Feld fokussiert ist und der Benutzer anfängt zu tippen, ändert das Feld die GröÃe auf denmin-widthWert. DastextFeld, das keinen Platzhalter hat, wird initial beimin-widthgerendert.
CSS
Im CSS setzen wir field-sizing: content auf die drei Formularelemente, zusammen mit einer min-width und max-width, um die EingabegröÃe zu begrenzen. Es ist erwähnenswert, dass, wenn keine Mindestbreite auf den Feldern gesetzt ist, sie nur so breit wie der Textcursor gerendert würden.
Wir geben auch den <label>s ein grundlegendes Styling, damit sie ordentlich neben den Feldern sitzen.
input,
textarea {
field-sizing: content;
min-width: 50px;
max-width: 350px;
}
label {
width: 150px;
margin-right: 20px;
text-align: right;
}
Ergebnis
Versuchen Sie, Text in die untenstehenden Felder einzugeben und zu entfernen, um die Effekte von field-sizing: content zusammen mit anderen GröÃeneinstellungen zu erkunden.
Steuerung der <select> Elementdarstellung
Dieses Beispiel zeigt die Wirkung von field-sizing: content auf <select> Elemente, sowohl für Dropdown-Menü-Typen als auch für mehrzeilige Listbox-Typen.
HTML
Das HTML enthält zwei Sets von <select> Elementen: eins mit field-sizing: content angewendet und eins ohne, was Ihnen ermöglicht, den Unterschied zu sehen (auch wenn der Effekt weniger offensichtlich sein mag als bei Textfeldern). Jedes Set beinhaltet einen Dropdown-Menü-Typ und einen mehrzeiligen Listbox-Typ (mit dem multiple Attribut gesetzt).
<div class="field-sizing">
<h2>With <code>field-sizing: content</code></h2>
<select>
<option>Bananas</option>
<option>Strawberries</option>
<option selected>Apples</option>
<option>Raspberries</option>
<option>Pomegranate</option>
</select>
<select multiple>
<option>Bananas</option>
<option>Strawberries</option>
<option>Apples</option>
<option>Raspberries</option>
<option>Pomegranate</option>
</select>
</div>
<div>
<h2>Without <code>field-sizing: content</code></h2>
<select>
<option>Bananas</option>
<option>Strawberries</option>
<option selected>Apples</option>
<option>Raspberries</option>
<option>Pomegranate</option>
</select>
<select multiple>
<option>Bananas</option>
<option>Strawberries</option>
<option>Apples</option>
<option>Raspberries</option>
<option>Pomegranate</option>
</select>
</div>
Hinweis:
Es ist bewährte Praxis, ein <label> Element für jede Formsteuerung zu beinhalten, um eine sinnvolle Textbeschreibung mit jedem Feld für Barrierefreiheitszwecke zu assoziieren (siehe Verwendung aussagekräftiger Textlabels für mehr Informationen). Wir haben dies in diesem Beispiel nicht getan, da es sich rein auf Aspekte der visuellen Darstellung der Formsteuerungen konzentriert, jedoch sollten Sie sicherstellen, dass Sie Formularbeschriftungen in Produktionscode einbinden.
CSS
Im CSS ist field-sizing: content nur auf das erste Set von <select> Elementen gesetzt.
.field-sizing select {
field-sizing: content;
}
Ergebnis
Beachten Sie die folgenden Effekte von field-sizing: content:
- Das Dropdown-Menü passt sich immer der GröÃe des angezeigten Optionswertes an und ändert die GröÃe, wenn unterschiedliche Optionen ausgewählt werden. Ohne
field-sizing: contentist die GröÃe festgelegt so breit wie die längste Option. - Die Mehrfachauswahl-Listbox zeigt alle Optionen auf einmal an. Ohne
field-sizing: contentmuss der Benutzer die Box scrollen, um alle Optionen anzuzeigen.
Spezifikationen
| Spezifikation |
|---|
| CSS Form Control Styling Level 1 > # propdef-field-sizing > |