[CSS2.1] Attribute selectors

Quote from CSS2.1 
	Thus, while it is not the case that a CSS2 stylesheet is
necessarily forwards-compatible 
	with CSS 2.1, it is the case that a stylesheet restricting itself
to CSS 2.1 features is 
	more likely to find a compliant user agent today and to preserve
forwards compatibility 
	in the future.

There is at least one thing that artificially breaks forward compatibility
with CSS3:  namespace selectors. 

Quote from CSS3 selectors:
	the down-level client will view and match element type and
attribute selectors 
	based on their fully qualified name, not the local part as
outlined in the Type selectors 
	and Namespaces section. CSS selectors may be declared using an
escaped 
	colon "\:" to describe the fully qualified names, e.g. "html\:h1"
will match <html:h1>. 
	Selectors using the qualified name will only match XML elements
that use the same prefix. 
	Other namespace prefixes used in the XML that are mapped to the
same URI will not match 
	as expected unless additional CSS style rules are declared for
them. 
	Note that selectors declared in this fashion will only match in
down-level clients. 
	A CSS namespace aware client will match element type and attribute
selectors 
	based on the name's local part. So selectors declared with the
fully qualified name 
	will not match (unless there is no namespace prefix in the fully
qualified name).


Being namespace unaware CSS2.1 artifically encourages users to use
attribute selectors
that will be simply ignored by CSS3 rendering engines. Since CSS2.1 was
released after
'Namespaces in XML' recomendation I think it must address issue with
qualified names based
versus namespace based selector matching. Otherwise implementing CSS3
selectors in browsers
will break some of existing web pages.

Received on Wednesday, 15 June 2005 14:23:34 UTC