我正在写一篇介绍性的HTML课程。我记得在9年前发现,当我学习HTML时,<img>
和<image>
都用作显示图像的标记,至少在IE中是这样。实际上,<image>
仍然适用于5种顶级浏览器的最新版本。
我发现<image>
不正确,不会使用http://validator.w3.org进行验证。但是,是否有人知道如果使用<image>
代替<img>
,则无法显示图片的浏览器?
此外,我认为现代浏览器只显示使用<image>
标签创建的图像,因为它是初学者常犯的错误。这个假设是否正确?
答案 0 :(得分:19)
是和否。正如您所指出的,<image>
长期以来一直是<img>
的同义词。我认为这是早期的Netscape浏览器首先做到这一点,可能是为了弥补用户错误,或者可能是因为当时存在争议是否应该实际调用该元素<image>
或<img>
。
无论如何,正如pst指出的那样,一旦它在一个主导市场的浏览器中实现,网页就会依赖它。然后它的持久性降低了浏览器制造商的商业压力。如果所有主流浏览器都支持它,那么浏览器A决定虽然它在版本V中支持它,但它不会在版本V + 1中支持它,只要版本V + 1发布,它们就会收到大量消息说&#34; Site S在您最新的浏览器中被破坏了。你的浏览器是垃圾。我将切换到浏览器B&#34;。
HTML5解析规范要求<image>
标记在树构造阶段映射到img
元素,因此永远不会有任何理由使用它。
与其他HTML消费者相比,我不太关心浏览器,例如鲜为人知的搜索引擎。我认为image
同义词的img
并不广为人知,因此许多此类工具无法选择<image>
作为引用图像资源。
答案 1 :(得分:4)
我刚刚完成调试此问题,我之前没有阅读上述答案。
虽然不是完整的浏览器,但电子邮件客户端通常被用作浏览器。
我发现,使用裸HTML(使用默认裸DTD规范)的Android Gmail客户端确实会出现此问题。它只响应<img />
[即,不是<image />
]。 gmail.com适用于<image />
,但不适用于Android gmail客户端。
虽然电子邮件客户端并不是真正的浏览器,但我认为您可能会感兴趣。
答案 2 :(得分:4)
它们在SVG中有不同的用法。 image
代码会在SVG中创建特定的element,并且不能被img
代码替换。
答案 3 :(得分:0)
事实上。现代浏览器将显示无效的代码,以确保旧网站仍然正确显示,稍微无效的代码不会搞砸页面。
例如,在打开新版本之前忘记关闭<tr>
- 所有现代浏览器都会假设您已将其关闭。
我不知道一个使用良好,最新的浏览器无法显示<image>
标记,但会显示<img>
标记。