Tamam, görünüşe göre bunu düzeltmek imkansız. Bir metin kutum ve bir seçim kutum var. Sol kenar boşluğu ve sağ kenar boşluğunda sıralanmaları için tam olarak aynı genişlikte olmalarını istiyorum.
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
input, select {
width: 200px;
}
</style>
</head>
<body>
<input type="text" value="ABC"><br>
<select>
<option>123</option>
</select>
</body>
</html>
Sence bu olur, değil mi? Hayır! Firefox'ta seçim kutusu 6px daha kısadır. Ekran görüntüsüne bakın.
Tamam, şimdi kodu düzenleyelim ve iki stil yapalım.
<style type="text/css">
input {
width: 200px;
}
select {
width: 206px;
}
</style>
Tamam bu çalışıyor!

Oh bekleyin, Chrome'da daha iyi test edin ...


Birisi bana bunları tüm tarayıcılarda nasıl sıralayacağımı söyleyebilir mi? Neden tümünde width: 200px yapamıyorum, neden tüm tarayıcılar bunu farklı gösteriyor? Ayrıca biz oradayken metin kutusu ve seçim kutusu neden farklı yüksekliklerde? Onları nasıl aynı yüksekliğe çıkarırız? Yükseklik ve çizgi yüksekliğini denediniz, boşuna.
Çözüm:
Tamam, çözümü aşağıdaki cevaplardan biraz yardım alarak buldum. Anahtar, kenarlık ve dolguyu içeren genişliği belirlediğinizde kutu boyutlandırma: border-box özelliğini kullanmaktır . Burada mükemmel açıklamaya bakın . O zaman tarayıcı onu dolduramaz.
Kod aşağıdadır, kutuların yüksekliğini de aynı boyuta ayarlamış ve kutunun içindeki metni hizalayacak şekilde girintili yapmış. Ayrıca, Chrome'un hizalamayı atacak seçim kutuları için kullandığı gerçekten garip görünen bir kenarlığı olduğundan, sınırı da ayarlamanız gerekir. Bu, HTML5 sitelerinde çalışacaktır (örneğin, IE9, Firefox, Chrome, Safari, Opera vb. Destekleyen).
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
input, select {
width: 200px;
border: 1px solid #000;
padding: 0;
margin: 0;
height: 22px;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
input {
text-indent: 4px;
}
</style>
</head>
<body>
<input type="text" value="ABC"><br>
<select>
<option>123</option>
<option>123456789 123123123123</option>
<option>123456789 123123123123 134213721381212</option>
</select>
</body>
</html>
Son bir uyarı, giriş düğmelerinin, onay kutularının, vb. Bu stile dahil edilmesini istemeyebilirsiniz, bu nedenle input:not([type='button'])belirli türlere uygulamamak için öğesini kullanın veya uygulamak input[type='text'], input[type='password']istediklerinizi belirtmek için kullanın.