The namespace|
syntax applies to type selectors as well as attribute selectors (and possibly others). This essentially says "match nav
with type=toc
where type
is in any namespace (including no namespace)." It would match:
<nav foo:type="toc">
If the selector were just [type=toc]
, the above element would not be selected because it is in a namespace.
http://www.w3.org/TR/css3-selectors/#attrnmsp
The fact that this doesn't work in IE10 is probably an error on IE's side. To be honest I've never even seen namespaces used in any HTML I've seen, although I'm sure it happens a lot. You can probably get away with just leaving off the *|
, but it's important that you understand why it's there before you make that decision.