因为IE不会将XHTML呈现为XHTML,而是将其视为HTML,这何时会导致IE出现问题?
答案 0 :(得分:2)
我知道一个案例,其中
<div style="clear:both" />
在支持XHTML的浏览器中,div已关闭。但IE会将div视为仍处于打开状态,因此布局可能会在以后产生意外结果。
答案 1 :(得分:1)
答案 2 :(得分:1)
自动关闭语法不起作用(它似乎仅适用于HTML中始终为空的元素)。 XML序列化程序可能生成<textarea/>
,<script/>
和类似的东西,它们以各种方式中断页面(触发复杂的错误恢复,有时涉及重新解析页面的其余部分)。
明确关闭的HTML“空”元素可能表现得很奇怪(</br>
在IE中插入中断。)
<![CDATA[
元素之外的 CDATA
将被识别为标记。它不会影响转义,也可能会使某些内容消失。
在HTML的CDATA
元素(即<script>
)中,将无法识别实体。 XHTML需要<script> if (1 < 2) …
,这将是IE中的语法错误。
<body>
的背景将在IE中以不同方式应用。
CSS中没有针对名称空间感知选择器的跨浏览器语法。
您将获得所有隐含的HTML元素(例如,所有表中的<tbody>
)和隐含的封闭元素(当文档有效时通常不会出现问题,但其他浏览器不会长时间警告您因为标记格式正确)。
带前缀的元素和属性不会被命名空间,并且在IE中会得到不同的tagName
(这在XML中也是非法的)。它们也不会获得适当的默认样式和行为(<xhtml:a>
不能成为链接)。
您将无法使用createElementNS
之类的名称空间感知方法(它们在IE中不存在),.tagName
在IE中将为大写,但并非在所有情况下都是
带前缀的元素和属性不会被命名空间,并且会在IE中获得不同的本地名称(在XML中也是非法的)。
这些只是有关从工作XML文档切换到HTML的问题。当你从HTML(即每个人都期望并采取正常行为)到真正的XML时,有很多惊喜,例如, document.write
无法使大部分Google的脚本无效。
答案 3 :(得分:0)
这些都适用于任何将XHTML视为text / html而非具体IE的浏览器,但您应该阅读XHTML 1.0规范的附录C:http://www.w3.org/TR/xhtml1/#guidelines