Закрытие тегов в 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?!
Ответы
Ответ 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>
является бессмысленным)