30

我正在写一个介绍性的 HTML 课程。我记得 9 年前我在学习 HTML 时发现,这两者都可以<img>用作<image>显示图像的标签,至少在 IE 中是这样。事实上,<image>它仍然适用于 5 大顶级浏览器的最新版本。

我意识到这<image>是不正确的,不会使用http://validator.w3.org进行验证。但是,是否有人知道如果<image>使用而不显示图像的浏览器<img>

此外,我假设现代浏览器显示使用<image>标签创建的图像仅仅是因为这是初学者常犯的错误。这个假设正确吗?

4

4 回答 4

25

是和不是。正如您指出的那样,<image>长期以来一直是同义词<img>。我相信是早期的 Netscape 浏览器首先这样做,可能是为了补偿用户错误,或者可能是因为当时存在争议该元素是否应该实际调用<image><img>.

无论如何,正如 pst 指出的那样,一旦它在当时主导市场的浏览器中实现,网页就会依赖它。然后,它的持久性归结为浏览器制造商的商业压力。如果所有主流浏览器都支持它,那么浏览器A决定虽然它在版本V中支持它,但它在版本V+1中不支持它,一旦版本V+1发布,他们就会收到很多消息说“站点 S 在您最新的浏览器中损坏。您的浏览器很垃圾。我要切换到浏览器 B"。

HTML5 解析规范要求<image>标签在树构建阶段被映射到img元素,所以永远没有任何理由使用它。

与其他 HTML 消费者(例如鲜为人知的搜索引擎)相比,我不太关心浏览器。我相信imagefor 的img同义词并不广为人知,因此许多此类工具将无法被<image>视为引用图像资源。

于 2012-08-13T07:12:00.070 回答
12

它们在 SVG 中有不同的用法。标签在 SVG中image创建特定元素,并且不能被img标签替换。

小提琴示例

于 2018-04-02T22:35:35.303 回答
5

我刚刚完成了我正在提交的这个问题的调试,之前没有阅读过上述答案。

虽然不是成熟的浏览器,但电子邮件客户端经常被当作浏览器使用。

我发现,Android Gmail 客户端使用裸 HTML(带有默认的裸 DTD 规范)确实存在这个问题。它只响应<img />[ie, not <image />]。gmail.com 适用于<image />,但不适用于 Android gmail 客户端。

虽然电子邮件客户端并不是真正的浏览器,但我认为您可能会感兴趣。

于 2014-05-15T21:36:44.047 回答
0

确实。现代浏览器将显示无效的代码,以确保旧网站仍然正确显示,并且稍微无效的代码不会搞砸页面。

例如,<tr>在您打开一个新的之前忘记关闭一个 - 所有现代浏览器都会简单地假设您关闭了它。

我不知道使用良好的最新浏览器将无法显示<image>标签,但会显示<img>标签。

于 2012-08-13T05:28:36.853 回答