Re: CSS3 specificity

[Sorry for the delay in responding; our moderation queue was just emptied.]

On Tue, Jun 17, 2014 at 1:28 PM, Max Design <info@maxdesign.com.au> wrote:
> Hi there
>
> I have a question regarding more recent definitions of the cascade process.
>
> In CSS2, specificity was measured with three concatenated numbers: 0,0,0
>
> Apparently, David Barron was the first to suggest a change for CSS2.1
> http://lists.w3.org/Archives/Public/www-style/1999Feb/0001.html
>
> In CSS2.1, specificity was measured using four concatenated numbers: 0,0,0,0
> http://www.w3.org/TR/CSS2/cascade.html
>
> "count 1 if the declaration is from is a 'style' attribute rather than a rule with a selector, 0 otherwise (= a) (In HTML, values of an element's "style" attribute are style sheet rules. These rules have no selectors, so a=1, b=0, c=0, and d=0.)“
>
> In the newer CSS3 specificity model, specificity is again measured using three concatenated numbers: 0,0,0
>
> Referenced here:
> http://www.w3.org/TR/2013/CR-css-cascade-3-20131003/
>
> And defined here
> http://www.w3.org/TR/selectors/#specificity
>
> If I read both documents, there is no reference to inline styles at all. Inline styles are not described under Origin or importance:
>
>         • Transition declarations [CSS3-TRANSITIONS]
>         • Important user agent declarations
>         • Important user declarations
>         • Important override declarations [DOM-LEVEL-2-STYLE]
>         • Important author declarations
>         • Animation declarations [CSS3-ANIMATIONS]
>         • Normal override declarations [DOM-LEVEL-2-STYLE]
>         • Normal author declarations
>         • Normal user declarations
>         • Normal user agent declarations
>
> So, my question... CSS2.1 helped to define how inline styles play out in the cascade order. Am I missing something in CSS3 which defined where inline styles are weighted?

Yup, you're missing something. ^_^

If you look at the bottom of the Specificity section in Selectors,
there's a note about how the specificity of declarations in inline
style attributes is defined by the Style Attributes spec.  Follow that
link, and you'll come to
<http://www.w3.org/TR/css-style-attr/#interpret>, which defines them
as being in the author origin and having a specificity higher than any
selector.

(And btw, you're pointing to the /TR documents, which are rather old,
particularly that Selectors reference from 2011.  Always look at the
Editors’ Drafts instead, at <http://dev.w3.org/csswg/>, as its common
for errors to have already been fixed in the newer version.  Newer
specs always link to their EDs, but older drafts didn't, and I'm sorry
for that.)

~TJ

Received on Wednesday, 23 July 2014 15:04:32 UTC