Почему самозакрывающийся тег работает в HTML-документе? - PullRequest
0 голосов
/ 14 июня 2011

У меня есть HTML-документ:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml" >

В нем есть такие теги, как

<br />

Но я читаю, что этот тег является элементом XHTML.И все же это работает, почему?

Ответы [ 4 ]

5 голосов
/ 14 июня 2011

Исходный ответ, основанный на вопросе, который был написан до того, как персонаж был перемещен и полностью его изменил:

Но я читаю, что </br> является элементом XHTML.

Это не так.Is - это конечный тег для элемента.

<br /> будет самозакрывающимся тегом (представляющим весь элемент) в XHTML.В HTML 4 это означает то же самое, что и <br>&gt; (хотя большинство браузеров этого не уважают), а в HTML 5 / - это бессмысленный синтаксический сахар, чтобы люди, привыкшие к XHTML, были довольны.1017 * означает то же самое, что и <br></br> (последнее является ошибкой в ​​документах HTML).

И все же это работает, почему?

Браузеры совершают огромное количество ошибокисправление, чтобы попытаться справиться с плохой разметкой, которая была распространена в конце 90-х годов.

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

1 голос
/ 14 июня 2011

Браузерам не удалось реализовать парсеры, которые правильно обрабатывали HTML 4 и более ранние версии.

Они должны были обработать <br/> как «элемент br, за которым следует знак больше, чем знак», но вместо этого реализовать его как «элемент br с атрибутом /, что такое атрибут /? Это". Это привело к тому, что функция была помечена как что-то, чего следует избегать .

XHTML затем использовал ошибку для HTML-совместимого XHTML .

HTML 5 затем переопределил его как синтаксический сахар, чтобы наркоманы XHTML могли продолжать использовать синтаксис, к которому они привыкли.

0 голосов
/ 14 июня 2011

Это браузер, который избавляет от этих различий.В любом случае </br> с этой косой чертой неверен как в HTML, так и в XHTML.

По случаю http://www.w3schools.com/tags/tag_br.asp

 In HTML the <br> tag has no end tag.

 In XHTML the <br> tag must be properly
 closed, like this: <br />.
0 голосов
/ 14 июня 2011

Самозакрывающийся тег является допустимым форматом в XML

XHTML означает, что все теги должны быть закрыты

HTML
<br> valid
<br/> valid
XHTML
<br> invalid
<br/> valid

Отредактировано:

</br> is invalid anyway and you are lucky if browser fix it :)    
</br> is the same as <div id="gd"/>, both are invalid
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...