<img src='stackoverflow.png'>
<img src='stackoverflow.png'></img>
<img src='stackoverflow.png' />
Какой из них правильный?
<img src='stackoverflow.png'>
<img src='stackoverflow.png'></img>
<img src='stackoverflow.png' />
Какой из них правильный?
Ответы:
<img src='stackoverflow.png' />
Работает нормально и закрывает тег правильно. Лучше всего добавить alt
атрибут для людей с ослабленным зрением.
<img />
действует в [X] HTML / XML, хотя использование XHTML в настоящее время очень редко, и если ваш сервер обслуживает страницы, text/html
все, о чем вам нужно беспокоиться, - это написать правильный HTML. Шансы на перенос HTML-приложения на XHTML близки к нулю.
<img src='stackoverflow.png'>
(если это важно для вас).
Это действительный HTML5, и он абсолютно нормален, не закрывая его. Это так называемый пустотный элемент:
<img src='stackoverflow.png'>
Ниже приведены допустимые теги XHTML. Они должны быть закрыты. Последний вариант также подходит для HTML 5:
<img src='stackoverflow.png'></img>
<img src='stackoverflow.png' />
<img src='stackoverflow.png'>
(если это важно для вас).
<img src="about:logo" alt="about:logo">
тег на about:logo
странице firefox 76 ! Хотя document.body.innerHTML
показывает <img src=\"about:logo\" alt=\"about:logo\">
... Очень хороший ответ ...
На самом деле в HTML5 действует только первый.
<img src='stackoverflow.png'>
Только два последних действительны в XHTML
<img src='stackoverflow.png'></img>
<img src='stackoverflow.png' />
(Хотя это и не обязательно, alt
атрибут _usually_ также должен быть включен).
Тем не менее, ваша страница HTML5, вероятно, будет отображаться так, как задумано, потому что браузеры будут переписывать или интерпретировать ваш html так, как он думает, вы имели в виду. Это может означать, что тег, например, из
<div />
в <div></div>
. Или, может быть, он просто игнорирует последнюю косую черту <img ... />
.
см. 2016: Использовать HTML5 как XHTML 5.0 для устаревшей проверки.
см. обсуждение 2011 г. и дополнительные ссылки здесь, хотя со временем некоторые элементы могли измениться
Отчасти это связано с тем, что браузеры очень стараются исправить ошибки. Кроме того, потому что существует большая путаница с самозакрывающимися тегами и тегами void. Наконец, спецификация изменилась или не всегда была ясной, и браузеры стараются быть обратно совместимыми.
Итак, хотя вы, вероятно, можете обойтись любым из трех вариантов,
только первый соответствует стандарту HTML5 и гарантированно пройдет валидатор HTML5.
Разумная стратегия может заключаться в следующем:
Вот список тегов, которые нельзя закрывать в HTML5 :
<br> <hr> <input>
<img> <link> <source>
<col> <area> <base>
<meta> <embed> <param>
<track> <wbr> <keygen> (HTML 5.2 Draft removed)
<img src='stackoverflow.png' />
действителен в любой версии XHTML и HTML 5.
Then, if the element is one of the void elements, or if the element is a foreign element, then there may be a single U+002F SOLIDUS character (/). This character has no effect on void elements, but on foreign elements it marks the start tag as self-closing.
img является пустым элементом в разделе 12.1.2
Actually, only the first one is valid in HTML5
технически некорректным. Второй действителен и в HTML5. Не требуется, но действует. Никто не утверждает, что это необходимо. Только то, что согласно спецификациям, использование самозакрывающейся формы тега допустимо во всех текущих формах XHTML и HTML.
Лучшее использование тегов, которые вы должны использовать:
<img src="" alt=""/>
Также вы можете использовать в HTML5:
<img src="" alt="">
Эти два полностью действительны в HTML5. Выберите один из них и придерживайтесь его.
Оба правильный ответ. HTML5 следует строгим правилам, и в HTML5 мы можем закрыть все теги. Итак, это зависит от вас, использовать HTML5 или HTML и следовать соответствующему ответу.
<img src='stackoverflow.png'>
<img src='stackoverflow.png' />
Второе свойство более подходящее.
-Тег пуст и содержит только атрибут. - Тег не имеет закрывающего тега.
Так,
<img src='stackoverflow.png'>
<img src='stackoverflow.png' />
оба верны и в HTML5.
Полезно иметь закрывающий тег, если вы когда-нибудь попытаетесь прочитать его с помощью анализатора XHTML. Может быть крайний случай, но я делаю это все время. Это не вредит, а значит, я знаю, что мы можем использовать массив считывателей XML, которые не опрокинутся при попадании в незакрытый тег.
Если вы никогда не собираетесь анализировать контент, игнорируйте закрытие.