CSS Styling of Namespaces in HTML
aaronsw.com
aaronsw.com
It is my understanding that the correct sequence is GGBG. I believe that if < 4 are given for a browser, then it is the first few that are tested; assume black if it isn't listed. This abbreviation is because later tests cannot be expected to work if earlier ones don't, so it's not worth listing them (though it's still a little inconsistent which are listed).
Because the page is so old (even before Aaron died), the only one of the browsers mentioned that I can verify is
IE6/Win: GBBB
I believe that 3 is guaranteed to be black if either 1 or 2 are black (making the IE5/Mac and Safari results slightly redundant). I believe that 4 is guaranteed to be black if 2 is black or 3 is red, meaning that it's not worth showing for any of them (... except for Opera 7b2 after refresh. Dang, I thought I had it figured out).
1) source pretends to be XHTML, but since document is served as text/html, it is treated as HTML. And there are no namespaces in HTML. I assume there never been any in 2002, but cannot swear on that.
2) CSS selector "ns\:elem" has nothing to do with namespaces, it is just selector looking for <ns:elem>s 'tagname'. It works in HTML, and that's what page actually shows. Try this:
data:text/html,<style>a\:\:\:{color:red}</style><a:::>foo</a:::>
3) Even if it was served as application/xhtml+xml, it would be:
3a) invalid: ex3 namespace is not declared;
3b) if fixed, then without applied style: SGML comment around CSS content would hide it from parser (or at least it does something like this in my test).4) @namespace declarations in CSS must be "on the top" (after @charset and @imports, IIRC), not after rules, so that one declaration in the test is ignored.
5) Test4 has a typo: element name in html is `text`, but CSS selector looks for `test`.
I'm not sure all those remarks would make sense back in '02 context, but if it was as misleading as it seems to me, it is quite sad how many people has been possibly confused by that, considering it is fourth verbatim Google result for "CSS namespaces": https://www.google.com/search?q=css+namespaces&tbs=li:1