Питання HTML 5: чи є це,
або
?


Я спробував перевірити інші відповіді, але я все ще плутаю - особливо після побачення W3cchools HTML 5 reference.

Я подумав, що HTML 4.01 мав би "дозволяти" однотипні теги, щоб просто бути <img> і <br>. Тоді XHTML прийшов разом <img /> і <br /> (де хтось сказав, що там є місце для старших браузерів)

Тепер я задаюсь питанням, яким чином я повинен форматувати свій код, коли практикує HTML 5.

<!DOCTYPE HTML>

Є це <br>, <br/> або <br />?


1689
2017-12-22 13:39


походження


Я тільки що бачив це питання та коментарі про w3schools та w3fools. Для того, що я бачив до цих пір, всі помилки, з якими повідомляли w3fools, були виправлені в w3schools. Тому вони фактично слухають. - Luis Alvarado
ІМО, w3schools це в середньому хороший підручник для початківців, оскільки вони використовують прості слова та приклади, на відміну від W3C Spec і MDN з усіма фантастичними словами та важкодоступними ідеями. - Derek 朕會功夫
Для кого, хто проти школярів, які ваші пропозиції щодо альтернатив? - chainwork
Використовувати @ chainwork htmldog.com - Jung3o
Ось офіційний W3 HTML5 стандарт, пов'язаний з такими елементами, як br (void elements): dev.w3.org/html5/markup/syntax.html#void-element A / (косу риски) перед> є необов'язковим, а будь-яка чи інша кількість пробілів перед / є необов'язковою. Це означає, що ви можете писати - <br/> або <br /> або <br /> тощо. - Ignas2526


Відповіді:


Просто <br> достатньо.

Інші форми є для сумісності з XHTML; щоб це було можливим для написання того ж коду, що і XHTML, і він також працює як HTML. Деякі системи, які генерують HTML, можуть бути засновані на генераторах XML, і, отже, вони не мають можливості виводити лише голі <br> тег; якщо ви використовуєте таку систему, це добре використовувати <br/>, це просто не потрібно, якщо вам це не потрібно.

Однак дуже мало людей насправді використовують XHTML. Вам потрібно подати ваш вміст як application/xhtml+xml для того, щоб її інтерпретувати як XHTML, і це не буде працювати в старих версіях IE - це також означає, що будь-яка невелика помилка, яку ви зробите, не дозволить відображати вашу сторінку в браузерах, які підтримують XHTML. Отже, більша частина того, що виглядає як XHTML в Інтернеті, насправді обслуговується та інтерпретується як HTML. Побачити Обслуговування XHTML як text / html вважається шкідливим для деякої додаткової інформації.


1293
2017-12-22 13:42



"Вважається шкідливим" есе вважається шкідливим! - meyerweb.com/eric/comment/chech.html - Michael Krelin - hacker
Але наявність дійсного xml не має на увазі порція xhtml, у всякому разі. Це може бути корисним для всіх видів локальної попередньої обробки. - Michael Krelin - hacker
Так, але вам потрібно дуже обережно обробляти HTML як XML. Вони різні мови, і тільки підмножина з кожного сумісна. Наприклад, в XML, <br/> такий же, як і <br></br>, але останній недійсний HTML. - Brian Campbell
Брайан, ідея полягала в тому, що ви може Ваш HTML-файл має бути добре сформованим xml, це все. Звичайно, перетворюючи один на інший, ви повинні переконатися, що він все ще дійсний, але чи варто згадати це? :) - Michael Krelin - hacker
@ Марко: Так, я не знав document.write  не працює в xhtml - спасибі за обмін. Я погоджуюсь, що для webapps було б нерозумно спробувати і робити що-небудь без Javascript, але я намагався сказати, що веб-сайти, на які покладено майже 100% відсотків на Javascript, є більш крихкий і може вийти з ладу, коли користувачі відключать JavaScript (або використовують старі телефони або щось) - Michael0x2a


Я думаю, ця цитата з HTML 5 Reference Draft дає відповідь:

Деякі елементи, однак, заборонені   від будь-якого вмісту взагалі.   Вони відомі як недійсні елементи. В   HTML, вищезгаданий синтаксис не може бути використаний   для недійсних елементів. Для таких елементів   кінцевий тег повинен бути опущений, оскільки   елемент автоматично закривається   аналізатор Такі елементи включають,   серед іншого, br, hr, посилання та мета

Приклад HTML:

<link type="text/css" rel="stylesheet" href="style.css">

