DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!
Die CSS-Eigenschaft padding definiert den innersten Bereich des Box-Modells und erzeugt einen Abstand um den Inhalt eines Elements herum, innerhalb aller definierten Ränder und/oder Rahmen.
Padding-Werte werden mit Längenangaben oder Prozentwerten festgelegt und können keine negativen Werte annehmen. Der anfängliche oder Standardwert für alle Padding-Eigenschaften ist 0.
Hier ist ein einfaches Beispiel
.box {
padding: 0 1.5em 0 1.5em;
}
Das obige Beispiel verwendet die padding-Kurzschreibweise, die bis zu vier Werte akzeptiert, hier gezeigt
.box {
padding: <padding-top> || <padding-right> || <padding-bottom> || <padding-left>
}</padding-left></padding-bottom></padding-right></padding-top>
Wenn weniger als vier Werte angegeben sind, werden die fehlenden Werte basierend auf den definierten Werten angenommen. Beispielsweise würden die folgenden beiden Regelwerke identische Ergebnisse liefern
.box {
padding: 0 1.5em;
}
.box {
padding: 0 1.5em 0 1.5em;
}
Wenn also nur ein Wert definiert ist, werden alle vier Padding-Eigenschaften auf denselben Wert gesetzt
.box {
padding: 20px;
}
Wenn drei Werte angegeben werden, lautet die Syntax: padding: [oben] [links-und-rechts] [unten];.
Jede der einzelnen Padding-Eigenschaften kann mit Langform deklariert werden, in diesem Fall würden Sie nur einen Wert pro Eigenschaft definieren. Das vorherige Beispiel könnte also wie folgt umgeschrieben werden
.box {
padding-top: 20px;
padding-right: 20px;
padding-bottom: 20px;
padding-left: 20px;
}
Padding und Elementbreitenberechnung
Wenn einem Element eine bestimmte Breite zugewiesen ist, wird jedes hinzugefügte Padding zur Gesamtbreite des Elements addiert. Dies ist oft ein unerwünschtes Ergebnis, da die Breite eines Elements bei jeder Anpassung des Paddings neu berechnet werden muss. (Beachten Sie, dass dies auch für die Höhe gilt, aber in den meisten Fällen ist es vorzuziehen, einem Element keine feste Höhe zu geben.)
Zum Beispiel:
.box {
padding: 20px;
width: 400px;
}
In diesem Beispiel wird dem Element .box zwar eine explizite Breite von 400 Pixeln zugewiesen, die tatsächliche gerenderte Breite des Elements auf der Seite beträgt jedoch 440 Pixel. Dies berücksichtigt nicht nur die 400 Pixel Breite, sondern auch die 20 Pixel linksseitiges Padding und die 20 Pixel rechtsseitiges Padding (definiert mit der Kurzschreibweise für Padding im vorherigen Beispiel).
Dies geschieht, um 400 Pixel an Inhaltsplatz zu erhalten, anstatt 400 Pixel Gesamtbreite des Elements. Hier ist ein Pen, der dies veranschaulicht
Check out this Pen!
Dies geschieht in allen verwendeten Browsern im Standardmodus, tritt jedoch nicht in IE6 und IE7 im Quirks-Modus auf (d. h. auf Seiten, die in IE6 oder IE7 angezeigt werden, bei denen kein Doctype deklariert ist oder etwas anderes den Quirks-Modus auslöst).
Um dieses Problem zu lösen und somit die Breite unabhängig von der Menge des Paddings bei 400 Pixeln zu halten, können Sie die Eigenschaft box-sizing verwenden
.box {
padding: 20px;
width: 400px;
box-sizing: border-box;
}
Dies bewirkt, dass das Element seine Breite beibehält, während das Padding erhöht wird, wodurch der verfügbare Inhaltsbereich verringert wird. Hier ist eine Demonstration
Check out this Pen!
Verwandte Eigenschaften
Weitere Ressourcen
Browser-Unterstützung
| Chrome | Safari | Firefox | Opera | IE | Android | iOS |
|---|---|---|---|---|---|---|
| Ja | Ja | Ja | Ja | Ja | Ja | Ja |
Hallo! Das ist eine tolle Website, ich habe viel gelernt, als ich hier gelesen habe.
Ich wollte fragen, was ist mit den Padding- und Margin-Eigenschaften?
Danke, tolle Seite, tolle Inhalte!
Danke für diesen einfachen und schönen Artikel.
Im Zusammenhang mit Padding habe ich etwas erlebt, das in meinem aktuellen Projekt vorkam. Das ist das erste Mal, dass ich so etwas erlebt habe. Ich habe mein Padding auf : 5px gesetzt. Aber mein Browser (ich benutze Chrome und FF) zeigt es falsch an, oben und unten ist es viel länger als 5 Pixel. Das linke und rechte Padding scheint richtig zu sein.
Können Sie mir sagen, was bei meinem CSS falsch sein könnte? Danke.
Es scheint, dass Ihr Browser Ihre Padding-Werte zu seinen eigenen Standardwerten hinzufügt, was Ihnen mehr Padding gibt, als Sie angefordert haben :p Sie sollten
normalize.cssausprobierenVielen Dank
Ich habe viel gelernt
Danke für den schönen Artikel. Ich habe eine Frage zum Padding: Wie groß ist die Box, wenn ich den folgenden Code verwende (nur zum Testen)? Und WARUM?
Toller Artikel, ich habe die meisten Dinge über die Verwendung von CSS-Padding verstanden.
Ich habe ein sehr hilfreiches Tutorial auf YouTube gesehen: https://www.youtube.com/watch?v=Jb3f2Un5Ru8
Ich suche nach der Erklärung der CSS-Syntax, die ich in einem der Stylesheets gefunden habe. Es sieht so aus: padding-%AlignStart: 20px;
Ist %AlignStart hier eine Variable? Woher kommt sie, HTML? Ich wusste nicht, dass man Variablen so an CSS übergeben kann? Haben Sie ein Buch oder ein Tutorial im Web gesehen, das diese Syntax erklärt? Hier ist der vollständige Code.
#pthdr2container #pthdr2home {
background: url(%Image(PT_HEADERLINK_HOME_ALT)) no-repeat scroll %AlignStart center transparent;
padding-%AlignStart: 22px;
}
An einem normalen Tag der Website-Erstellung trat bei mir ein Box-Modell-Fehler auf, es scheint, dass ich keinen Kurzschreibcode eingeben kann, er zeigt einfach den Fehler an, dass der Wert ungültig ist, können Sie das beheben?
Wie kann ich das oberste h1 mit CSS erstellen, ohne negative Werte oder Margins zu verwenden?
Kann mir jemand bei diesem Problem helfen?
Vielen Dank im Voraus
Leider können Sie es nicht ohne die Verwendung von JavaScript erstellen. Entschuldigung
Hallo,
Kennen Sie die Browserunterstützung für die Kurzschreibweise?
padding: [wert] [wert] [wert]Es ist umfassend abgedeckt: https://caniuse.com/#feat=css3-boxsizing