Правильно ли использовать DIV внутри формы?

мне просто интересно, что вы думаете о DIV-tag внутри FORM-tag?

мне нужно что-то вроде этого:

<form>
  <input type="text"/>
  <div> some </div>
  <div> another </div>
  <input type="text" />
</form>

это общая практика, чтобы использовать DIV внутри FORM или мне нужно что-то другое?

9 ответов


Это совершенно нормально .

на form будет отправлять только элементы управления типа ввода (*также Textarea , Select, etc...).

вам не о чем беспокоиться div внутри form.


вполне приемлемо использовать DIV внутри <form> тег.

если вы посмотрите на значение по умолчанию CSS 2.1 таблица стилей, div и p находятся в


можно использовать <div> в форме - нет проблем .... но если вы собираетесь использовать <div> как метки input нет ... label гораздо лучший вариант:

<label for="myInput">My Label</label> 
<input type="textbox" name="MyInput" value="" />

неправильно иметь в качестве прямого дочернего элемента

и кстати /> может произойти сбой на некоторых doctype

проверьте это с http://validator.w3.org/check


тип документа не допускает здесь элемент "ввод"; отсутствует один из "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS" start-tag

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

одной из возможных причин этого сообщения является попытка поместить элемент уровня блока (например, "

" или "

") внутри встроенного элемента (например, "", "" или "").

ваш вопрос не касается того, что вы хотите поместить в теги DIV, поэтому, вероятно, вы получили некоторые неполные/неправильные ответы. Правда в том, что вы можете, как сказал Ройи, поместить теги DIV внутри своих форм. Например, вы не хотите делать это для меток, но если у вас есть форма с кучей флажков, которые вы хотите разложить на три столбца, то обязательно используйте теги DIV (или SPAN, HEADER и т. д.) чтобы добиться того, чего вы пытаетесь достичь.


определение и использование

тег определяет подразделение или раздел в HTML-документе.

тег используется для группировки блочных элементов для их форматирования стили. http://www.w3schools.com/tags/tag_div.asp

и DIV-MDN

элемент HTML (или элемент разделения документа HTML) является универсальный контейнер для содержимого потока, который является не представлять что угодно. Его можно использовать для группировки элементов для укладки цели (с использованием атрибутов class или id) или потому, что они разделяют значения атрибутов, такие как lang. Он должен использоваться только тогда, когда нет других семантический элемент (например, or ) уместен.

вы можете использовать div внутри формы, если вы говорите об использовании div вместо таблицы, то google о Tableless web design


как сказали другие, все хорошо, вы можете сделать это просто отлично. Для меня лично я стараюсь сохранить форму иерархической структуры с моими элементами с div быть внешним самым родительским элементом. Я стараюсь использовать только table p ul и span внутри формы. Просто мне легче отслеживать отношения между родителями и детьми внутри мой веб-страниц.


абсолютно нет! Он будет визуализировать,но не будет подтверждать. Используйте ярлык.

Это неправильно. Она недоступна. Вы видите это на некоторых сайтах, потому что некоторые разработчики просто ленивы. Когда я нанимаю разработчиков, это одна из первых вещей, которые я проверяю в работе кандидатов. Формы противные, но не торопитесь и научитесь делать их правильно


нет, это не

<div> теги всегда злоупотребляют для создания веб-макета. Его символическая цель-разделить раздел / часть страницы, чтобы добавить или применить к ней отдельный стиль. [w3schools док][консорциума W3C]

это сильно зависит от того, что ваш some и another есть.

HTML5, имеет более логически бирки значения, вместо иметь простые теги макета. The section, header, nav, aside у всего есть свой смысловой смысл. И используются против <div>