У XHTML - синтаксичний XML   вимоги диктують, що це має бути   явно виражено, використовуючи або явний   кінцевий тег, як зазначено вище, або порожній   синтаксис елемента Це досягається шляхом   Вставити косу риску в кінці   запустити тег безпосередньо перед праворуч   кутовий кронштейн

Приклад:

<link type="text/css" href="style.css"/>

Автори можуть за бажанням вибрати використання   цей же синтаксис для елементів void в   Синтаксис HTML також. Деякі автори   також оберіть включити пробіл   перед косі риску, але це не так   необхідний (Використовуючи пробіл у цьому   Мода - це звичка, успадкована від   інструкції щодо сумісності в XHTML   1.0, Додаток C.)


195
2017-12-22 13:44



Отже, відповідь полягає в тому, щоб коду бажано без косу риси і простору, але з косу рискою (з пробілом або без нього) - необов'язково? - Eikern
Ось як я це читав, так. - Daan
Мені подобається те, що специфікація не є особливо специфічною (на цьому етапі) "мей, роби, що ти хочеш!" - Matt Ellen
Оскільки це необов'язково, мені подобається більше /> тому що це добре для читабельності. - BrunoLM
Мені подобається явно закривати мої теги без будь-якої причини, крім того, що він відчуває себе правильним і має сенс, коли я читаю / пишу код. Мені приємно, що посилання на проект HTML5 узгоджується з мною. - Syntax Error


XML не дозволяє відкривати теги, тому це робить <br> трохи гірше двох інших. Два інших є приблизно еквівалентними, а другий - зручнішим для сумісності зі старими браузерами. Власне, простір раніше / це найкраще для сумісності, але я думаю, що це має сенс тільки для тегів, які мають атрибути. Так що я теж скажу <br/> або <br />, залежно від того, що задовольняє вашу естетику.

Підсумовуючи це, всі три діють, перша - трохи менш "портативна".

Редагувати: Тепер ми всі божемося про специфікації, я думаю, варто зазначити, що згідно з dev.w3.org:

Початкові теги складаються з наступного   частин, точно в наступному порядку:

  1. Символ "<".
  2. Назва тегу елемента.
  3. Необов'язково, один або кілька атрибутів, кожен з яких повинен бути   передує один або більше простору   персонажів.
  4. Необов'язково, один або більше пробіл.
  5. Необов'язково, "/" символ, який може бути присутнім тільки, якщо   елемент є недійсним елементом.
  6. А ">" символ.

119
2017-12-22 13:42



HTML насправді не XML, просто дуже близько до нього. - tloach
Так, це не так. Але / це загальний знаменник тут. Спеціально HTML5 дозволяє використовувати /: "Необов'язково," / "символ, який може бути присутнім лише в тому випадку, якщо елемент є недійсним елементом". - Michael Krelin - hacker
Адвокат, я б сказав, що специфікація HTML5 близька до XML-відповідності. - Michael Krelin - hacker
Я просто хотів би додати, що як на XML, так і на HTML, ML означає Markup Language. Причиною є настільки багато їх взаємозв'язку з тим, що вони обидва були визначені з використанням SGML (стандартизована узагальнена мова розмітки), але не багато хто зараз це пам'ятають ... - John Vincent
@BennyNeugebauer, Якщо ви використовуєте регулярний вираз для аналізу html, ви більше чи менше можете покладатися на щастя, а не на правильно закриті теги ;-) - Michael Krelin - hacker


В HTML (до HTML 4): використовувати <br>

В HTML 5: <br> краще, але <br/> і <br /> також прийнятний

В XHTML: <br /> є кращим. Може також використовувати <br/> або <br></br>

Примітки:

  • <br></br> недійсний в HTML 5, він буде розглядатися як два рядки переривань.
  • XHTML є чутливим до регістру, HTML не чутливий до регістру.
  • Для зворотної сумісності деякі старі веб-переглядачі могли б проаналізувати XHTML як HTML-файл і не працювати <br/> але ні <br />

Довідка:


88
2017-12-30 05:40



