The StyleWorksCSS { Referenz · Labor · Übungen }
  1. Startseite
  2. Referenz
  3. Universal-Selektor

CSS 2.1 · Selektor

Selektor Universal-Selektor

Vollreferenz zu Universal-Selektor aus CSS 1 und CSS 2.1 mit Syntax, Bedeutung, Beispiel und Browserunterstützung.

Erstveröffentlichung Lesezeit 4 min
stylesheet.css · Universal-Selektor
* {
  outline: 2px solid #7A2FB0;
}

Überschrift

Erster Absatz direkt nach der Überschrift, mit einem Link und einem Zitat.

Zweiter Absatz, Klasse extra.

  • Erster Listenpunkt
  • Zweiter Listenpunkt mit Link
  • Dritter Listenpunkt

Dritter Absatz, ohne Klasse.

Selektor*
Treffer
Spezifität

Syntax

Die notierten Deklarationen werden jedem Element im Dokumentstammbaum zugeordnet.

* { Deklarationen }

Bedeutung

Der Universalselektor ist ein Ersatzselektor, der für jedes einzelne Element eines Dokuments stehen kann. Wo er in Verbindung mit anderen Selektoren verwendet wird, kann er auch weggelassen werden. Der Universalselektor ist dann am nützlichsten, wenn man unterschiedlichen Elementen, z. B. p und dd und li, dieselben Eigenschaften zuordnen will.

Beispiele

Das folgende Beispiel zeigt die Verwendung eines Universalselektors in Verbindung mit einem Klassenselektor. Die beiden Schreibweisen sind gleichwertig:

*.wichtig { font-weight: bold; color: red; }
.wichtig { font-weight: bold; color: red; }

Im nächsten Beispiel wird ein Universalselektor mit einem Attributselektor kombiniert. Die beiden Schreibweisen sind gleichwertig:

*[LANG=de] { background-color: #fed; }
[LANG=de] { background-color: #fed; }

Zum Schluß soll noch ein Universalselektor mit einem ID-Selektor kombiniert werden. Auch hier sind beide Schreibweisen gleichwertig:

*#main { margin: 1em; border: 1px dotted; }
#main { margin: 1em; border: 1px dotted; }

Browserunterstützung

 
Der Universalselektor wird von allen modernen Browsern erkannt.

Eric Meyer's CSS2 Test Suite zeigt am praktischen Beispiel, wie die Browser mit dieser Eigenschaft umgehen.

Keine Eigenschaft und kein Selektor stehen in einem Stylesheet für sich allein. In der Praxis kann das Zusammenspiel zwischen verschiedenen Elementen und Selektoren einen nicht zu unterschätzenden Einfluss auf die Fähigkeiten der Browser haben. Bugs treten oft erst durch das Zusammenwirken mehrerer Eigenschaften an unterschiedlichen Elementen auf.

Ein Selektor ohne Gewicht

Der Universalselektor trägt zur Spezifizität nichts bei. Sein Tupel ist 0,0,0,0, und das gilt auch dort, wo er in einer längeren Kette steht: * p wiegt genau so viel wie p allein.

Damit ist er der einzige Selektor, der eine Regel ausweiten kann, ohne sie schwerer zu machen. Wer div > * schreibt, spricht alle Kinder an und bleibt beim Gewicht eines einzelnen Elementnamens. Umgekehrt heißt es, dass eine Regel mit Universalselektor von jeder anderen Regel überstimmt wird, die irgendeinen benannten Bestandteil mitbringt.

Für die Kaskade ist das die Rolle, die er auch praktisch spielt: eine Grundeinstellung ganz unten, über die alles andere geschrieben wird. Eine Regel, die sich durchsetzen soll, ist an dieser Stelle falsch aufgehoben.

Die große Anwendung und ihr Preis

Die bekannteste Verwendung ist das flächige Zurücksetzen der Voreinstellungen des Browsers, meist für Außen- und Innenabstände. Der Reiz liegt darin, dass keine Liste von Elementnamen gepflegt werden muss und auch Elemente erfasst werden, an die niemand gedacht hat.

Der Preis ist dieselbe Unterschiedslosigkeit. Die Regel trifft auch Formularelemente, deren Abstände vom Betriebssystem kommen, und Elemente, deren Voreinstellung ihre Bedeutung trägt. Was danach fehlt, muss einzeln zurückgeholt werden, und am Ende steht oft mehr Stylesheet als vorher.

Unbestritten sinnvoll ist dagegen die Anwendung, die sich später durchgesetzt hat: eine einzige Eigenschaft flächendeckend zu setzen, deren Voreinstellung sich als unpraktisch erwiesen hat, und dabei die erzeugten Inhalte einzuschließen. Hier ist die Unterschiedslosigkeit genau das Gewünschte.

Der Selektor, den man nicht sieht

In einem zusammengesetzten Selektor darf der Universalselektor entfallen. Die Beispiele auf dieser Seite zeigen das dreimal: vor einer Klasse, vor einem Attribut und vor einer Kennung bedeutet er nichts, was nicht auch ohne ihn gälte. Ausgeschrieben wird er dort deshalb selten.

Nötig bleibt er, wo sonst nichts stünde. Nach einem Kombinator wie in div > * braucht es ein Zeichen für den Platz, den der Selektor einnimmt. Auch in Konstruktionen, die einen Selektor als Argument nehmen, kann er als ausdrückliches Alles nützlich sein.

Zur Geschwindigkeit gab es lange die Sorge, ein Universalselektor am Ende einer Kette zwinge das Anwenderprogramm, jedes Element zu prüfen. Selektoren werden von rechts nach links ausgewertet, und diese Sorge war deshalb nicht unbegründet. Bei den heutigen Darstellungsmaschinen ist sie nachrangig geworden; Entscheidungen über Selektoren fallen aus Gründen der Lesbarkeit und der Kaskade, nicht aus Gründen der Geschwindigkeit.

Eine Eigenheit betrifft die Vererbung. Der Universalselektor setzt einen Wert an jedem Element unmittelbar, und das ist nicht dasselbe, wie ihn einmal am Wurzelelement zu setzen und vererben zu lassen. Bei einer vererbbaren Eigenschaft macht das einen Unterschied, sobald ein Element den Wert von seinem Elternelement übernehmen soll: die flächige Regel steht dazwischen und überschreibt ihn auf jeder Ebene neu.

Besonderheiten im Medientyp handheld

Dieser Selektor ist Teil des Standards CSS Mobile Profile 1.0 und unterliegt damit auch in Mobilgeräten allen relevanten Regeln aus CSS 2.1. Es sind keine Einschränkungen bei der Umsetzung des Universalselektors durch die Mobilgeräte bekannt.

Verwendete Standards

Dieser CSS-Referenz liegen folgende Spezifikationen zugrunde: CSS 1, CSS 2.1 CR und CSS Mobile.