Kurzschreibweise-Eigenschaften
Kurzschreibweise-Eigenschaften sind CSS-Eigenschaften, die es Ihnen ermöglichen, die Werte mehrerer anderer CSS-Eigenschaften in einer Deklaration festzulegen. Mit einer Kurzschreibweise-Eigenschaft können Sie prägnantere (und oft lesbarere) Stylesheets schreiben, was Zeit und Energie spart.
Die CSS-Spezifikation definiert Kurzschreibweise-Eigenschaften, um häufig verwendete Eigenschaften zu gruppieren, die auf dasselbe Thema wirken. Zum Beispiel ist die CSS-Eigenschaft background eine Kurzschreibweise-Eigenschaft, die die Werte von background-color, background-image, background-repeat und background-position definieren kann.
Schwierige Randfälle
Es gibt ein paar Randfälle, die Sie bei der Verwendung von Kurzschreibweise-Eigenschaften beachten sollten.
Weglassen von Eigenschaften
Ein nicht spezifizierter Wert wird auf einen Standardwert gesetzt, der durch die Kurzschreibweise definiert ist, und der vom Ausgangswert der Eigenschaft abweichen kann.
Das bedeutet, dass er zuvor gesetzte 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 von background-color, der transparent ist.
Nur die Werte einzelner Eigenschaften können geerbt werden. Da fehlende Werte durch ihren Ausgangswert ersetzt werden, ist es unmöglich, das Erben einzelner Eigenschaften durch Weglassen zu ermöglichen. Das Schlüsselwort inherit kann auf eine Eigenschaft angewendet werden, aber nur als Ganzes, nicht als Schlüsselwort für einen oder einen anderen Wert. Das bedeutet, dass die einzige Möglichkeit, einen bestimmten Wert erben zu lassen, darin besteht, die ausgeschriebene Eigenschaft mit dem Schlüsselwort inherit zu verwenden.
Reihenfolge der Eigenschaften
Kurzschreibweise-Eigenschaften versuchen, keine bestimmte Reihenfolge für die Werte der Eigenschaften, die sie ersetzen, zu erzwingen. Dies funktioniert gut, wenn diese Eigenschaften Werte unterschiedlicher Typen verwenden, da die Reihenfolge keine Bedeutung hat, aber das funktioniert nicht so einfach, wenn mehrere Eigenschaften identische Werte haben können.
Zwei wichtige Fälle sind hier:
- Eigenschaften, die mit den Seiten der Box zu tun haben, wie
border-style,marginoderpadding - Eigenschaften, die mit den Ecken der Box zu tun haben, wie
border-radius
Seiten der Box
Kurzschreibweisen, die Eigenschaften im Zusammenhang mit den Seiten der Box bearbeiten, wie border-style, margin oder padding, verwenden immer eine konsistente 1-zu-4-Wert-Syntax, die diese Seiten repräsentiert:
-
1-Wert-Syntax:
border-width: 1em— Ein einzelner Wert repräsentiert alle Seiten:
-
2-Wert-Syntax:
border-width: 1em 2em— Der erste Wert repräsentiert die oberen und unteren Kanten, und der zweite Wert repräsentiert die linken und rechten Kanten:
-
3-Wert-Syntax:
border-width: 1em 2em 3em— Der erste Wert repräsentiert die obere Kante, der zweite Wert repräsentiert die linken und rechten Kanten, und der dritte Wert repräsentiert die untere Kante:
-
4-Wert-Syntax:
border-width: 1em 2em 3em 4em— Die vier Werte repräsentieren die oberen, rechten, unteren und linken Seiten in genau dieser Reihenfolge; also im Uhrzeigersinn beginnend an der Oberseite:
Der Anfangsbuchstabe von Oben-Rechts-Unten-Links entspricht der Reihenfolge der Konsonanten des Wortes trouble: TRBL. Sie können es sich auch als die Reihenfolge merken, in der die Zeiger einer Uhr rotieren: 1embeginnt an der 12-Uhr-Position, dann2eman der 3-Uhr-Position, dann3eman der 6-Uhr-Position und4eman der 9-Uhr-Position.
Ecken der Box
Ähnlich verwenden Kurzschreibweisen, die Eigenschaften im Zusammenhang mit den Ecken der Box bearbeiten, wie border-radius, immer eine konsistente 1-zu-4-Wert-Syntax, die diese Ecken repräsentiert:
-
1-Wert-Syntax:
border-radius: 1em— Ein einzelner Wert repräsentiert alle Ecken:
-
2-Wert-Syntax:
border-radius: 1em 2em— Der erste Wert repräsentiert die oberen linken und unteren rechten Ecken, und der zweite Wert repräsentiert die oberen rechten und unteren linken Ecken:
-
3-Wert-Syntax:
border-radius: 1em 2em 3em— Der erste Wert repräsentiert die obere linke Ecke, der zweite Wert repräsentiert die oberen rechten und unteren linken Ecken, und der dritte Wert repräsentiert die untere rechte Ecke:
-
4-Wert-Syntax:
border-radius: 1em 2em 3em 4em— Die vier Werte repräsentieren die oberen linken, oberen rechten, unteren rechten und unteren linken Ecken in der Reihenfolge, immer in dieser Reihenfolge; im Uhrzeigersinn beginnend an der oberen linken Ecke:
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 zu einer einzigen gekürzt werden:
background: black url("images/bg.gif") no-repeat left top;
(Die Kurzschreibweise ist eigentlich äquivalent zu den obigen ausgeschriebenen 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 wie folgt verkürzt werden:
font:
italic bold 0.8em/1.2 "Arial",
sans-serif;
Diese Kurzschreibweise ist tatsächlich äquivalent zu den oben ausgeschriebenen Deklarationen plus font-variant: normal, font-size-adjust: none, und font-stretch: normal.
Rahmen-Eigenschaften
Bei Rahmen können Breite, Farbe und Stil in einer Deklaration vereinfacht werden. Betrachten Sie zum Beispiel das folgende CSS:
border-width: 1px;
border-style: solid;
border-color: black;
Es kann wie folgt vereinfacht werden:
border: 1px solid black;
Rand- und Auffüllungseigenschaften
Kurzschreibweise-Versionen von Rand- und Auffüllungswerten funktionieren ähnlich; die Rand-Eigenschaft erlaubt es, Kurzschreibwerte mithilfe von einem, zwei, drei oder vier Werten zu spezifizieren. Betrachten Sie die folgenden CSS-Deklarationen:
margin-top: 10px;
margin-right: 5px;
margin-bottom: 10px;
margin-left: 5px;
Sie sind dieselben wie die folgende Deklaration unter Verwendung der Vier-Wert-Kurzschreibweise. Beachten Sie, dass die Werte im Uhrzeigersinn geordnet sind, beginnend oben: oben, rechts, unten und dann links (TRBL, die Konsonanten in "trouble").
margin: 10px 5px 10px 5px;
Rand-Kurzschreibregeln für Ein-, Zwei-, Drei- und Vier-Wert-Deklarationen sind:
- Wenn ein Wert spezifiziert ist, gilt derselbe Rand für alle vier Seiten.
- Wenn zwei Werte spezifiziert sind, gilt der erste Rand für oben und unten, der zweite für links und rechts.
- Wenn drei Werte spezifiziert sind, gilt der erste Rand für oben, der zweite für links und rechts, der dritte für unten.
- Wenn vier Werte spezifiziert sind, gelten die Ränder in folgender Reihenfolge: oben, rechts, unten und links (im Uhrzeigersinn).
Positions-Eigenschaften
Bei der Position können die Kurzschreibversionen von oben, rechts, unten und links in einer Deklaration vereinfacht werden. Betrachten Sie zum Beispiel das folgende CSS:
top: 0;
right: 20px;
bottom: 0;
left: 20px;
Es kann wie folgt vereinfacht werden:
inset: 0 20px 0 20px;
Genau wie bei Rändern und Auffüllungen sind die Einfügungswerte im Uhrzeigersinn geordnet - oben, rechts, unten, dann links (TRBL).
Die universelle Kurzschreibweise-Eigenschaft
CSS bietet eine universelle Kurzschreibweise-Eigenschaft, all, die ihren Wert auf jede Eigenschaft im Dokument anwendet. Ihr Zweck besteht darin, das Vererbungsmodell der Eigenschaften zu ändern.
Siehe Konflikte behandeln oder Einführung in den CSS-Cascade für weitere Informationen darüber, wie Vererbung in CSS funktioniert.
Kurzschreibweise-Eigenschaften
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
Siehe auch
- CSS-Kaskadierung und Vererbung Modul
- Einführung in CSS-Syntax: Deklarationen, Regelmengen und Anweisungen
- At-Regeln
- Spezifität
- Vererbung
- Einführung in die CSS-Kaskade
- Lernen: Konflikte behandeln
- Lernen: Kaskadenebenen
- Visuelle Formatierungsmodelle
- Werte: initial, berechnet, verwendet, und tatsächlicher Wert
- Wertdefinition Syntax