CSS3命名空间是否用于除XML之外的任何内容?

时间:2012-11-30 19:31:05

标签: html css xml css3 xml-namespaces

我们有一个客户希望我们使用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

3 个答案:

答案 0 :(得分:4)

  

任何人都可以使用它来验证CSS / HTML或澄清你将如何做到这一点吗?

主流浏览器使用http://www.w3.org/1999/xhtml的默认命名空间,这是XHTML的命名空间,即使对于HTML,也可以使用它们的业务。从技术上讲,由于HTML不是XML,除非你认为像SVG和MathML这样的基于XML的语言可以嵌入到HTML中,否则没有任何意义。

如果您的客户想要使用CSS命名空间,他们可能需要为您提供一些用一种语言编写的东西,该语言具有某种与CSS兼容的命名空间机制。尝试将这些知识应用于HTML本身是没有意义的,因为

  • HTML并非完全被设计为首先被命名空间
  • 浏览器已经为默认无法访问的(X)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)