Die Wahrheit über !important
Artikel vom 8. November 2016. ISSN 1614-3124, #51. Schwerpunkt: Webentwicklung (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.
Über mich
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.)
Ähnliche Beiträge
Das könnte dich ebenfalls interessieren:
- Prinzipien der Webentwicklung: Entwickeln Sie für was ist, nicht was sein könnte
- CSS: Deklarationen einfach sortieren
- Webagenturen: Probleme und Lösungen
Die Webentwicklung gut überblicken? Probier WebGlossary.info – und The Web Development Glossary 3K. Mit Erklärungen und Definitionen zu tausenden Begriffen aus Webentwicklung, Webdesign und verwandten Feldern, aufbauend auf Wikipedia sowie MDN Web Docs. Erhältlich bei Apple Books, Kobo, Google Play Books und Leanpub.