Почему сайт использует </img> в разметке HTML? - PullRequest
4 голосов
/ 20 сентября 2010

Я встречал эту страницу https://www.google.com/accounts/ServiceLogin, страницу входа в службу Google, которая (помимо простого пропуска типа документа) содержит 6 экземпляров </img>

Например,

  <img src="https://www.google.com/accounts/google_transparent.gif"
           alt="Google">
  </img>

Зачем им это делать?Какую выгоду / функциональность / дедушку они могут достичь?

Все, что я когда-либо читал о HTML и XHTML, сделало его довольно однозначным:

В HTML 4.01 и ранее теги <img> никогда не закрывается (<img src="img.gif" alt="text" >).

В XHTML теги <img> должны закрываться с использованием самозакрывающегося синтаксиса (<img src='img.gif' alt="text" />)

InHTML5, (я так понимаю) любой синтаксис (открытый или самозакрытый) приемлем, но все равно никогда не </img>.

Ответы [ 4 ]

2 голосов
/ 22 сентября 2010

Я нашел единственный (предложенный) способ, которым этот код когда-либо фактически соответствовал, хотя он не применяется в случае Google (так как у них отсутствует DOCTYPE).

XHTML 2, который был предложен, а затемscrapped, реализует тег </img> как способ замены атрибута alt.

Итак, вместо этого в XHTML 1.0 / 1.1:

<img src="monkeys.gif" alt="Monkeys throwing feces" />

У вас будет это

<img src="monkeys.gif">Monkeys throwing feces</img>

Там, где «Обезьяны, бросающие фекалии», отображается, только если monkeys.gif не удается загрузить.

Это заставит <img> вести себя как другие теги встраивания контента, например <object>.

По словам спецификации,

Элемент img является держателем для встраивания атрибутов, таких как src.Поскольку эти атрибуты могут быть применены к любому элементу, элемент img не является строго необходимым, но он включен для облегчения перехода к XHTML2.Как и элемент object, содержимое этого элемента представляется только в том случае, если указанный ресурс недоступен.

2 голосов
/ 20 сентября 2010

Я бы сказал, что это ошибка.По крайней мере, в одном случае кажется, что он просто создает совершенно недействительный код:

  <img class=logo
       src='https://www.google.com/intl/en/images/logos/accounts_logo.gif'
       alt="Google" />
  </img>

Вы можете видеть, что тег img самозакрывающийся и закрывается отдельным закрывающим тегом.Явно непреднамеренноИ это противоречиво, что тоже немного странно.Я бы предложил по электронной почте их и спросить.:)

1 голос
/ 20 сентября 2010

Кто-то написал это несколько лет назад, и теперь никто не хочет трогать это и ломать Google;)

1 голос
/ 20 сентября 2010

Возможно, их HTML-генератор закрывает каждые <tag> с соответствующим </tag>, что является просто программно более ленивой альтернативой написанию <tag/> для таких одиночных тегов.

...