2009-08-30 22 views
16

Web sitemdeki formumdaki dolgu ile ilgili bir sorun yaşıyorum. Bir form öğesine bir yükseklik/genişlik ayarladıysam ve buna bir dolgu ekler. Firefox dışında denediğim tüm tarayıcılarda, dolgu yüksekliği/genişliğine eklenir.Firefox ve Opera/Chrome/IE'de form doldurma farklılıkları

200 inç genişliğinde ve 20 piksel yüksekliğinde bir girişim varsa. ve 5 (her yönden) doldurma, toplam ve genişlik ve yükseklik 210px ve 30px olacaktır, ancak Firefox'ta 200px ve 20px'dir.

Bu konuda nasıl çalışırım?

+0

sayfaya bağlantı? Bir DOCTYPE ayarladın mı? –

+0

Henüz çevrimiçi değil. ; \ Daha önce bununla ilgili bir sorun yaşayan birini okudum, ancak hiçbir yanıt bulamadım. Doctype'ı xhtml trans olarak ayarlıyorum. – guzh

+0

Bu belge aynı zamanda xhtml – guzh

cevap

27

input bu CSS ver:

box-sizing: border-box; 

Sen QuirksMode, the W3C spec ve MDN üzerinde box-sizing hakkında daha fazla bilgi bulabilirsiniz. İşte its browser support. Hedef tarayıcılarınız tarafından istenirse -moz- veya -webkit- öneklerini kullanın.


Bu cevap daha önce Chrome Web İnceleyicisi'nde yukarı/aşağı ok tuşlarını kullanarak bulduğunu değerini initial, önermişlerdi. Ancak, initial'un, mülkün ilk değerini temsil eden herhangi bir mülk için geçerli olan bir CSS anahtar kelimesi olduğu ortaya çıkar. Bu, tarayıcının varsayılan değeridir. initial, hangi kutu modelinin kullanılacağını açıkça belirtmekten daha az güvenlidir. box-sizing: initial belirtildiyse ve box-sizing için bir tarayıcının varsayılan değeri değiştiyse, input'un dolgusu yeniden bozulabilir.

+3

hakkında soruyor! Tam olarak aradığım şey buydu, 'kutu boyutlandırma: kenarlık kutusu; hile :) geç cevap için özür dilerim! – guzh

+0

veya. sorumu tekrar gördüğümde, bu problemi kullanıyorum. Sanırım kutu boyutlandırma: içerik kutusu; 210 piksel/30 piksel toplam genişlik/yükseklik elde etmek için doğru seçenek. Geleneksel kutu modelinin daha mantıklı olduğunu düşünüyorum (cf [Quirksmode] (http://www.quirksmode.org/css/box.html)). – guzh

+0

FYI, '* {box-sizeing: border-box; } CSS dosyanıza, kenar boşluğu ve dolgu eklerken bile bir öğenin genişliğini ve yüksekliğini koruyacak tüm öğeleri kenar kutusu olarak ayarlar. Varsayılan kutu modeli “içerik kutusu”, öğenizin genişliğine dolgu ve kenar boşlukları ekler; bu, birçok kişinin düşüncesinde mantıksızdır ve çalışılması zordur. Daha fazla bilgiyi http://www.paulirish.com/2012/box-sizing-border-box-ftw/ adresinde bulabilirsiniz. DÜZENLEME: Eklemeyi unut, 'border-box' IE8 ve üstü olarak destekleniyor, bu yüzden kullanımı güvenli. – Gavin

0

Formda görüntü bloğu koymayı denediniz mi? FF'nin bir satır içi eleman gibi davranması muhtemel gibi geliyor.

+0

'de geçerli: display-inline-block' daha iyi olabilir – Eric

3

blueprint-css gibi bir CSS çerçevesi kullanmayı deneyin. Blueprint ile gönderilen örnek sayfalara bir göz atın (forms.html adlı bir dosya var). Bu, doldurma sorununuzu ve karşılaşabileceğiniz bir sürü başka problemi çözmelidir.

+0

Ben css-blueprint formunu gördüm ve 'input [type = text] 'giriş alanında hile yaptım gibi görünüyor ..! Şimdi sadece textarea üzerinde çözmem gerekiyor, ona bakacağım! Teşekkürler (: – guzh

-2

bu deneyin:

/* Set all margins and paddings to 0 on all browsers */ 

* { 
    margin: 0; 
    padding: 0; 
} 
+0

Bu yanlıştır, tarayıcının varsayılan stilleri ile ilgili hiçbir şey olmaması gereken soru –

0

http://necolas.github.com/normalize.css/

/* 
* 1. Addresses box sizing set to content-box in IE 8/9. 
* 2. Removes excess padding in IE 8/9. 
* 3. Removes excess padding in IE 7. 
* Known issue: excess padding remains in IE 6. 
*/ 

input[type="checkbox"], 
input[type="radio"] { 
    box-sizing: border-box; /* 1 */ 
    padding: 0; /* 2 */ 
    *height: 13px; /* 3 */ 
    *width: 13px; /* 3 */ 
} 

/* 
* 1. Addresses `appearance` set to `searchfield` in Safari 5 and Chrome. 
* 2. Addresses `box-sizing` set to `border-box` in Safari 5 and Chrome 
* (include `-moz` to future-proof). 
*/ 

input[type="search"] { 
    -webkit-appearance: textfield; /* 1 */ 
    -moz-box-sizing: content-box; 
    -webkit-box-sizing: content-box; /* 2 */ 
    box-sizing: content-box; 
} 
İlgili konular