3.28.2019

The Truth About !important · Jens Oliver Meiert

The Truth About !important · Jens Oliver Meiert

Jens Oliver Meiert





    • mrjyn @mrjyn Mar 5 -aw new layout today. has never been so clean. no screen-reader yet, but after editing, reading it for years, everyone follow the leader, crank up a skoge *except cool hipsters with glasses. is responsiveable


    • The Truth About !important

      Post from March 10, 2015 (↻ May 18, 2018), filed under .
      This and many other posts are also available as a pretty, well-behaved e-book: On Web Development.
      This was on my mind for the last eight thousand years, and I needed a quick cheeky cushion post between my latest (tech) book and upcoming closure of my one and a half years of traveling around the world. What are we waiting for.
      Sometimes I wake up at night, full of agony, tears in my eyes. The Holiest Alliance Against !important is haunting me. I see their countless crusaders gallop at innocent web developers with merciless force, incessantly blowing their deafening horns to never ever ever ever use !important, ever; !important, code of the wicked.
      I wake up because, nonsense.
      Nonsense, because !important is an—important part of the cascade. !important is so important, it even has its own section in the spec:
      CSS attempts to create a balance of power between author and user style sheets. By default, rules in an author’s style sheet override those in a user’s style sheet […].
      However, for balance, an “!important” declaration (the delimiter token “!” and keyword “important” follow the declaration) takes precedence over a normal declaration. Both author and user style sheets may contain “!important” declarations, and user “!important” rules override author “!important” rules. This CSS feature improves accessibility of documents by giving users with special requirements (large fonts, color combinations, etc.) control over presentation.
      !important, a legitimate feature of CSS, is a tool. It’s first and foremost a critical tool for users, for who it’s what guarantees that their rules (when they ever put any in place) get applied. And it’s an important tool for authors, us web developers, not just to test (admit, 99% here have used !important for debugging purposes) but also to come up with sometimes incredibly elegant solutions.
      To ban !important, as my nightmare-widened eyes see much too many times, resembles dogmatic over-simplification. To ban !important doesn’t show understanding of what it’s doing and what it’s there for, and with that often looks like convenience, convenience not to be bothered to contemplate what could be behind !important.
      I won’t explain the intricacies of !important, either. Not here. My favorite Harry, for example, does a nice job doing so already, sharing some of the issues, and what we can do instead. I normally buy myself time by advising not to use !important too liberally, and all the time. But the point of this post is simply to, once and for all, establish that:
      !important is important. !important is legitimate. It’s useful. It’s not going to go away. And so instead of screaming “no !important,” we should relax, and use (and teach to use) !important responsibly.

      About the Author

      Jens Oliver Meiert, photo of December 23, 2018.
      Jens Oliver Meiert is a tech lead and author (sum.cumo, W3C, O’Reilly). He experiments with philosophy, art, and adventure. Here on meiert.com he shares and generalizes and exaggerates some of his thoughts and experiences.
      There’s more Jens in the archives and at Goodreads. If you have any questions or concerns (or recommendations) about what he writes, leave a comment or a message.
      You are here: HomeArchive2015 → The Truth About !important
      Last update: May 18, 2018