Thread:User talk:CodeCat/!important/reply (2)

Well,  makes a declaration take precedence over all other declarations that select the same element. But the cascade still continues to work for elements contained within the selected element.

So  will trump the more-specific , but not neuter all declarations for child elements like.

The CSS3 spec implies this, but doesn’t say it explicitly. It does, however, list some situations where !important could be useful.

Yes, these !importants should all be removed. Because  breaks the normal cascade, it makes debugging a nightmare. It should only be used for outstanding circumstances, not as a shortcut for appropriate more-specific selectors.

You could use the following, although it may fail in various ways (e.g., an English phrase that contains italics quoted within a Russian paragraph):

But because the language attribute is inherited by child elements, the right way to do it is for each language:

CSS ignores the rest of the language code beyond the first fragment, so  or   selects nothing. This may seem unfortunate, but we really should be simplifying the code instead of complicating it as browsers’ language support improves. The typographic ideal is one font-family and font-size for all languages, rather than one for each language.