W3docs

CSS width-Eigenschaft

Die CSS-Eigenschaft width legt die Breite eines Elements fest. Probiere Beispiele mit jedem Wert dieser Eigenschaft aus.

Die CSS-Eigenschaft width legt die Breite des Inhaltsbereichs eines Elements fest — das innere Feld, das Text und untergeordnete Elemente enthält. Standardmäßig schließt diese Breite nicht den Rahmen, das Padding oder den Margin ein: Diese werden zusätzlich hinzugefügt, sodass die gesamte gerenderte Breite des Elements width + padding + border beträgt.

Diese Seite erklärt, was width misst, jeden Wert, den es akzeptiert (einschließlich der modernen intrinsischen Schlüsselwörter min-content, max-content und fit-content), wie Prozentwerte aufgelöst werden, und den häufigen Box-Modell-Fehler, über den die meisten Einsteiger stolpern.

Wie width mit dem Box-Modell interagiert

Wie width gemessen wird, hängt von der Eigenschaft box-sizing ab:

  • content-box (der Standard) — width dimensioniert nur den Inhalt. Padding und Border werden außerhalb hinzugefügt. Eine Box mit width: 200px; padding: 20px; border: 5px solid wird 250px breit gerendert.
  • border-boxwidth dimensioniert Inhalt, Padding und Border zusammen. Dieselben Angaben ergeben genau 200px Breite, und der Inhaltsbereich wird entsprechend kleiner.

Da border-box Elementgrößen vorhersehbar macht, setzen viele Stylesheets es global:

*,
*::before,
*::after {
  box-sizing: border-box;
}

Auf welche Elemente width angewendet wird

Die Eigenschaft width gilt für alle Elemente außer nicht-ersetzten Inline-Elementen (z. B. einem einfachen <span>), Tabellenzeilen und Zeilengruppen (d. h. <thead>, <tfoot> und <tbody>). Um einem Inline-Element eine Breite zu geben, muss zuerst display: inline-block oder display: block gesetzt werden.

Die Eigenschaft akzeptiert eine CSS-Länge (px, pt, em usw.), einen Prozentwert oder ein Schlüsselwort wie auto oder max-content.

Ein Prozentwert wird relativ zur Breite des Elternelements (dem enthaltenden Block) aufgelöst. Bei absolut positionierten Elementen wird der Prozentwert relativ zur Breite des Padding-Box des enthaltenden Blocks berechnet.

Die Eigenschaft width kann durch min-width und max-width überschrieben werden: Ein max-width-Wert, der kleiner als width ist, hat Vorrang, und ein min-width-Wert, der größer als width ist, hat ebenfalls Vorrang. Die verwandte Eigenschaft ist height.

Info

Negative Längenwerte sind nicht erlaubt.

Anfangswertauto
Gilt fürAlle Elemente außer nicht-ersetzte Inline-Elemente, Tabellenzeilen und Zeilengruppen.
VererbtNein.
AnimierbarJa. Die Breite eines Elements ist animierbar.
VersionCSS1
DOM SyntaxObject.style.width = "300px";

Syntax

Syntax der CSS width-Eigenschaft

width: auto | length | percentage | initial | inherit | fit-content | min-content | max-content | stretch;

Beispiel der width-Eigenschaft mit "%":

Beispiel der CSS width-Eigenschaft mit %-Wert

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      div {
        width: 50%;
        background-color: #1c87c9;
      }
    </style>
  </head>
  <body>
    <h2>Width property example</h2>
    <div>
      Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
    </div>
  </body>
</html>

Ergebnis

CSS width-Eigenschaft

Im gegebenen Beispiel beträgt die Breite des div-Containers 50 % — die Hälfte der Breite seines Elternelements (hier das <body>-Element).

Im folgenden Beispiel beträgt die Breite des ersten Elements 250px und die des zweiten Elements 25em:

Beispiel der width-Eigenschaft mit "px" und "em":

