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 diesen Beitrag, werde Nanosponsor oder unterstütze meine Arbeit, indem du mit meinen E-Books lernst.

Über mich

Jens Oliver Meiert, am 9. November 2024.

Ich bin Jens (lang: Jens Oliver Meiert), und ich bin ein Frontend-Engineering-Leiter und technischer Autor/Verleger. Ich habe als technischer Leiter für Firmen wie Google und als Engineering Manager für Firmen wie Miro gearbeitet, bin Mitwirkender an verschiedenen Webstandards und schreibe und prüfe Fachbücher für O’Reilly und Frontend Dogma.

Ich experimentiere gerne, nicht nur in der Webentwicklung (und im Engineering Management), sondern auch in anderen Bereichen wie der Philosophie. Hier auf meiert.com teile ich einige meiner Erfahrungen und Ansichten. (Bitte sei kritisch, interpretiere wohlwollend und gib Feedback.)