Mozilla CSS support chart

  • Revision slug: Mozilla_CSS_support_chart
  • Revision title: Mozilla CSS support chart
  • Revision id: 20028
  • Created:
  • Creator: Dria
  • Is current revision? No
  • Comment /* CSS Selectors */ grammar

Revision Content

This document is in the process of being migrated from {{template.Bug(281960)}}. It will be hooked into the category system when it's complete.

Introduction

This page lists the CSS selectors, properties, and at-rules for which Mozilla has implemented some level of support. Such lists are a very coarse measure of CSS support. Implemented features may have (filed or unfiled) bugs, and therefore may not work correctly under all conditions.

If you think you have found a bug in Mozilla's CSS support please create a minimal test case and file a bug. Make sure you search through existing bugs first.

The ‘supported since’ column gives the Gecko version number. (Firefox 1.0 is built from Gecko 1.7.5. Mozilla Suite version numbers are equal to those of Gecko.) Versions prior to version 1.0 are listed as 1.0.

Mozilla CSS extensions (those prefixed with -moz-) are not listed here. They are intended for internal use within the browser only and must not be relied upon to work in web pages, because they can and will break.

This page lists several Mozilla bugs so people can check out what the problems are with our implementation. Please do not comment on any of those bugs unless you have a patch.

CSS Selectors

Selector Supported Supported since Notes
Type selectors Yes 1.0 -
Universal Selector Yes 1.0 -
Attribute selectors Yes 1.0 -
Class selectors Yes 1.0 -
ID selectors Yes 1.0 -
Dynamic pseudo-classes Yes 1.0 :hover and :active act differently in quirks mode.
:target pseudo-class Yes 1.3 -
:lang(language) pseudo-class
(language is defined in RFC 3066 or its successor)
Yes 1.2 -
:checked pseudo-class Yes 1.1 -
:root pseudo-class Yes 1.0 -
:first-child pseudo-class Yes 1.0 :first-child is not dynamically updated. ({{template.Bug(73586)}})
:last-child pseudo-class Yes 1.0 :last-child is not dynamically updated. ({{template.Bug(73586)}})
:only-child pseudo-class Yes 1.8 :only-child is not dynamically updated.
:empty pseudo-class Yes 1.0 Since 1.8 an element containing spaces does not longer match :empty. :empty has a known bug of not being dynamically updated. ({{template.Bug(98997)}})
:not() pseudo-class Yes 1.0 -
::first-line pseudo-element Yes 1.0 ?
::first-letter pseudo-element Yes 1.0 ?
::before and ::after pseudo-elements Yes 1.0 position is not supported on these pseudo-elements. Also the float, display and overflow properties have some bugs when applied to these pseudo-elements.
Descendant combinator Yes 1.0 -
Child combinator Yes 1.0 -
Direct adjacent combinator Yes 1.0 Has some dynamic issues. ({{template.Bug(229915)}})
Indirect adjacent combinator Yes 1.7 Has some dynamic issues. ({{template.Bug(229915)}})

CSS 2.1 Properties

Other CSS Properties

CSS At-rules

Acknowledgements

Revision Source

<div class="note">
<p>This document is in the process of being migrated from {{template.Bug(281960)}}.  It will be hooked into the category system when it's complete.
</p>
</div>
<h3 name="Introduction"> Introduction </h3>
<p>This page lists the <a href="en/CSS">CSS</a> selectors, properties, and at-rules for which Mozilla has implemented some level of support. Such lists are a very coarse measure of CSS support. Implemented features may have (filed or unfiled) bugs, and therefore may not work correctly under all conditions.
</p><p>If you think you have found a bug in Mozilla's CSS support please create a <a class="external" href="http://hixie.ch/advocacy/writing-test-cases-for-web-browsers">minimal test case</a> and <a class="external" href="http://bugzilla.mozilla.org">file a bug</a>. Make sure you search through existing bugs first. 
</p><p>The ‘supported since’ column gives the <a href="en/Gecko">Gecko</a> version number. (Firefox 1.0 is built from Gecko 1.7.5. Mozilla Suite version numbers are equal to those of Gecko.) Versions prior to version 1.0 are listed as 1.0.
</p><p>Mozilla CSS extensions (those prefixed with -moz-) are not listed here. They are intended for internal use within the browser only and must not be relied upon to work in web pages, because <b>they can and will break</b>.
</p><p>This page lists several Mozilla bugs so people can check out what the problems are with our implementation. <b>Please do not comment on any of those bugs unless you have a patch</b>.
</p>
<h3 name="CSS_Selectors"> CSS Selectors </h3>
<table class="fullwidth-table">
<tbody><tr>
<th>Selector</th>
<th>Supported</th>
<th>Supported since</th>
<th>Notes</th>
</tr>
<tr>
<td><a class="external" href="http://www.w3.org/TR/css3-selectors/#type-selectors">Type selectors</a></td>
<td>Yes</td>
<td>1.0</td>
<td>-</td>
</tr>
<tr>
<td><a class="external" href="http://www.w3.org/TR/css3-selectors/#universal-selector">Universal Selector</a></td>
<td>Yes</td>
<td>1.0</td>
<td>-</td>
</tr>
<tr>
<td><a class="external" href="http://www.w3.org/TR/css3-selectors/#attribute-selectors">Attribute selectors</a></td>
<td>Yes</td>
<td>1.0</td>
<td>-</td>
</tr>
<tr>
<td><a class="external" href="http://www.w3.org/TR/css3-selectors/#class-html">Class selectors</a></td>
<td>Yes</td>
<td>1.0</td>
<td>-</td>
</tr>
<tr>
<td><a class="external" href="http://www.w3.org/TR/css3-selectors/#id-selectors">ID selectors</a></td>
<td>Yes</td>
<td>1.0</td>
<td>-</td>
</tr>
<tr>
<td><a class="external" href="http://www.w3.org/TR/css3-selectors/#dynamic-pseudos">Dynamic pseudo-classes</a></td>
<td>Yes</td>
<td>1.0</td>
<td><code>:hover</code> and <code>:active</code> <a href="en/Mozilla_Quirks_Mode_Behavior">act differently</a> in <a href="en/Mozilla's_Quirks_Mode">quirks mode</a>.</td>
</tr>
<tr>
<td><a class="external" href="http://www.w3.org/TR/css3-selectors/#target-pseudo"><code>:target</code> pseudo-class</a></td>
<td>Yes</td>
<td>1.3</td>
<td>-</td>
</tr>
<tr>
<td><a class="external" href="http://www.w3.org/TR/css3-selectors/#lang-pseudo"><code>:lang(<var>language</var>)</code> pseudo-class</a>
      <br>(<var>language</var> is defined in <a class="external" href="http://tools.ietf.org/html/rfc3066" title="http://tools.ietf.org/html/rfc3066">RFC 3066</a> or its successor)</td>
