Die Wahrheit über !important

Artikel vom 8. November 2016. ISSN 1614-3124, #51. Schwerpunkt: (RSS-Feed für alle Themen).

Wenn Sie sich speziell mit der Optimierung von CSS beschäftigen, ich habe einige Grundlagen in einem kleinen Buch zusammengetragen: CSS Optimization Basics.

Manchmal wache ich nachts auf, vor Schmerzen gekrümmt, Tränen in den Augen. Die heilige Allianz gegen !important verfolgt mich. Ich sehe ihre zahllosen Kreuzritter auf unschuldige Webentwickler zustürmen, mit unerbittlicher Härte, ihre Hörner blasend niemals niemals niemals !important zu verwenden, niemals überhaupt; !important, Hexen-Code. (So dramatisch beginnt die englische Version dieses Artikels.)

Ich wache aus einem Grund auf: Nonsens.

Nonsens, weil !important ein wichtiger (eben important) Teil der Kaskade ist. !important ist so wichtig, dass es sogar einen eigenen Abschnitt in der Spec hat (hier in der Übersetzung von <edition W3.de>):

CSS versucht, einen Leistungsausgleich zwischen Stylesheets des Autors und des Benutzers herzustellen. Standardmäßig überschreiben die Regeln im Stylesheet eines Autors diejenigen aus dem Stylesheet eines Benutzers […].

Des Ausgleichs halber erhält jedoch eine »!important«-Deklaration (die Schlüsselwörter »!« und »important« folgen der Deklaration) Priorität gegenüber einer normalen Deklaration. Sowohl Autor- als auch Benutzer-Stylesheets können »!important«-Deklarationen enthalten, und die »!important«-Regeln des Benutzers überschreiben die »!important«-Regeln des Autors. Dieses Funktionsmerkmal von CSS verbessert den Zugriff auf Dokumente, indem es Benutzern mit speziellen Anforderungen (große Schriften, Farbkombinationen und so weiter) die Kontrolle über die Darstellung erteilt.

!important, legitimer Bestandteil von CSS, ist ein Werkzeug. Es ist zuerst einmal ein kritisches Werkzeug für Nutzer, für die es garantiert, dass ihre Regeln angewandt werden (so sie denn welche vorgeben). Und es ist ein wichtiges Werkzeug für Autoren, uns Entwickler, nicht nur zum Testen (es ist keine Schande, zuzugeben, dass 99% hier !important bereits für Debugging-Zwecke verwendet haben), sondern auch dafür, manchmal gar unglaublich elegante Lösungen hervorzuzaubern.

!important zu ächten, wie es meine eigenen Augen schon zu oft gesehen haben, entspricht dogmatischer Übersimplifizierung. !important zu ächten bedeutet eben nicht, dass man versteht, was es macht und wozu es da ist, sondern es ähnelt unendlicher Bequemlichkeit.

Ich selbst werde die Feinheiten von !important nun nicht erläutern. Nicht hier. Mein geschätzter Harry, beispielsweise, leistet darin bereits gute Arbeit, und er dokumentiert einige der Probleme und was wir statt dessen tun können. Ich persönlich kaufe mir immer gerne Zeit damit, zu empfehlen, !important nicht zu freizügig und jedes Mal einzusetzen. Aber das eigentliche Anliegen dieses Beitrags ist es, festzuhalten, dass:

!important ist wichtig. !important ist legitim. Es ist nützlich. Es verschwindet nicht. Anstatt »kein !important« zu schreien, sollten wir uns vielmehr entspannen und es verantwortungsbewusst benutzen – und lehren zu benutzen.

War dies nützlich oder interessant? Teile (toote) diesen Beitrag, oder lad mich vielleicht auf einen Kaffee ein. Danke!

Über mich

Jens Oliver Meiert, am 30. September 2021.

Ich bin Jens, und ich bin ein Engineering Lead und Autor. Ich habe als technischer Leiter für Firmen wie Google und als Engineering Manager für Firmen wie Miro gearbeitet, bin W3C und WHATWG verbunden und schreibe und prüfe Fachbücher für O’Reilly und Frontend Dogma.

Mit meinem aktuellen Umzug nach Spanien bin ich offen für eine neue Remote-Führungsposition im Frontend-Bereich. Beachte und empfehle gerne meinen Lebenslauf oder mein LinkedIn-Profil.

Ich experimentiere gerne, nicht nur in der Webentwicklung, sondern auch in anderen Bereichen wie der Philosophie. Hier auf meiert.com teile ich einige meiner Ansichten und Erfahrungen.