Effizient formatieren

Teil 6: CSS-Selektoren: Der Schlüssel zu funktionalem Webdesign

1: Alle Deklarationen zu einem Element

Im ersten Schritt werden alle Deklarationen zu einem Element, zum Beispiel einer h1-Überschrift, aus allen bekannten Stylesheets zusammengetragen: dem Browser-Style-sheet, gegebenenfalls einem Benutzer- Stylesheet und den Stylesheets der Webseite. Im Browser-Stylesheet finden wir zum Beispiel Folgendes vor:

h2 { font-size: 1.5em; margin: .83em
0; color: black; }

Das Benutzer-Style Sheet könnte folgendermaßen aussehen:

h2 { color: brown !important; }

Und schließlich könnte ein Stylesheet einer Webseite wie folgt aufgebaut sein:

h2 { color: green; font-size: 1.2em; }
h2#main { color: red; }
h2.navigation { color: blue;}

Diese drei Stylesheets widersprechen sich in Bezug auf die Farbe und die Schriftgröße einiger h2-Elemente.

2: Sortieren nach Ursprung und Gewichtung

Die gefundenen CSS-Regeln werden nun nach Ursprung und Gewichtung sortiert. Für gewöhnliche Deklarationen gilt, dass Stylesheets der Webseite sowohl Benutzer- als auch Browser-Stylesheets überschreiben, außer wenn das Benutzer-Stylesheet eine !important-Deklaration beinhalten sollte.

Für !important-Deklarationen gilt, dass im Konfliktfalle Benutzer-Stylesheets automatisch die Stylesheets der Webseite und Browser-Style-Sheets überschreiben.

Für <h2>-Elemente, die nicht explizit als #main oder .navigation gekennzeichnet sind, gilt in dem besprochenen Beispiel Folgendes:

font-size: 1.2em; /* Autoren-Sty
le-Sheets überschreiben jene des Browsers */
margin: .83em 0; /* nur im Browser
spezifiziert */
padding: 10px; ; /* nur vom Autor der
Webseite spezifiziert */
color: green; /* Das Stylesheet der
Webseite überschreibt das Browser-Stylesheet */

Bei einem Anwender, der eine !important-Regel für eine CSS-Eigenschaft gesetzt hat wie im Beispiel color: brown, wird diese anders gehandhabt, und zwar ergibt sich in unserem Beispiel:

color: brown; /*. Das Benutzer-Style-Sheet setzt sich durch aufgrund der !important-CSS-Regel */.

3: Sortieren der CSS-Selektoren nach Spezifität

Jedem CSS-Selektor wird eine gewisse Spezifität zugewiesen, die für den ganzen Selektor gilt und seine Gewichtung bestimmt. Ein Selektor mit einer höheren Spezifität hat immer Vorgang vor alle Selektoren mit einer geringeren Spezifität, die sich auf dasselbe Element beziehen. Die Spezifität ergibt sich (vereinfacht gesagt) aus der Berechnung von drei Werten:

CSS-Selektoren

© Archiv

Nachfahren-Selektoren zielen auf ein untergeordnetes Element, ohne direkte Abstammung vorauszusetzen.

1. die Anzahl der ids im ganzen CSS-Selektor 2. die Anzahl der ids im ganzen CSS-Selektor 3. die Anzahl der Elemente im ganzen CSS-Selektor

Das Resultat dieser Berechnungen schreibt man nun in der Form: a-b-c aus. In unserem konkreten Beispiel bedeutet es Folgendes:

h2 { font-size: 1.5em; margin: .83em
0; color: black }
0-0-1 > Spezifität = 1
h2 { color: brown !important; }
0-0-1 > Spezifität = 1
h2 { color: green; font-size: 1.2em;
padding: 10px; }
0-0-1 > Spezifität = 1
h2#main { color: red; }
1-0-1 > Spezifität = 101
h2.navigation { color: blue;}
0-1-1 > Spezifität = 11

Mehr zum Thema

HTML5: Quick Reference Guide
Ratgeber: "HTML5"

Die wichtigsten Tags auf einen Blick: In unserem praktischen Arbeitsblatt finden Sie einen wertvollen Begleiter für die Umstellung Ihrer Webprojekte…
internet, webdesign, google, content, ranking, seo, suchmaschine
Ratgeber: Urheberrecht

Einzigartige Inhalte bieten Lesern Mehrwert und sind ein wichtiges Qualitätsmerkmal. Ärgerlich, wenn sich jemand durch Kopieren an fremden…
Die besten HTML5-Tipps
Neue Tipps & Tricks für blitz.io

Wer die Leistung einer Applikation ermitteln möchte, braucht keine Skripte zu schreiben, sondern kann einen der zahlreichen Online-Dienste…
image.jpg
Ratgeber: Webentwicklung

Die clientseitige Javascript-Entwicklung bietet fast keine Entwicklungsumgebungen und auch keine vernünftigen Werkzeuge zur Fehlersuche. Eine der…
internet, webdesign, meteor, webapplikationen
Ratgeber

Mit Meteor sollen Entwickler in kurzer Zeit Umgebungen für Webapplikationen erstellen können, ohne sich um lästige Details kümmern zu müssen. Wir…