Подтвердить что ты не робот

Закрытие тегов в HTML5

В HTML5 по-прежнему подходит закрыть тег <br> с помощью <br />?

Это, очевидно, также относится ко всем другим одиночным тегам. Я понимаю, что это фактически не влияет на то, как работает материал, но что здесь лучше всего?

someLines of txt <br>            // How you see a lot of people doing it
and then some <br />             // XHTML style! Should I still be doing this? 
ow im not done yet.. <br> </br>  // No one does this right? RIGHT?!
4b9b3361

Ответ 1

Из спецификация W3C для HTML:

  • Ниже приведен полный список элементов void в HTML:

    • area, base, br, col, command, embed, hr, img, input, keygen, link, meta, param, source, track, wbr
  • Элементы Void имеют только начальный тег; end теги не должны указываться для элементов void.

  • Стартовые теги состоят из следующих частей в точно следующем порядке:

    • A <.
    • Имя тега элементов.
    • Необязательно, один или несколько атрибутов, каждому из которых должно предшествовать один или несколько пробелов.
    • Необязательно, один или несколько символов пробела.
    • Необязательно, символ /, который может присутствовать только в том случае, если элемент является элементом void.
    • A >.

Из этого кажется, что мы можем использовать либо <br>, либо <br/>. Однако конечный тег </br> имеет значение не, поэтому не используйте <br> </br>.

Выполнение следующего через HTML Validation Service показывает как можно больше.

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Testing void elements</title>
</head>
<body>
    some lines of txt <br>
    and then some more <br />
    I'm not done yet... <br> </br> <!-- This line generates an error -->
</body>
</html>

Поэтому используйте либо <br>, либо <br/>, просто убедитесь, что вы используете их последовательно.

Изменить. Как отметил Брэд, <br /> также действителен XHTML, поэтому, возможно, лучше выбрать эту форму.

Ответ 2

IMHO Я считаю, что лучше всего придерживаться стандартов XHTML, даже закрывая так называемые элементы void, как указано @Alex. Если ваш код также действителен XML, вы можете найти лучшую поддержку инструмента для управления вашим кодом.

<br>  // not valid XML without a closing tag

<br /> // valid XML and I prefer this

<br></br>  // valid XML but unnecessary clutter

В любом случае, если вы должны запустить свой код через службу проверки HTML. Пока он действителен, вы тогда имеете дело только с стилем кодирования, из которого каждый будет иметь свой собственный уклон в этом вопросе.

[EDIT]

Чтобы прояснить мой ответ, я предлагаю использовать любой из этих заголовков XHTML...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

Если вы кодируете HTML5, клиенты/браузеры должны поддерживать строгий стандарт

Ответ 3

Более важно, чтобы вы были последовательны, если вы используете <!DOCTYPE html>, тогда теги, которые недействительны или закрываются, как говорят некоторые, будут обрабатываться вами парсером.

Решите один подход и придерживайтесь его, мы решили пойти с синтаксисом стиля xhtml, но мы не используем xhtml. Несмотря на то, что парсер более снисходителен к своим другим людям, которые должны понимать вашу разметку, поэтому, если у вас есть стандарт, и все покупают это, тогда все петь из того же листа гимнов.

Зачем нам нужны соглашения? Потому что все следующие действительны:

<META CHARSET=UTF-8>        
<META CHARSET=UTF-8 />      
<META CHARSET="UTF-8">      
<META CHARSET="UTF-8" />        
<meta charset=utf-8>        
<meta charset=utf-8 />      
<meta charset="utf-8">      
<meta charset="utf-8" />        
<MeTa CHARset=utF-8>

Еще одна вещь, о которой стоит подумать, - это атрибуты html5, мы решили использовать атрибуты булевого стиля в конце набора атрибутов и всегда использовать кавычки вокруг других, например:

<video id="vid1" data-someting="my_val" controls>

Таким образом, нам не нужно использовать избыточный синтаксис (на мой взгляд):

<video id="vid1" controls="controls">

Просто потому, что html5 позволяет нам оставить закрывающие теги, даже тег </p>, он не делает это правильно.

Я надеюсь, что вы решите пойти с синтаксисом xytml 'sytle' для вашего собственного здравомыслия!

Ответ 4

/ действителен и игнорируется в html 5 для void elements, из которых br - один, поэтому его полностью до вы, хотя лично я бы выбрался из привычки, как своеобразное наследие. (Тот факт, что его элемент void означает, что, как вы говорите, <br> </br> является бессмысленным)