FORM içinde DIV kullanmak doğru mu?


86

FORM etiketi içindeki DIV etiketi hakkında ne düşündüğünüzü merak ediyorum.

Bunun gibi bir şeye ihtiyacım var:

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

DIVİçeride kullanmak genel bir uygulama mı FORMyoksa farklı bir şeye ihtiyacım var mı?

Yanıtlar:


134

Tamamen iyi.

form(Aynı zamanda * sadece giriş tipi kontrolleri sunacak Textarea, Selectvb ...).

A diviçinde endişelenmenize gerek yok form.


2
Bir div içinde bir form kullanmaya ne dersiniz?
Kick Buttowski

1
@KickButtowski Bir div içindeki form hiç sorun değil. Bir HTML doğrulayıcıda kendiniz deneyebilirsiniz. Ayrıca, modern sayfalar div'ler üzerine kurulduğu için bu günlerde neredeyse kaçınılmaz. İzin verilmezse, basit bir sarmalayıcı veya formu bir kaba yerleştirmek sayfayı zaten geçersiz kılar.
Nrzonline

1
Formun içine
div'ler

28

Bir <form>etiketin içinde bir DIV kullanılması tamamen kabul edilebilir .

Varsayılan bakarsak CSS 2.1 stil sayfasında , divve pher ikisi de display: blockkategori. Daha sonra, form öğesi için HTML 4.01 spesifikasyonuna bakıldığında, bunlar yalnızca <p>etiketleri değil aynı zamanda etiketleri de içerdiğinden <table>, elbette <div>aynı kriterleri karşılayacaktır. <legend>Dokümantasyondaki formun içinde bir etiket de vardır .

Örneğin, aşağıdakiler katı modda HTML4 doğrulamasını geçer:

<!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>

11

<div>Bir form içinde a kullanabilirsiniz - burada sorun yoktur .... AMA, eğer dont <div>etiketini kullanacaksanız input... labelçok daha iyi bir seçenektir:

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

3

<input> 'un bir <form>' un doğrudan alt öğesi olarak olması yanlış

Ve bu arada <input / > bazı belge türlerinde başarısız olabilir

Http://validator.w3.org/check ile kontrol edin


belge türü burada "INPUT" öğesine izin vermiyor; "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADRES" başlangıç ​​etiketinden biri eksik

<input type = "text" />

Bahsedilen öğenin, onu yerleştirdiğiniz bağlamda görünmesine izin verilmez; diğer bahsedilen öğeler, hem orada izin verilenler hem de bahsedilen öğeyi içerebilirler. Bu, kapsayıcı bir öğeye ihtiyacınız olduğu veya muhtemelen önceki bir öğeyi kapatmayı unuttuğunuz anlamına gelebilir.

Bu mesajın olası nedenlerinden biri, blok düzeyinde bir öğeyi ("<p>" veya "<table>" gibi) bir satır içi öğenin ("<a>", "<span> gibi) içine koymaya çalışmış olmanızdır. "veya" <font> ").


3

Sorunuz DIV etiketlerine ne koymak istediğinizi ele almıyor, muhtemelen bu nedenle bazı eksik / yanlış yanıtlar aldınız. Gerçek şu ki, Royi'nin dediği gibi, formlarınızın içine DIV etiketleri koyabilirsiniz. Örneğin, bunu etiketler için yapmak istemezsiniz, ancak üç sütun halinde düzenlemek istediğiniz bir grup onay kutusu içeren bir formunuz varsa, o zaman kesinlikle DIV etiketlerini (veya SPAN, HEADER, vb.) Kullanın. .) elde etmeye çalıştığınız görünümü ve hissi gerçekleştirmek için.


3

Tanım ve Kullanım

Etiketi, bir HTML belgesindeki bir bölümü veya bölümü tanımlar.

Etiketi, blok elemanlarını stillerle formatlamak için gruplamak için kullanılır. http://www.w3schools.com/tags/tag_div.asp

Ayrıca DIV - MDN

HTML öğesi (veya HTML Belge Bölme Öğesi), doğası gereği hiçbir şeyi temsil etmeyen akış içeriği için genel bir kaptır. Öğeleri stil amacıyla gruplamak için (sınıf veya kimlik özniteliklerini kullanarak) veya lang gibi öznitelik değerlerini paylaştıkları için kullanılabilir. Yalnızca başka hiçbir anlamsal öğe (veya gibi) uygun olmadığında kullanılmalıdır.

