css3 - Is there a difference in CSS selectors `:enabled` vs `not(:disabled)` -


is there difference in behaviour or browser support using css3 selectors :enabled or not(:disabled)?

i expect them functionally identical, , both css3 selectors, browser support should identical too.

yes, there difference — :not(:disabled) can match elements neither :enabled nor :disabled. these elements enabled/disabled semantics don't apply, such div, p, ul, etc.

the spec confirms this:

what constitutes enabled state, disabled state, , user interface element language-dependent. in typical document elements neither :enabled nor :disabled.

interestingly, same can't said :checked — there no corresponding :unchecked pseudo-class, despite fact not elements have checked/unchecked semantics either. see answer this question.

if you're qualifying these pseudo-classes type selector (such input, select or textarea) or class selector, don't have worry this. still, makes more sense use :enabled :not(:disabled).

browser support majority of level 3 pseudo-classes indeed identical — there no known browsers support either :enabled or :disabled only. however, according mdn looks opera 9.0 , safari 3.1 don't support :not(), although support :enabled , :disabled, , other features substring-matching attribute selectors , general sibling combinator ~ supported in ie7 issues , little bit better in ie8.


Comments

Popular posts from this blog

html - Outlook 2010 Anchor (url/address/link) -

javascript - Why does running this loop 9 times take 100x longer than running it 8 times? -

Getting gateway time-out Rails app with Nginx + Puma running on Digital Ocean -