我们有一个客户希望我们使用CSS3名称空间。但是,我发现的一切都表明它专门用于样式化XML而不是HTML。任何人都可以使用它来验证CSS / HTML或澄清你将如何做到这一点?遵循这种方法的不利之处是什么?
@namespace toto "http://toto.example.org";
toto|Product {
display:block;
}
toto|Code {
color: black
}
http://www.w3.org/TR/css3-namespace/
http://onwebdev.blogspot.com/2010/04/css3-namespace-selectors.html
答案 0 :(得分:4)
任何人都可以使用它来验证CSS / HTML或澄清你将如何做到这一点吗?
主流浏览器使用http://www.w3.org/1999/xhtml
的默认命名空间,这是XHTML的命名空间,即使对于HTML,也可以使用它们的业务。从技术上讲,由于HTML不是XML,除非你认为像SVG和MathML这样的基于XML的语言可以嵌入到HTML中,否则没有任何意义。
如果您的客户想要使用CSS命名空间,他们可能需要为您提供一些用一种语言编写的东西,该语言具有某种与CSS兼容的命名空间机制。尝试将这些知识应用于HTML本身是没有意义的,因为
更多信息可在this answer中找到。
要回答您的问题标题,请使用文档语言does not necessarily have to be XML-based:
除了本规范引入的术语外,CSS命名空间还使用XML 1.0中的命名空间中定义的术语。但是,此处定义的语法不仅限于表示XML元素和属性名称,还可以表示由宿主语言定义的其他类型的命名空间。
CSS命名空间规范从XML Namespaces借用术语只是因为CSS最常用于HTML和XML文档(即便如此,更多人使用XSL(T)代替)。
答案 1 :(得分:2)
CSS命名空间不是逻辑地对CSS规则(C ++和C#中的命名空间)进行分组,而是关于应用规则,因为它们适用于给定主机语言中的命名空间元素(在本例中,是带有XML命名空间的XML文档),但规范是语言中立的,所以它可以使用JSON(如果有人发明名称空间)或任何其他结构化语言(http://www.w3.org/TR/css3-namespace/)。
2.1。术语
[..]但是,此处定义的语法不限于表示XML元素和属性名称,也可以表示主机语言定义的其他类型的名称空间。
答案 2 :(得分:0)
唯一的另一种用法是使用namespaced attributes和多语言HTML5(可以同时呈现为HTML和序列化XHTML的标记)。以下是CSS3命名空间的一些用法: