<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">тег на сторінці firefox 76 about:logo! Хоча 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строго не потрібно, атрибут _усуточно_ також повинен бути включений).
При цьому ваша HTML5 сторінка, ймовірно, відображатиметься за призначенням, оскільки браузери переписують чи інтерпретують ваш HTML у те, що він думає, що ви мали на увазі. Це може означати, що він перетворює тег, наприклад, з
<div />на в <div></div>. Або, можливо, він просто ігнорує остаточну косу рису <img ... />.
див. 2016: Подайте HTML5 як XHTML 5.0 для підтвердження застарілих даних.
Дивіться: обговорення 2011 року та додаткові посилання тут, хоча з часом деякі біти можуть змінитися
Частково це відбувається тому, що браузери дуже намагаються виправити помилку. Також тому, що існує багато плутанини щодо тегів, що закриваються, і тегів, що не закриваються. Нарешті, специфікація змінилася або не завжди була зрозумілою, і браузери намагаються бути сумісними назад.
Отже, хоча ви, ймовірно, можете піти з будь-якого з трьох варіантів,
лише перший дотримується стандарту 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, які не загрожуватимуть, коли вони потрапляють на незакритий тег.
Якщо ви ніколи не будете намагатися проаналізувати вміст, ігноруйте закриття.