Тег <img> vs <image> в HTML
Я пишу вводный курс HTML. Я помню, как 9 лет назад я изучал HTML, когда оба <img>
и <image>
работали как тег для отображения изображений, по крайней мере, в IE. Действительно, <image>
по-прежнему работает в последних версиях 5 лучших браузеров.
Я понимаю, что <image>
неверен и не будет проверяться с помощью http://validator.w3.org. Однако кто-нибудь знает о браузере, который не отображает изображение, если вместо <img>
используется <image>
?
Кроме того, я предполагаю, что современные браузеры отображают изображения, созданные с тегом <image>
, просто потому, что это распространенная ошибка, которую делают новички. Правильно ли это предположение?
Ответы
Ответ 1
Да и нет. Как вы указываете, <image>
долгое время был синонимом <img>
. Я считаю, что это был ранний браузер Netscape, который в первый раз сделал это, возможно, чтобы компенсировать ошибку пользователя или, возможно, потому, что в то время существовал спор, действительно ли элемент должен называться <image>
или <img>
.
В любом случае, как указывает pst, как только он был реализован в браузере, доминирующем на рынке того времени, веб-страницы пришли к нему с уверенностью. Его упорство тогда сводится к коммерческому давлению на производителей браузеров. Если все основные браузеры поддерживают его, то браузер A решает, что, хотя он поддерживает его в версии V, он не будет поддерживать его в версии V + 1, как только будет выпущена версия V + 1, они получат много сообщений, говорящих "Сайт S взломан в вашем последнем браузере. Браузер - это мусор. Я перейду в браузер B".
Спецификация разбора HTML5 требует, чтобы тег <image>
отображался на элемент img
на этапе построения дерева, поэтому никогда не может быть никаких оправданий для его использования.
Я был бы менее озабочен браузерами, чем другие потребители HTML, например, менее известные поисковые системы. Я полагаю, что синоним image
для img
не получил широкого распространения, поэтому многие из таких инструментов не смогут подобрать <image>
как ссылку на ресурс изображения.
Ответ 2
Я только что закончил отладку этой проблемы, которую я совершал, не предварительно прочитав приведенные выше ответы.
В то время как не полномасштабные браузеры, почтовый клиент часто используется, как если бы он был браузером.
Я обнаружил, что, несмотря на то, что клиент Android Gmail, использующий голый HTML (со стандартной версией DTD по умолчанию), демонстрирует эту проблему. Он реагирует только на <img />
[т.е. Не <image />
]. gmail.com в порядке с <image />
, но не клиентом gmail для Android.
В то время как клиент электронной почты на самом деле не является браузером, я думал, что вам все равно может быть интересно.
Ответ 3
Действительно. В современных браузерах будет отображаться недопустимый код, чтобы убедиться, что старые веб-сайты по-прежнему отображаются правильно, а слегка недопустимый код не испортил страницу.
Например, забыв закрыть <tr>
, прежде чем открывать новый, все современные браузеры просто предполагают, что вы его закрыли.
Я не знаю хорошо используемого, современного браузера, который не сможет отобразить тег <image>
, но будет показывать тег <img>
.
Ответ 4
Они имеют разные применения в SVG. Тег image
создает специфический element в SVG и не может быть заменен тегом img
.
Пример скрипта