Beispiel der CSS width-Eigenschaft mit px- und em-Werten

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      div.t1 {
        width: 250px;
        border: 1px solid black;
        background-color: #1c87c9;
      }
      div.t2 {
        width: 25em;
        border: 1px solid black;
        background-color: #8ebf42;
      }
    </style>
  </head>
  <body>
    <h2>Width property example</h2>
    <h3>width: 250px</h3>
    <div class="t1">
      Lorem Ipsum is dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
    </div>
    <h3>width: 25em</h3>
    <div class="t2">
      Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
    </div>
  </body>
</html>

Intrinsische Größen-Schlüsselwörter

Neben festen Längen und Prozentwerten akzeptiert width auch Schlüsselwörter, die ein Element anhand seines Inhalts statt anhand seines Containers dimensionieren:

  • max-content — die Breite, die der Inhalt bevorzugt, wenn er nie umgebrochen wird. Bei einem Absatz ist das der gesamte Text in einer Zeile.
  • min-content — die kleinste Breite ohne Überlauf, d. h. die Breite des längsten nicht trennbaren Worts.
  • fit-content — wächst mit dem Inhalt wie max-content, überschreitet aber nie den verfügbaren Platz und bricht um, sobald der Containerrand erreicht wird. Ideal für Elemente mit "Shrink-to-Fit"-Verhalten wie Buttons oder Badges.
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      div {
        border: 2px solid #1c87c9;
        margin-bottom: 10px;
        padding: 5px;
      }
      .min { width: min-content; }
      .max { width: max-content; }
      .fit { width: fit-content; }
    </style>
  </head>
  <body>
    <div class="min">width: min-content</div>
    <div class="max">width: max-content</div>
    <div class="fit">width: fit-content</div>
  </body>
</html>

Die min-content-Box ist so schmal wie das längste Wort, die max-content-Box dehnt sich aus, um die gesamte Zeile aufzunehmen, und die fit-content-Box liegt je nach verfügbarem Platz zwischen den beiden.

Werte

WertBeschreibungAusprobieren
autoDer Browser berechnet eine Breite für das angegebene Element. Dies ist der Standardwert.Ausprobieren »
lengthDefiniert die Breite in px, pt, cm usw.Ausprobieren »
percentageDefiniert die Breite in Prozent des enthaltenden Elements.Ausprobieren »
initialSetzt die Eigenschaft auf ihren Standardwert.Ausprobieren »
inheritErbt die Eigenschaft vom Elternelement.
fit-contentBerechnet die Breite anhand der intrinsischen Inhaltsgröße.Ausprobieren »
min-contentBerechnet die Breite anhand der minimalen Inhaltsgröße.Ausprobieren »
max-contentBerechnet die Breite anhand der maximalen Inhaltsgröße.Ausprobieren »
stretchDehnt das Element aus, um den Container auszufüllen.Ausprobieren »

Häufige Fallstricke

  • Ein prozentualer Breitenwert ohne definierte Elternbreite. Wenn die Breite des Elternelements auto ist, wird ein Prozentwert möglicherweise nicht wie erwartet aufgelöst. Gib dem enthaltenden Block eine explizite Breite (oder verlasse dich auf die natürliche volle Breite eines Block-Elements).
  • Padding und Border sprengen das Layout. Im Standard-content-box-Modell lässt das Hinzufügen von Padding zu einem 100% breiten Element dieses das Elternelement überfluten. Wechsle zu box-sizing: border-box, um die Gesamtbreite bei 100% zu halten.
  • width bei Inline-Elementen wird ignoriert. Setze zuerst display: inline-block oder block.
  • Responsivität. Bevorzuge max-width gegenüber einem festen width-Wert für fluid Layouts: max-width: 600px lässt eine Box auf kleinen Bildschirmen schrumpfen, begrenzt sie aber auf großen.

Übung

Übung
Was ist die Funktion der 'width'-Eigenschaft in CSS?
Was ist die Funktion der 'width'-Eigenschaft in CSS?
Was this page helpful?