<td>Yes</td>
<td>1.2</td>
<td>-</td>
</tr>
<tr>
<td><a class="external" href="http://www.w3.org/TR/css3-selectors/#checked"><code>:checked</code> pseudo-class</a></td>
<td>Yes</td>
<td>1.1</td>
<td>-</td>
</tr>
<tr>
<td><a class="external" href="http://www.w3.org/TR/css3-selectors/#root-pseudo"><code>:root</code> pseudo-class</a></td>
<td>Yes</td>
<td>1.0</td>
<td>-</td>
</tr>
<tr>
<td><a class="external" href="http://www.w3.org/TR/css3-selectors/#first-child-pseudo"><code>:first-child</code> pseudo-class</a></td>
<td>Yes</td>
<td>1.0</td>
<td><code>:first-child</code> is not dynamically updated. ({{template.Bug(73586)}})</td>
</tr>
<tr>
<td><a class="external" href="http://www.w3.org/TR/css3-selectors/#last-child-pseudo"><code>:last-child</code> pseudo-class</a></td>
<td>Yes</td>
<td>1.0</td>
<td><code>:last-child</code> is not dynamically updated. ({{template.Bug(73586)}})</td>
</tr>
<tr>
<td><a class="external" href="http://www.w3.org/TR/css3-selectors/#only-child-pseudo"><code>:only-child</code> pseudo-class</a></td>
<td>Yes</td>
<td>1.8</td>
<td><code>:only-child</code> is not dynamically updated.</td>
</tr>
<tr>
<td><a class="external" href="http://www.w3.org/TR/css3-selectors/#empty-pseudo"><code>:empty</code> pseudo-class</a></td>
<td>Yes</td>
<td>1.0</td>
<td>Since 1.8 an element containing spaces does not longer match <code>:empty</code>. <code>:empty</code> has a known bug of not being dynamically updated. ({{template.Bug(98997)}})</td>
</tr>
<tr>
<td><a class="external" href="http://www.w3.org/TR/css3-selectors/#negation"><code>:not()</code> pseudo-class</a></td>
<td>Yes</td>
<td>1.0</td>
<td>-</td>
</tr>
<tr>
<td><a class="external" href="http://www.w3.org/TR/css3-selectors/#first-line"><code>::first-line</code> pseudo-element</a></td>
<td>Yes</td>
<td>1.0</td>
<td>?</td>
</tr>
<tr>
<td><a class="external" href="http://www.w3.org/TR/css3-selectors/#first-letter"><code>::first-letter</code> pseudo-element</a></td>
<td>Yes</td>
<td>1.0</td>
<td>?</td>
</tr>
<tr>
<td><a class="external" href="http://www.w3.org/TR/css3-selectors/#gen-content"><code>::before</code> and <code>::after</code> pseudo-elements</a></td>
<td>Yes</td>
<td>1.0</td>
<td><code>position</code> is not supported on these pseudo-elements. Also the <code>float</code>, <code>display</code> and <code>overflow</code> properties have some bugs when applied to these pseudo-elements.</td>
</tr>
<tr>
<td><a class="external" href="http://www.w3.org/TR/css3-selectors/#descendant-combinators">Descendant combinator</a></td>
<td>Yes</td>
<td>1.0</td>
<td>-</td>
</tr>
<tr>
<td><a class="external" href="http://www.w3.org/TR/css3-selectors/#child-combinators">Child combinator</a></td>
<td>Yes</td>
<td>1.0</td>
<td>-</td>
</tr>
<tr>
<td><a class="external" href="http://www.w3.org/TR/css3-selectors/#adjacent-d-combinators">Direct adjacent combinator</a></td>
<td>Yes</td>
<td>1.0</td>
<td>Has some dynamic issues. ({{template.Bug(229915)}})</td>
</tr>
<tr>
<td><a class="external" href="http://www.w3.org/TR/css3-selectors/#adjacent-i-combinators">Indirect adjacent combinator</a></td>
<td>Yes</td>
<td>1.7</td>
<td>Has some dynamic issues. ({{template.Bug(229915)}})</td>
</tr>
</tbody></table>
<h3 name="CSS_2.1_Properties"> CSS 2.1 Properties </h3>
<h3 name="Other_CSS_Properties"> Other CSS Properties </h3>
<h3 name="CSS_At-rules"> CSS At-rules </h3>
<h3 name="Acknowledgements"> Acknowledgements </h3>
Revert to this revision