Je me demande simplement ce que vous pensez de DIV-tag à l'intérieur de FORM-tag?
J'ai besoin de quelque chose comme ça:
<form>
<input type="text"/>
<div> some </div>
<div> another </div>
<input type="text" />
</form>
Est-ce une pratique générale d'utiliser à l' DIV
intérieur FORM
ou j'ai besoin de quelque chose de différent?
html
semantic-markup
demas
la source
la source
Il est tout à fait acceptable d'utiliser un DIV à l'intérieur d'une
<form>
balise.Si vous regardez la feuille de style CSS 2.1 par défaut ,
div
et que vousp
êtes tous les deux dans ladisplay: block
catégorie. Ensuite, en regardant la spécification HTML 4.01 pour l'élément de formulaire, ils incluent non seulement des<p>
balises, mais des<table>
balises, donc bien sûr<div>
, répondraient aux mêmes critères. Il y a aussi une<legend>
balise à l'intérieur du formulaire dans la documentation.Par exemple, ce qui suit passe la validation HTML4 en mode strict:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Test</title> </head> <body> <form id="test" action="test.php"> <div> Test: <input name="blah" value="test" type="text"> </div> </form> </body> </html>
la source
Vous pouvez utiliser un
<div>
dans une forme - il n'y a pas de problème .... MAIS si vous allez utiliser le<div>
comme l'étiquette de lainput
Do not ...label
est une option beaucoup mieux:<label for="myInput">My Label</label> <input type="textbox" name="MyInput" value="" />
la source
Il est faux d'avoir <input> comme enfant direct d'un <form>
Et au fait, <input / > peut échouer sur certains doctype
Vérifiez-le avec http://validator.w3.org/check
le type de document n'autorise pas l'élément "INPUT" ici; il manque l'un des balises de début "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS"
<input type = "text" />
L'élément mentionné n'est pas autorisé à apparaître dans le contexte dans lequel vous l'avez placé; les autres éléments mentionnés sont les seuls qui y sont tous deux autorisés et peuvent contenir l'élément mentionné. Cela peut signifier que vous avez besoin d'un élément conteneur, ou peut-être que vous avez oublié de fermer un élément précédent.
Une des causes possibles de ce message est que vous avez tenté de placer un élément de niveau bloc (tel que "<p>" ou "<table>") dans un élément en ligne (tel que "<a>", "<span> "ou" <font> ").
la source
Votre question ne traite pas de ce que vous voulez mettre dans les balises DIV, ce qui explique probablement pourquoi vous avez reçu des réponses incomplètes / erronées. La vérité est que vous pouvez, comme l'a dit Royi, mettre des balises DIV à l'intérieur de vos formulaires. Vous ne voulez pas faire cela pour les étiquettes, par exemple, mais si vous avez un formulaire avec un tas de cases à cocher que vous souhaitez mettre en page en trois colonnes, alors utilisez certainement les balises DIV (ou SPAN, HEADER, etc. .) pour obtenir l'apparence et la sensation que vous essayez d'obtenir.
la source
Aussi DIV - MDN
Vous pouvez utiliser div à l'intérieur du formulaire, si vous parlez d'utiliser div au lieu de table, puis google sur la conception Web sans table
la source
Comme les autres l'ont dit, tout va bien, vous pouvez le faire très bien. Pour moi personnellement, j'essaye de garder une forme de structure hiérarchique avec mes éléments avec un
div
être l'élément parent le plus extérieur. J'essaie d'utiliser uniquementtable
p
ul
et à l'span
intérieur des formulaires. Cela me permet simplement de suivre plus facilement les relations parents / enfants dans mes pages Web.la source
J'ai remarqué que chaque fois que je commençais la balise form à l'intérieur d'un div, les frères div suivants ne feraient pas partie du formulaire lorsque j'inspecte (chrome inspect) désormais mon formulaire ne serait jamais soumis.
<div> <form> <input name='1st input'/> </div> <div> <input name='2nd input'/> </div> <input type='submit'/> </form>
J'ai pensé que si je mettais la balise de formulaire en dehors des DIV, cela fonctionnait. La balise form doit être placée au début de la DIV parent. Comme illustré ci-dessous.
<form> <div> <input name='1st input'/> </div> <div> <input name='2nd input'/> </div> <input type='submit'/> </form>
la source
Absolument pas! Il rendra, mais il ne validera pas. Utilisez une étiquette.
Ce n'est pas correct. Ce n'est pas accessible. Vous le voyez sur certains sites Web parce que certains développeurs sont simplement paresseux. Lorsque j'embauche des développeurs, c'est l'une des premières choses que je vérifie dans le travail des candidats. Les formulaires sont méchants, mais prenez le temps et apprenez à les faire correctement
la source
Non ce n'est pas
<div>
les balises sont toujours utilisées de manière abusive pour créer une mise en page Web. Son but symbolique est de diviser une section / partie dans la page afin qu'un style distinct puisse y être ajouté ou appliqué. [Document w3schools] [W3C]Cela dépend fortement de ce que vous
some
etanother
.HTML5, a des balises de signification plus logiques, au lieu d'avoir des balises de mise en page simples. Le
section
,header
,nav
,aside
tout ont leur propre signification sémantique pour lui. Et sont utilisés contre<div>
la source
<select>
correspond parfaitement si les choix sont donnés, sinon<a>
ou<buttons>
sont bons.