Разрешены ли divs и промежутки внутри элементов формы?

Я задаю этот вопрос, чтобы проверить правильность моего HTML. Я могу очень хорошо попробовать это (и у меня есть, и это возможно), но мне просто интересно, разрешено ли это в HTML. Если нет, то как можно имитировать элемент div или span внутри формы? Использование blockquote?

Ответ 1

form является элементом уровня блока в HTML. Как правило, элементы уровня блока позволяют использовать как блочные, так и встроенные дочерние элементы. И div, и span являются действительными дочерними элементами form.

В Интернете есть много ресурсов, чтобы узнать больше об этой теме, например:

http://www.w3.org/TR/html4/struct/global.html#h-7.5.3

Это может также помочь вам прочитать о коробке, так как это одна из самых фундаментальных концепций веб-дизайна/разработки.

http://www.w3.org/TR/CSS2/box.html

Ответ 2

Да, вы можете. И это также "официально разрешено" стандартом XHTML, если вы посмотрите на XHTML XSD, вы найдете

<xs:complexType name="form.content">
  <xs:annotation>
    <xs:documentation>
      form uses "Block" excluding form
    </xs:documentation>
  </xs:annotation>
  <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:group ref="block"/>
    <xs:group ref="misc"/>
  </xs:choice>
</xs:complexType>

"block" включает div и "misc" содержит span. В части "документация" указывается одна конкретная вещь, которую вам не разрешено делать: вставьте a form в другую.

Ответ 3

Да, это действительно так, и вы можете использовать любое количество div, span или blockquotes внутри формы. Вы всегда можете использовать службу проверки валидности W3C, чтобы проверить свой html.

Например:

<body>
    <form id="Form1">
    <div id="wrap">
         <div id="content-wrap" class="content-wrap-admin">
         </div>
    </div>
    </form>
</body>

Ответ 4

Я должен исправить ответ тиснение.

В XHTML 1.0 Strict DTD, который он цитирует, группа misc не относится к встроенным элементам. Вместо этого он ссылается на следующие 4 элемента: noscript, ins, del и script.

<!ENTITY % misc.inline "ins | del | script">
<!ENTITY % misc "noscript | %misc.inline;">

Итак, чтобы ответить на вопрос, XHTML 1.0 Strict не позволяет span элементам внутри элементов form. Вам нужно будет обернуть их внутри элементов блока, таких как p, dip или fieldset.

Это не относится к XHTML 1.0 Transitional. Действительно, DTD указывает, что встроенные элементы разрешены внутри элементов form:

<!ENTITY % form.content "(#PCDATA | %block; | %inline; | %misc;)*">

Для справки: XHTML 1.0 - DTD

Ответ 5

Да.

Вы даже попробовали это самостоятельно?