解决方法
那就是XML的一般方法. XSLT被发明用于将一种数据格式转换为另一种数据格式(XSLT 1.0仅XML,XSLT 2.0任何Unicode数据格式),即XML到HTML或XML到XSL-FO或其他XML或文本格式. XSL-FO被发明用于在纸或屏幕上布置XML,并且CSS更加详细.
CSS XML的一些利弊
主要的缺点,尤其是在浏览器中使用XML.如果您不想让我所有的笨蛋,请跳到下面的整体建议;-)
CSS cons 1:没有互联网的CSS XML
缺点:它取决于上下文,但如果要使用XML在互联网上显示,请再次考虑:不要使用XML,而是将其转换为HTML.然后使用CSS HTML来显示你的数据.如果您在互联网上使用XML,则不需要搜索引擎或抓取工具,就可以了解< x>和< y>但是它们将理解< h1>之间的区别.和< h2> ;. 这仅仅是使用XSLT转换为HTML CSS并避免使用XML的一个原因. CSS cons 2:CSS意味着更多的工作 可以使用的另一个极大的原因:XML CSS意味着定义CSS中的每个元素.使用HTML CSS意味着用户代理已经知道所有元素的默认布局属性.使用XML XSLT意味着通常您创建HTML CSS.您应该在服务器端执行此操作,因为客户端XSLT不是很可靠,并且跨浏览器兼容. CSS cons 3:可访问性 (对不起,我找不到优点)除非XML具有语义(SVG,如另一用户所提到的),那么使用CSS进行布局就没有意义.如果布局应该被用户代理语义地理解,那么XML CSS是一个不用去.文字到语音读者不知道该怎么做,WAI(可访问性)的有效性将是不可能的. CSS cons 4:可维护性,可理解性,脚本,麻烦 使用XML使得很难做任何客户端脚本(是的,DOM可用,但是如何告诉浏览器脚本标签是什么呢?但是也可能会对< script>做出反应,但是你需要XSLT可以在那里获得该标签),使得它很难让浏览器正确(某些浏览器很难使用XML本身).任何HTML(像元,标题,正文,脚本)都不可用.没有办法添加标题属性或告诉浏览器图像是什么(afaik).
没有脚本可以在你的XML专页(prototype.js?jquery.js?ajax?no no和no)上工作.
任何看着你的代码的人都必须知道每个标签是什么意思.使用XSLT转换为HTML,防止这种情况.这个额外的步骤是有益的,应该随时应用于从XML到浏览器显示.
CSS专业1:领域具体
如果您的域名是SVG,SMIL,OD或其他任何内容,您可能已经知道:CSS是规范的组成部分,应该被使用.这与纯粹的,可能是非结构化的数据XML完全不同.
AJAX的想法
只是为了比较:任何异步AJAX调用(应该)返回XML.但是使用它的任何一个图书馆都会将其解释为HTML,也可以使用XSLT或其他方法在将其注入现有页面之前进行转换.
总体咨询
基于OP的意见,我们正在查看数据XML(不是SVG或OpenDocument),需要在浏览器中显示.可访问性和可索引性并不重要.但这并不重要:您不应该单独使用XML CSS,除非您真的进入一些冒险,并希望在浏览器中找出XML的所有缺点,再次重新发明每个HTML标签,并定义每个和所有内容,只能放弃一段时间,并恢复为HTML(XML XSLT == HTML CSS).