Div inside form kullanabilirsiniz, eğer table yerine div kullanmaktan bahsediyorsanız Tableless web tasarımı hakkında google


3
Gerçekten mi? w3schools referansı?
Adonis K. Kakoulidis

2
@AdonisK., Neden w3schools'a atıfta bulunulmaması gerektiği hakkında her şeyi biliyorum, ancak bunun bir eksi oyu hak etmediğine inanıyorum, bu tartışmayı Meta'da görmenizi rica ediyorum: meta.stackexchange.com/questions/120025/… Ayrıca MDN'den DIV referansını güncelledim
Habib

1

Diğerlerinin dediği gibi, her şey yolunda, gayet iyi yapabilirsiniz. Şahsen benim için div, en dıştaki unsur olan öğelerimle hiyerarşik bir yapı biçimini korumaya çalışıyorum . Sadece table p ulve spaniç formları kullanmaya çalışıyorum . Sadece ben içeride ebeveyn takip / çocuk ilişkileri tutmak için kolay hale getirir my web sayfalarının.


0

Bir div içindeki form etiketini ne zaman başlatsam, sonraki div kardeşlerin, denetlediğimde (chrome inspect) formun bir parçası olmayacağını ve bundan sonra formumun asla gönderilmeyeceğini fark ettim.

<div>
<form>
<input name='1st input'/>
</div>
<div>
<input name='2nd input'/>
</div>
<input type='submit'/>
</form>

Form etiketini DIV'lerin dışına koyarsam işe yarayacağını düşündüm. Form etiketi, üst DIV'nin başlangıcına yerleştirilmelidir. Aşağıda gösterildiği gibi.

<form>
<div>
<input name='1st input'/>
</div>
<div>
<input name='2nd input'/>
</div>
<input type='submit'/>
</form>

-5

Kesinlikle hayır! Oluşturacak, ancak doğrulanmayacaktır. Bir etiket kullanın.

Doğru değil. Erişilemez. Bunu bazı web sitelerinde görüyorsunuz çünkü bazı geliştiriciler sadece tembel. Geliştiricileri işe alırken, adayların işlerinde kontrol ettiğim ilk şeylerden biri bu. Formlar kötüdür, ancak zaman ayırın ve bunları doğru şekilde yapmayı öğrenin


-8

Hayır değil

<div>etiketleri her zaman bir web düzeni oluşturmak için kötüye kullanılır. Sembolik amacı, sayfadaki bir bölümü / bölümü bölmek, böylece ona ayrı bir stil eklenebilir veya uygulanabilir. [w3schools Doc] [W3C]

Neye someve neye anothersahip olduğuna çok bağlı .

HTML5, düz düzen etiketlerine sahip olmak yerine daha mantıksal anlam etiketlerine sahiptir. section, header, nav, asideHer şey kendi semantik anlam buna gerek. Ve karşı kullanılır<div>


1
Katılmaya eğilimliyim. Orada birçok İşlerin olabilir html içine yapmak. Ancak bu gevşek yönergeler nedeniyle, kendimizi kodla dolu kodlu masalı web düzenleri karmaşasından kurtarırken buluyoruz. Web'in büyümesinin tek yolu, bize sunulan yeni yönergeleri izlemeye devam etmemizdir.
JT Smith

Web sayfasında bir alana ihtiyacım var. Kullanıcılar bu alanlara tıklar ve form girdileri üzerindeki değerleri ayarlar. Bu durum için hangi HTML öğesi uygundur?
demas

1
@demas, <select>Seçimler verilmişse, verilmezse <a>veya iyiyse, tanımınızın kullanımı için mükemmel uyuyor <buttons>.
Starx

27
-1 tamamen yanılıyorsunuz. HER BÜYÜK SİTE, bir form içinde div kullanır. html'de soruyla hiçbir ilgisi olmayan 5 örnek verdiniz. form içinde div içermeyen büyük bir site göster. bu sitedeki kişiler diğer kullanıcıları kontrol etmeden ve yanıltmadan cevaplar veriyor
Royi Namir

4
bir şeyi inşa etmemenin yolu, bir kural olarak, kurumsal kodun bunu nasıl yaptığına bakmaktır. Metin içermek için yalnızca bu div'leri kullanıyorsanız, metin form kontrolleri için geçerliyse bir etiket kullanın. değilse, p kullanın. anlambilim önemlidir. erişilebilirlik önemlidir.
albert
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.