Kurzschreibweisen
Kurzschreibweisen sind CSS-Eigenschaften, mit denen Sie die Werte mehrerer anderer CSS-Eigenschaften gleichzeitig festlegen können. Durch die Verwendung einer Kurzschreibweise können Sie prägnantere (und oft übersichtlichere) Stylesheets schreiben, was Zeit und Energie spart.
Die CSS-Spezifikation definiert Kurzschreibweisen, um die Definition gängiger Eigenschaften, die auf das gleiche Thema angewandt werden, zu gruppieren. Beispielsweise ist die CSS-background-Eigenschaft eine Kurzschreibweise, mit der die Werte von background-color, background-image, background-repeat und background-position definiert werden können. In ähnlicher Weise können die am häufigsten verwendeten schriftbezogenen Eigenschaften mit der Kurzschreibweise font definiert werden und die verschiedenen Ränder um eine Box können mit der Kurzschreibweise margin definiert werden.
Schwierige Grenzfälle
Es gibt einige Grenzfälle, die bei der Verwendung von Kurzschreibweisen zu beachten sind.
Auslassen von Eigenschaften
Ein Wert, der nicht angegeben wird, wird auf seinen Anfangswert gesetzt. Das bedeutet, dass er zuvor festgelegte Werte überschreibt. Zum Beispiel:
p {
background-color: red;
background: url("images/bg.gif") no-repeat left top;
}
Dies setzt die Hintergrundfarbe nicht auf red, sondern auf den Standardwert für background-color, der transparent ist.
Nur die Werte einzelner Eigenschaften können vererben. Da fehlende Werte durch ihren Anfangswert ersetzt werden, ist es unmöglich, die Vererbung einzelner Eigenschaften durch deren Auslassung zu erlauben. Das Schlüsselwort inherit kann auf eine Eigenschaft angewendet werden, jedoch nur als Ganzes und nicht als Schlüsselwort für einen oder andere Werte. Das bedeutet, dass der einzige Weg, um einen bestimmten Wert erben zu lassen, darin besteht, die Langschreibweise der Eigenschaft mit dem Schlüsselwort inherit zu verwenden.
Anordnung der Eigenschaften
Kurzschreibweisen versuchen, keine spezifische Reihenfolge für die Werte der Eigenschaften, die sie ersetzen, vorzuschreiben. Dies funktioniert gut, wenn diese Eigenschaften Werte unterschiedlicher Typen verwenden, da die Reihenfolge keine Rolle spielt, aber es funktioniert nicht so einfach, wenn mehrere Eigenschaften identische Werte haben können.
Zwei wichtige Fälle hier sind:
- Eigenschaften, die sich auf die Kanten einer Box beziehen, wie
border-style,marginoderpadding - Eigenschaften, die sich auf die Ecken einer Box beziehen, wie
border-radius
Kanten einer Box
Kurzschreibweisen, die sich mit Eigenschaften zu den Kanten einer Box beschäftigen, wie border-style, margin oder padding, verwenden immer eine konsistente 1-bis-4-Wert-Syntax, die diese Kanten repräsentiert:
-
1-Wert-Syntax:
border-width: 1em— Der Einzelwert steht für alle Kanten:
-
2-Wert-Syntax:
border-width: 1em 2em— Der erste Wert steht für die vertikalen Kanten, also oben und unten, der zweite für die horizontalen, also links und rechts:
-
3-Wert-Syntax:
border-width: 1em 2em 3em— Der erste Wert steht für die obere Kante, der zweite für die horizontalen, also links und rechts, und der dritte Wert für die untere Kante:
-
4-Wert-Syntax:
border-width: 1em 2em 3em 4em— Die vier Werte repräsentieren die obere, rechte, untere und linke Kante in dieser Reihenfolge, also im Uhrzeigersinn beginnend oben:
Die Anfangsbuchstaben von Oben-Rechts-Unten-Links entsprechen der Reihenfolge der Konsonanten des englischen Wortes trouble: TRBL. Sie können es sich auch als die Reihenfolge merken, in der die Zeiger einer Uhr rotieren würden: 1embeginnt in der 12-Uhr-Position, dann2emin der 3-Uhr-Position, dann3emin der 6-Uhr-Position und4emin der 9-Uhr-Position.
Ecken einer Box
Ähnlich verwenden Kurzschreibweisen, die sich mit Eigenschaften zu den Ecken einer Box beschäftigen, wie border-radius, immer eine konsistente 1-bis-4-Wert-Syntax, die diese Ecken repräsentiert:
-
1-Wert-Syntax:
border-radius: 1em— Der Einzelwert steht für alle Ecken:
-
2-Wert-Syntax:
border-radius: 1em 2em— Der erste Wert steht für die obere linke und untere rechte Ecke, der zweite für die obere rechte und untere linke:
-
3-Wert-Syntax:
border-radius: 1em 2em 3em— Der erste Wert steht für die obere linke Ecke, der zweite für die obere rechte und untere linke, und der dritte Wert für die untere rechte Ecke:
-
4-Wert-Syntax:
border-radius: 1em 2em 3em 4em— Die vier Werte repräsentieren die obere linke, obere rechte, untere rechte und untere linke Ecke in dieser Reihenfolge, also im Uhrzeigersinn beginnend oben links:
Hintergrund-Eigenschaften
Betrachten Sie einen Hintergrund mit den folgenden Eigenschaften
background-color: black;
background-image: url("images/bg.gif");
background-repeat: no-repeat;
background-position: left top;
Diese vier Deklarationen können auf nur eine verkürzt werden:
background: black url("images/bg.gif") no-repeat left top;
(Die Kurzschreibform ist tatsächlich gleichbedeutend mit den oben genannten Langform-Eigenschaften plus background-attachment: scroll und in CSS3 einige zusätzliche Eigenschaften.)
Siehe background für detailliertere Informationen, einschließlich CSS3-Eigenschaften.
Schrift-Eigenschaften
Betrachten Sie die folgenden Deklarationen:
font-style: italic;
font-weight: bold;
font-size: 0.8em;
line-height: 1.2;
font-family: "Arial", sans-serif;
Diese 5 Anweisungen können zu folgendem verkürzt werden:
font:
italic bold 0.8em/1.2 "Arial",
sans-serif;
Diese Kurzschreibweise entspricht tatsächlich den oben genannten Langform-Eigenschaften plus font-variant: normal, font-size-adjust: none und font-stretch: normal.
Rahmen-Eigenschaften
Bei Rahmen können die Breite, Farbe und der Stil in eine Deklaration vereinfacht werden. Betrachten Sie zum Beispiel das folgende CSS:
border-width: 1px;
border-style: solid;
border-color: black;
Es kann vereinfacht werden als:
border: 1px solid black;
Margin- und Padding-Eigenschaften
Kurzschreibweisen von Margin- und Padding-Werten funktionieren ähnlich; die Margin-Eigenschaft erlaubt es, Kurzschreibwerte mithilfe von einem, zwei, drei oder vier Werten anzugeben. Betrachten Sie die folgenden CSS-Deklarationen:
margin-top: 10px;
margin-right: 5px;
margin-bottom: 10px;
margin-left: 5px;
Sie sind dasselbe wie die folgende Deklaration, die die vierwertige Kurzschreibweise verwendet. Beachten Sie, dass die Werte in Uhrzeigersinn-Reihenfolge angegeben werden, beginnend am oberen Rand: oben, rechts, unten, dann links (TRBL, die Konsonanten von "trouble").
margin: 10px 5px 10px 5px;
Die Regeln für die Margin-Kurzschreibweise bei der Angabe von einem, zwei, drei und vier Werten sind:
- Wenn ein Wert angegeben ist, gilt dieser für alle vier Seiten.
- Wenn zwei Werte angegeben sind, gilt der erste Margin für oben und unten, der zweite für links und rechts.
- Wenn drei Werte angegeben sind, gilt der erste Margin für oben, der zweite für links und rechts, der dritte für unten.
- Wenn vier Werte angegeben sind, gelten die Margins für oben, rechts, unten und links in dieser Reihenfolge (im Uhrzeigersinn).
Positions-Eigenschaften
Bei der Position können die Kurzschreibversionen von oben, rechts, unten und links in eine Deklaration vereinfacht werden. Betrachten Sie zum Beispiel das folgende CSS:
top: 0;
right: 20px;
bottom: 0;
left: 20px;
Es kann vereinfacht werden als:
inset: 0 20px 0 20px;
Genau wie bei Margins und Paddings werden die Einsatzzahlen im Uhrzeigersinn angeordnet - oben, rechts, unten, dann links (TRBL).
Die universelle Kurzschreibweise
CSS bietet eine universelle Kurzschreibweise, all, die ihren Wert auf jede Eigenschaft im Dokument anwendet. Ihr Zweck ist es, das Vererbungsmodell der Eigenschaften zu ändern.
Siehe Umgang mit Konflikten oder Einführung in die CSS-Kaskade für weitere Informationen darüber, wie Vererbung in CSS funktioniert.
Kurzschreibweisen
allanimationanimation-rangebackgroundborderborder-blockborder-block-endborder-block-startborder-bottomborder-colorborder-imageborder-inlineborder-inline-endborder-inline-startborder-leftborder-radiusborder-rightborder-styleborder-topborder-widthcolumn-rulecolumnscontain-intrinsic-sizecontainerflexflex-flowfontfont-synthesisfont-variantgapgridgrid-areagrid-columngrid-rowgrid-templateinsetinset-blockinset-inlinelist-stylemarginmargin-blockmargin-inlinemaskmask-borderoffsetoutlineoverflowoverscroll-behaviorpaddingpadding-blockpadding-inlineplace-contentplace-itemsplace-selfposition-tryscroll-marginscroll-margin-blockscroll-margin-inlinescroll-paddingscroll-padding-blockscroll-padding-inlinescroll-timelinetext-boxtext-decorationtext-emphasistext-wraptransitionview-timeline-webkit-text-stroke-webkit-border-before-webkit-mask-box-image