根据我对XML规范的理解,不保证子元素顺序的重要性。 XML解析器倾向于保持子元素的顺序与XML文档中的顺序相同,但它们没有义务这样做。
如果是这样,那么浏览器是否可以在<li>
或<ol>
中以与在XHTML中出现的顺序不同的顺序呈现<ul>
?或者是否在XHTML规范中指定必须保留订单?
我意识到所有主流浏览器都会尊重我<li>
的顺序。我只是对他们在技术上是否有义务的学术问题感兴趣。
答案 0 :(得分:5)
我认为你完全误读了那里的XML规范!不得在由其构造的模型中更改元素内容的顺序。 (注意:如果有特定的指令可以在视觉上重新排序,那么演示顺序可能会有所不同。但这很奇怪,我不知道当前的CSS是否能够做到这一点。)唯一的真正无序的XML的一部分是属性;他们是一张真正无序的地图。
FWIW,<ul>
的内容被定义为<li>
元素的序列(即,有序!),因此浏览器在构建时不能重新排序文件树。也就是说,重新排序是完全错误的,没有人(甚至IE开发团队)都不够愚蠢。
答案 1 :(得分:4)
根据XHTML 1.1 Schema for list entities&lt; ul&gt;的内容和&lt; ol&gt;是&lt; xs:sequence&gt; &lt; li&gt;项目。检查XML Schema specfication似乎&lt; xs:sequence&gt;操作使得“...元素信息项按顺序匹配粒子......”。这往往意味着我这样的序列的顺序是有意义的,应该保留。
答案 2 :(得分:0)
即使他们“没有义务”这样做,也不要担心。除非有特殊情况(我甚至不知道),HTML / XHTML的HTML5 / SGML / XML解析器会将元素放入文档中显示的DOM中。
无关:如果您正在使用XHTML,请记得将其作为application / xhtml + xml发送(除了IE;检查Accept标头) - 大多数开发人员都不知道这么简单。