我是HTML新手,但对XML有着悠久的历史。令我感到奇怪的是HTML样式元素看起来像这样。
<style type="text/css">
.style1 { width: 250px; }
.style2 { width: 20px; }
</style>
我原本以为可以用更友好的XML格式捕获相同的信息。例如,这可能是
<style type="text/css">
<style1 width="250px"/>
<style2 width="25px"/>
</style>
在我看来,后者将由XML解析器解析,而前者需要自定义解析代码。看起来很不寻常,我想知道是否有充分的理由。
谢谢,
迈克尔
答案 0 :(得分:2)
CSS是一种不同的语言。 XHTML只允许嵌入,因为它是内容。想想就像JavaScript在XML文档中一样。
更不用说使用XML会导致DTD出现问题,并且在CSS简单易懂的情况下会非常冗长。
以下是CSS的一些历史记录:http://en.wikipedia.org/wiki/Cascading_Style_Sheets#History
答案 1 :(得分:2)
主要是因为它早于XML。参见HåkonWium Lie论文的第7.2.3.3节: http://people.opera.com/howcome/2006/phd/#h-275
答案 2 :(得分:1)
因为CSS语法更清晰,更简洁,更具表现力。在基于XML的语言中,在单个规则中特别具有多个选择器将是非常繁琐的。 (它可以放在一个属性上,但这只是将现有CSS语法的大部分嵌入到XML标记属性或值中的丑陋黑客)。
答案 3 :(得分:0)
在这种情况下
<style type="text/css">
.style1 { width: 250px; }
.style2 { width: 20px; }
</style>
CSS样式是元素样式的内容。 CSS本身不是HTML
答案 4 :(得分:0)
正如其他人所说,CSS是一种完全不同的语言。它不符合XML语法。 CSS解析器不是XML解析器。要在JHTML文档中正确嵌入Javascript和CSS,请将它们包含在CDATA部分中。 CSS也可以包含在XML注释中,因为它通常不具有像Javascript那样的非XML兼容字符。
这是一篇关于这个主题的好文章。 https://developer.mozilla.org/en/Properly_Using_CSS_and_JavaScript_in_XHTML_Documents