根据doctype使用无效的HTML标记有什么影响?

时间:2012-03-22 09:24:08

标签: html doctype

我们目前正在使用一个声明doctype的系统(无论好坏):

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

问题是,我们的许多用户,他们将编写内容,习惯于使用像<br /><img ... />这样的XHTML样式标签,而不是那些严格应该使用的标签(即<br><img>)。

我的问题是,这对浏览器渲染功能和语义的现实影响是什么?

我的第一个倾向是,它是a)在浏览器上不公平地抛出它并期望它向后弯曲并知道该怎么做,并且b)删除任何浏览器今天或在未来将知道如何正确显示我们的页面。

页面看起来很好(虽然查看源代码让我不寒而栗),但这是否有一些更加险恶的影响,并不是很明显?

2 个答案:

答案 0 :(得分:2)

浏览器根本不关心那样的事情。它们通常甚至支持给定doctype中不存在的属性(XHTML严格中的<a target="...">)。

但是,如果你使用带有XML内容类型的XHTML,他们可能会使用严格的XML解析器,如果你做了无效的事情就会抛出错误 - 已知IE就像这样。

答案 1 :(得分:1)

问题似乎是关于HTML 4.01中的“自动关闭”标签,而不是标题中更常见的问题。答案是它们对浏览器没有影响,考虑到大量此类代码,这种情况不太可能发生变化。

从技术上讲,{4.0}中的<br /><img ... />无效。 HTML已正式定义,因此由于某些syntactic specialties,这些结构与<br>><img ...>>相同(其中最终>是数据字符)。浏览器不会以这种方式实现HTML;相反,他们只是将/视为无法识别且因此被丢弃的标记部分。