перевірив посилання, найкращим підходом є <br>, але де це говорить <br/> це неприйнятно? - JackDev
Щоб уточнити, для XML-сумісного синтаксису <br/> і <br /> (з пробілом) рівні, без будь-яких переваг. Див XML 1.0 Спец. Пробіл (SPACE, вкладка або LINE FEED) перед /> є необов'язковим, без будь-яких уподобань. - Basil Bourque
Чи можете ви навести посилання на синтаксис, що не є XML-документом, який є переважним у HTML5? Це новини для мене. Необхідна підтримка суворої відповідності XML була головною метою HTML5, як я пам'ятаю. Може, я пропустив щось на HTML проти XHTML документ на whatwg.org або Розміри W3C Polyglot: надійний профіль словника HTML5 на W3C - Basil Bourque
@BasilBourque Щоб повторно повторити те, що я сказав у іншому місці для вас. Прочитайте фактичну специфікацію в тегах та елементах у форматі HTML5, і ви ніколи не знайдете ніяких рекомендацій або пропозицій, щоб вимагати або пропонувати використовувати косу риску закриття для цих тегів. Якщо ви хочете використовувати XML або XHTML, то ви не використовуєте HTML, і це інша історія. НЕ використовуйте косу риску закриття для цих тегів HTML. В іншому місці, специфікація говорить, що ви можете поставити один там, але це нічого не означає, нічого не робить, і браузери не наказують ігнорувати його. Тому безглуздо і безглуздо робити будь-яке використання його так само безглуздо і марно. - Rob
@Роб Так Розділ 8.1.2.1. Запустіть теги від Розділ 8. Синтаксис HTML документа HTML 5.2 Рекомендація W3C від 14 грудня 2017 р, опублікований W3C, не є фактичною специфікацією HTML? Порадьте, будь ласка. - Basil Bourque


Відповідно до Спец очікувана форма є <br> для HTML 5, але допускається коса риска закриття.


52
2017-12-22 13:44





XML вимагає, щоб всі теги мали відповідний тег закриття. Отже, існує спеціальний синтаксис коротких рухів для тегів без внутрішнього вмісту.

HTML5 не є XML, тому воно не повинно ставити таку вимогу. Також немає HTML 4.01.

Наприклад, в Специфікації HTML5, всі приклади з br використовувати тег <br> синтаксис, ні <br/>.

UPD Насправді <br/> є дозволено в HTML5. 9.1.2.1, 7.


19
2017-12-22 13:48



"HTML5 не є XML, тому воно не повинно ставити таку вимогу". Чи правильно це чи ні, залежить від інтерпретації слова "HTML5". Якщо ми говоримо про HTML5 як мову, то це твердження є правильним. Якщо ж ми говоримо про HTML5 як специфікацію, то це твердження невірно. Специфікація HTML5 визначає "словниковий запас і пов'язані API для HTML та XHTML". Я знаю, що це трохи похмуро, я не кажу, що ця відповідь неправильна, просто дайте додаткову інформацію для читача. - Christian Hujer


Я рекомендую використовувати <br /> з наступних причин:

1) Текстові та XML-редактори, які підкреслюють синтаксис XML у різних кольорах, будуть висвітлюватися правильно з <br />, але це не завжди так, якщо ви використовуєте <br>

2) <br /> є зворотним-сумісним з XHTML і добре сформований HTML (тобто: XHTML) часто простіше перевіряти на наявність помилок та налагодження

3) Деякі старі синтаксичні аналізатори та деякі специфікації кодування вимагають місця перед закриттям косою риси (наприклад: <br /> замість <br/>), наприклад, специфікація кодування WordPress Plugin: http://make.wordpress.org/core/handbook/coding-standards/html/

Я, мій досвід, я ніколи не стикався з випадками, коли використання <br /> є проблематичним, однак існує багато випадків, коли <br/> або особливо в <br> можуть бути проблемами в старих веб-переглядачах та інструментах.


13
2018-01-16 17:43



Добре сформований HTML не XHTML. - jmarkmurphy
XHTML - це добре сформований HTML за визначенням. XHTML дотримується правил XML, згідно w3schools "XML є мовою розмітки, де документи повинні бути правильно позначені (бути" добре сформованими ") ... ... Поєднуючи сильні сторони HTML та XML, XHTML був розроблений. XHTML - це HTML-формат, перероблений як XML. " (побачити w3schools.com/html/html_xhtml.asp) - Kmeixner
HTML може бути добре сформований, але не є дійсним XML. W3Schools не завжди є найбільш авторитетним посиланням. - jmarkmurphy
Професор університетського курсу інформатики з веб-програмування, який я взяв у 1997 році, також стверджував, що xhtml - добре сформований html. Я не знаю, де ви отримуєте свою інформацію, чи можете ви навести будь-які офіційні джерела в Інтернеті для резервного копіювання вашої претензії? - Kmeixner
<br> і <hr> цілком правильні і добре сформовані HTML. Вони не є дійсними тегами XML. Характеристики HTML під синтаксисом HTML говорять, що елементи недійсних (наприклад, <або> <hr>) можуть мати a / персонаж, що безпосередньо передує фіналу >. Але це не має ефекту. Це ігнорується, якщо воно там. Якщо / був бажаним шматочком синтаксису, як каже стандарт shouldа не may. - jmarkmurphy