Onlar hakkında birçok efsane var. Doğruyu bilmek istiyorum. Aşağıdaki iki örnek arasındaki farklar nelerdir?
<input type='submit' value='text' />
<button type='submit'>text</button>
Onlar hakkında birçok efsane var. Doğruyu bilmek istiyorum. Aşağıdaki iki örnek arasındaki farklar nelerdir?
<input type='submit' value='text' />
<button type='submit'>text</button>
input
boş bir unsurdur. Kullanmayın <input />
, sadece kullanın <input>
.
type=submit
için button
bile bir endişe orada (o std bile parçası değildi olasılıkla çünkü. O zamanlar (AFAIK), diğer soru sorulduğunda).
Yanıtlar:
Efsanelerinizi nereden aldığınızdan emin değilim ama:
<button>
Olduğu gibi:
<button type="submit">(html content)</button>
IE6, bu düğme için tüm metni etiketler arasında gönderecek, diğer tarayıcılar yalnızca değeri gönderecektir. Kullanımı <button>
, size düğme tasarımına göre daha fazla düzen özgürlüğü sağlar. Tüm amaç ve amaçlarıyla ilk başta mükemmel görünüyordu, ancak çeşitli tarayıcı tuhaflıkları bazen kullanımını zorlaştırıyor.
Örneğinizde, IE6 text
sunucuya gönderir , diğer tarayıcıların çoğu hiçbir şey göndermez. Tarayıcılar arası uyumlu hale getirmek için kullanın <button type="submit" value="text">text</button>
. Daha da iyisi: değeri kullanmayın, çünkü HTML eklerseniz, sunucu tarafında ne alındığı oldukça karmaşık hale gelir. Bunun yerine, fazladan bir değer göndermeniz gerekiyorsa, gizli bir alan kullanın.
<input>
Olduğu gibi:
<input type="button" />
Varsayılan olarak, bu hiçbir şeyin yanında değildir. Formunuzu bile göndermeyecek. Yalnızca düğmeye metin yerleştirebilir ve CSS aracılığıyla ona bir boyut ve kenarlık verebilirsiniz. Orijinal (ve mevcut) amacı, formu sunucuya göndermeye gerek kalmadan bir komut dosyası yürütmekti.
<input>
Olduğu gibi:
<input type="submit" />
İlki gibi, ama aslında çevreleyen formu sunar.
<input>
Olduğu gibi:
<input type="image" />
Birincisi (gönder) gibi, aynı zamanda bir form da gönderecek, ancak herhangi bir resmi kullanabilirsiniz. Bu, bir formun gönderilmesi gerektiğinde resimleri düğme olarak kullanmanın tercih edilen yoluydu. Daha fazla kontrol <button>
için artık kullanılmaktadır. Bu, sunucu tarafı görüntü haritaları için de kullanılabilir, ancak bu günlerde nadirdir. Eğer kullandığınız zaman usemap
-attribute ve (veya bu özelliğe olmadan), tarayıcı sunucuya fare işaretçisi X / Y koordinatları gönderir (daha doğrusu anın düğmenin içinde fare işaretçisi konumu bunu tıklayın). Bu ekstraları görmezden gelirseniz, resim olarak gizlenmiş bir gönder düğmesinden başka bir şey değildir.
Tarayıcılar arasında bazı ince farklılıklar vardır, ancak <button>
yukarıda açıklanan etiketi dışında tümü değer-özelliğini gönderecektir .
white-space:pre
varsayılan olarak vardır, <button> yoktur. Bu, bir düğmeyi görüntü alanından daha geniş yapmaya çalışırken belirgin hale gelir.
İle <button>
, metnin olduğu yerde img etiketleri vb.
<button type='submit'> text -- can be img etc. </button>
ile <input>
türüne, metne sınırlıdır
<input type="image" />
metne sınırlı değildir ve aynı zamanda gerçekleştiren bir gönderin.
name.x
ve name.y
parametrelerini gönderen bir görüntü haritası oluşturmaktan daha fazlasıdır ( name
parametrenin mevcut olmadığını unutmayın !). <input type="submit">
Tek amaç arka plan resmi olan bir düğmeye sahip olmaksa, CSS arka plan ile kullanmayı tercih ederim .
input type="image"
. Bunun için <button type="submit">
amaçlanmıştır.
TYPE=IMAGE' implies
TYPE = SUBMIT 'processing; yani, bir piksel seçildiğinde, form bir bütün olarak gönderilir." . Gerçek niyet olduğunu düşündüğünüz şeyi yapın :)
Özetle :
<input type="submit">
<button type="submit"> Submit </button>
Her ikisi de varsayılan olarak görsel olarak aynı eylemi gerçekleştiren bir düğme çizer (formu gönderin).
Ancak, <button type="submit">
daha iyi anlambilim, daha iyi ARIA desteği ve biçimlendirmesi daha kolay olduğu için kullanılması tavsiye edilir .
<input type="submit">
ve<button type="submit">
?