Почему входной тег в HTMLПочему входной тег в HTML <input/> вместо <input></input>
<input value="something"/>
вместо
<input>something</input>
Или почему в р тег не
<p value="something"/>
вместо
<p>something</p>
Почему входной тег в HTMLПочему входной тег в HTML <input/> вместо <input></input>
<input value="something"/>
вместо
<input>something</input>
Или почему в р тег не
<p value="something"/>
вместо
<p>something</p>
Именно так оно и было спроектировано. По какой-то причине было принято решение использовать атрибут для хранения значения. Я считаю, что это также преимущества, когда дело доходит до конечных и ведущих пробелов - проще в атрибуте. Стандартом с тегами является игнорирование пробела, что нежелательно в поле ввода, где вы хотите захватить весь текст. Другая проблема с тегом - это начало и конец тегов по нескольким строкам.
Я думаю, вы можете посмотреть на это: http://www.w3.org/TR/html5/syntax.html#elements-0
Там существуют различные виды HTML элементов, вы должны следовать правилам.
Эти два тега пытаются сделать принципиально разные вещи с их «значением».
A p
тег - это средство разделения блока текста. Он и другие «закрывающие теги» (т. Е. Теги, которые имеют </tag>
, например p
), сообщают парсеру, что этот текст что-то означает. Принимая это во внимание, формат имеет смысл: синтаксический анализатор видит теги <p>
и знает, что «все отсюда, пока я не вижу тег </p>
, семантически абзац, действуйте соответствующим образом».
Тег input
, однако, не пытается применить значение к любому тексту; тег - значение. С точки зрения парсера, видя, что тег <input />
говорит, что «замените это на элемент формы». Это основное поведение самозакрывающихся тегов: они не добавляют смысл в текст, они добавляют контент (из одной формы или другого) ко всему документу. Поэтому наличие закрывающего тега для input
не имеет смысла; input
не предоставляет дополнительного значения для любого текста, вместо этого в тексте говорится что-то значимое относительно элемента input
. Следовательно, это атрибут.
Тег <input/>
использовался вместо того, чтобы писать его открытые/закрытые теги из-за того, что на самом деле делает тег. Тег ввода не должен занимать какой-либо дочерний элемент, поэтому вам нужно написать больше? В отличие от <div>
<span>
и <table>
тегов, которые все еще могут содержать больше дочерних элементов, по сравнению с тегом <input>
, который является автономным элементом, который по какой-то причине не нуждается. другим способом, браузеры также поддерживают писать так: <input type="text"></input>
Эти типы тегов называются автономные теги, которые не обертывают содержимое между открывающим и закрывающим тегами. например, В <h1>East</h1>
У нас есть два тега. В автономных тегах содержимое вставляется в качестве значения атрибута value внутри открытого тега. Например, <input type="submit" value="Send" />
и перерыв <br />
теги.
Непонятно, что вы просите. –
Это технически недействительно, хотя, вероятно, принято. [См. Здесь] (http://stackoverflow.com/a/3558200) для быстрого обзора. Любой тег, который действителен как « », является либо «тегом void», либо просто имеет только атрибуты, такие как 'input'. На самом деле,/является просто остатком от строгих xml дней. –
nerdwaller
Этот вопрос кажется не по теме, потому что речь идет о предпосылках для языковой конструкции, а не о практическом программировании. –