cssfirefoxbrowser-detection

Targeting only Firefox with CSS


Using conditional comments it is easy to target Internet Explorer with browser-specific CSS rules:

<!--[if IE 6]>
...include IE6-specific stylesheet here...
<![endif]-->

Sometimes it is the Gecko engine (Firefox) that misbehaves. What would be best way to target only Firefox with your CSS rules and not a single other browser? That is, not only should Internet Explorer ignore the Firefox-only rules, but also WebKit and Opera should.

Note: I'm looking for a 'clean' solution. Using a JavaScript browser sniffer to add a 'firefox' class to my HTML does not qualify as clean in my opinion. I would rather like to see something that depends on browser capabilities, much like conditional comments are only 'special' to IE…


Solution

  • This solution does not rely on JavaScript being turned on.

    @-moz-document url-prefix() {
      h1 {
        color: red;
      }
    }
    <h1>This should be red in FF</h1>

    It's based on yet another Mozilla-specific CSS extension. There's a whole list of these CSS extensions right here: Mozilla CSS Extensions. ⚠ Do note that they are mostly deprecated!

    For more information about this specific CSS extension, see this question: What does @-moz-document url-prefix() do?