2010-06-22 12 views
8

Tamam, bu sonsuz bir sorunun bir şey olduğunu biliyoruz, ama burada gider: Ben tek bir metin girişi varTutarsız yüksekliği

<input type="text" name="whatever" /> 

ve ben font-family, font-size ve padding belirtmiştim. Yine de, aynı makinede bile (Mac'im diyelim), giriş Firefox'ta (3.6) Chrome veya Safari'de olduğundan farklı bir yüksekliğe sahip. Özellikle Firefox, metnin altına biraz daha fazla dolgu ekler.

Ve hayır, piksel olarak height belirtme tutarlılık elde edemez.

Gecko ve WebKit tabanlı tarayıcılarda (IE'ye ve Opera'ya izin vermeksizin) JavaScript'e başvurmadan metin giriş yüksekliği tutarlılığı elde etmenin herhangi bir yolu var mı? Ve eğer javascript kullanmam gerekiyorsa, daha önce bunu yapmak için bir jQuery eklentisi veya başka bir şey hazırlamış biri var mı?

Güncelleştirme: İşte yapmamak için. jqTransform eklentisi, öğeleri biçimlendirmenize ve tarayıcılarda aynı görüneceklerine dair söz verir.

jqTransform Chrome input

ve burada da aynı giriş Firefox 3.6.4 nasıl göründüğü: Burada demo girişi benim Mac Chrome 5 nasıl göründüğü

jqTransform Firefox input

Bunları değişmiş değil Ekran görüntüleri herhangi bir şekilde, sadece kırpılmış. Şimdi ilk tepkim, "Ugh, Firefox'u desteklemek istemiyorum." Ancak şu anda Safari ve Chrome kullanıcılarından daha fazla Firefox kullanıcısı var, bu bir seçenek değil.

Birisi, lütfen yardım edin! Sadece formlarımın modern, standartlara uygun tarayıcıları arasında aynı görünmesini istiyorum! Ve "aynı görünüme" göre seçim konusunda outline hakkında veya bunun gibi bir şeyden bahsetmiyorum; Sadece aynı genişlik, yükseklik ve metin yerleşimi hakkında konuşuyorum!

+0

Ben daha büyük bir girişi olan benzer bir sorun vardı ve Bunun yanında daha büyük bir düğme - Firefox, IE ve Safari arasındaki hizalama sorunlarını gideremedi - yapabileceğimin en iyisi üç kişiden biri :( –

cevap

4

Tamam, işte, Safari, Chrome ve Firefox'un geçerli sürümlerinde tam olarak aynı görünmesini istiyorsanız gerçekten çalıştığım bir "çözüm" işte. Bunu Opera veya IE'de veya Mac OS dışındaki işletim sistemlerinde test etmediğimi unutmayın; Eminim ek hack gerekli.

Sadece giriş için arka plan sağlamak ve giriş sadece metin yüzüyor girişi kendisi özellikleri background: none Diğer bir deyişle, vb border: 0 vermek için bir <div> tanımlar. Ardından girdiyi göreceli konumlandırmayı kullanarak arka plan üzerinde konumlandırıyorum (özellikle girdinin top değerini ayarlama). Bu, farklı tarayıcılarda ayarlamak için beni özgür bırakır.Özellikle, ben giriş metin Firefox'ta daha Webkit tabanlı tarayıcılarda 1px yüksek olduğu bulundu, bu yüzden giriş nihayet tam Webkit ve Firefox arasındaki aynı görünüyor Şimdi çizgiyi

if ($.browser.webkit) { $input.css('marginTop', 1); } 

eklendi. Bu bir hack, evet, ama işe yarıyor.

0

($ .browser.webkit) {$ ("jqTransformInputInner div girişi. ") Css (" padding-top", "10px.");} Eğer