Zastanawiam się tylko, co myślisz o DIV-tagu wewnątrz FORM-tagu?
Potrzebuję czegoś takiego:
<form>
<input type="text"/>
<div> some </div>
<div> another </div>
<input type="text" />
</form>
Czy używanie DIV
wewnątrz jest powszechną praktyką, FORM
czy potrzebuję czegoś innego?
html
semantic-markup
demas
źródło
źródło
Całkowicie dopuszczalne jest używanie DIV wewnątrz
<form>
tagu.Jeśli spojrzymy na domyślny CSS 2.1 stylów ,
div
ip
to zarówno wdisplay: block
kategorii. Patrząc na specyfikację HTML 4.01 elementu formularza, zawierają one nie tylko<p>
tagi, ale także<table>
tagi, więc oczywiście<div>
spełniają te same kryteria. W dokumentacji znajduje się również<legend>
tag.Na przykład poniższy kod przechodzi weryfikację HTML4 w trybie ścisłym:
<!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>
źródło
Możesz użyć a
<div>
w formularzu - nie ma problemu .... ALE jeśli zamierzasz użyć<div>
jako etykiety dlainput
nie ...label
jest znacznie lepszą opcją:<label for="myInput">My Label</label> <input type="textbox" name="MyInput" value="" />
źródło
Błędem jest umieszczanie <input> jako bezpośredniego elementu potomnego <form>
A tak przy okazji, <input / > może się nie powieść na jakimś doctype
Sprawdź to za pomocą http://validator.w3.org/check
typ dokumentu nie zezwala tutaj na element „INPUT”; brak jednego z tagów początkowych „P”, „H1”, „H2”, „H3”, „H4”, „H5”, „H6”, „PRE”, „DIV”, „ADDRESS”
<input type = "text" />
Wspomniany element nie może pojawić się w kontekście, w którym go umieściłeś; pozostałe wymienione elementy są jedynymi, które są tam dozwolone i mogą zawierać wspomniany element. Może to oznaczać, że potrzebujesz elementu zawierającego lub być może zapomniałeś zamknąć poprzedniego elementu.
Jedną z możliwych przyczyn tego komunikatu jest próba umieszczenia elementu blokowego (takiego jak „<p>” lub „<table>”) wewnątrz elementu wbudowanego (takiego jak „<a>”, „<span>” ”lub„ <font> ”).
źródło
Twoje pytanie nie dotyczy tego, co chcesz umieścić w tagach DIV, prawdopodobnie dlatego otrzymałeś niepełne / błędne odpowiedzi. Prawda jest taka, że możesz, jak powiedział Royi, umieścić tagi DIV w swoich formularzach. Nie chcesz tego robić na przykład dla etykiet, ale jeśli masz formularz z wieloma polami wyboru, który chcesz rozłożyć na trzy kolumny, to jak najbardziej użyj tagów DIV (lub SPAN, HEADER itp. .), aby uzyskać wygląd i styl, który próbujesz osiągnąć.
źródło
Również DIV - MDN
Możesz użyć div wewnątrz formularza, jeśli mówisz o używaniu div zamiast table, to Google o projektowaniu stron internetowych bez tablic
źródło
Jak powiedzieli inni, wszystko jest w porządku, możesz to zrobić dobrze. Dla mnie osobiście staram się zachować formę hierarchicznej struktury, w której moje elementy
div
są najbardziej zewnętrznym elementem macierzystym. Staram się używać tylkotable
p
ul
ispan
wewnątrz formularzy. Po prostu ułatwia mi śledzenie relacji rodzic / dzieci na moich stronach internetowych.źródło
Zauważyłem, że za każdym razem, gdy zaczynam tag formularza wewnątrz elementu div, kolejne rodzeństwo div nie będzie częścią formularza, kiedy będę sprawdzać (przegląd chrome), odtąd mój formularz nigdy nie zostanie przesłany.
<div> <form> <input name='1st input'/> </div> <div> <input name='2nd input'/> </div> <input type='submit'/> </form>
Pomyślałem, że jeśli umieszczę tag formularza poza DIV, zadziała. Znacznik formularza należy umieścić na początku nadrzędnego DIV. Jak pokazano poniżej.
<form> <div> <input name='1st input'/> </div> <div> <input name='2nd input'/> </div> <input type='submit'/> </form>
źródło
Absolutnie nie! Wyrenderuje się, ale nie zweryfikuje. Użyj etykiety.
To jest niepoprawne. Nie jest dostępny. Widzisz to na niektórych stronach internetowych, ponieważ niektórzy programiści są po prostu leniwi. Kiedy zatrudniam programistów, jest to jedna z pierwszych rzeczy, które sprawdzam w pracy kandydatów. Formularze są nieprzyjemne, ale poświęć trochę czasu i naucz się wykonywać je prawidłowo
źródło
Nie, nie jest
<div>
tagi są zawsze nadużywane przy tworzeniu układu strony. Jego symbolicznym celem jest podzielenie sekcji / części strony, aby można było dodać lub zastosować do niej oddzielny styl. [w3schools Doc] [W3C]W dużej mierze zależy to od tego, co masz
some
i co maszanother
.HTML5 ma bardziej logiczne tagi znaczeniowe, zamiast zwykłych tagów układu.
section
,header
,nav
,aside
Wszystko ma swoje własne znaczenie semantyczne do niego. I są używane przeciwko<div>
źródło
<select>
pasuje idealnie, jeśli istnieją wybory, jeśli nie,<a>
lub<buttons>
są dobre.