Metin girdimdeki display:block;width:auto;
neden bir div gibi davranmıyor ve kapsayıcı genişliğini doldurmuyor?Ekran ile giriş: blok bir blok değil, neden olmasın?
Bir div'in sadece otomatik genişliğe sahip bir blok öğesi olduğu izlenimindeydim. Aşağıdaki kodda div ve giriş aynı boyutlara sahip olmamalıdır?
Genişliği doldurmak için girişi nasıl alabilirim? % 100 genişlik işe yaramaz, çünkü giriş dolgu ve bir kenarlığa sahiptir (1 piksel + 5 piksel +% 100 + 5 piksel + 1 piksel). Sabit genişlikler bir seçenek değildir ve daha esnek bir şey arıyorum.
Bir geçici çözüm için doğrudan bir yanıt kullanmayı tercih ederim. Bu bir CSS tuhafı gibi görünüyor ve daha sonra faydalı olabileceğini anlıyor.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>width:auto</title>
<style>
div, input {
border: 1px solid red;
height: 5px;
padding: 5px;
}
input, form {
display: block;
width: auto;
}
</style>
</head>
<body>
<div></div>
<form>
<input type="text" name="foo" />
</form>
</body>
</html>
Bunu yazıcının geçici çözümleriyle yapabileceğimi belirtmeliyim. Sayfa semantiği ve CSS seçici ilişkileri ile bu vidalama dışında problemin doğasını anlamaya çalışıyorum ve INPUT'un kendisinin doğasını değiştirerek üstesinden gelinebilir.
Tamam, bu TRULY garip! Çözümün max-width:100%
'u width:100%;padding:5px;
numaralı bir girdiye eklemesi gerektiğini buldum. Ancak bu daha da fazla soru ortaya çıkarır (ayrı bir soruda soracağım), ancak genişlik normal CSS kutusu modelini kullanır ve max-width Internet Explorer kenar kutusu modelini kullanır. Ne kadar tuhaf. Tamam
, bu sonuncusu Firefox 3. Internet Explorer 8 ve Safari bir hata gibi görünen 4 sınır Spec yapmak ne diyor% 100 + dolgu + sınırına maksimum genişlik. Son olarak, Internet Explorer doğru bir şey var.
Aman tanrım, bu harika! Bu oyun ile ve gururlu gurular Dean Edwards ve Erik Arvidsson çok yardımı ile, keyfi dolgu ve sınırları olan öğeler üzerinde gerçek bir çapraz tarayıcı% 100 genişlik yapmak için üç ayrı çözümler parça parça başardı. Aşağıdaki cevaba bakınız. Bu çözüm, herhangi bir ek HTML işaretlemesi, sadece bir sınıf (veya seçici) ve eski Internet Explorer için isteğe bağlı bir davranış gerektirmez.
tam kopyası [http://stackoverflow.com/questions/628500/can-i-stop-100-width-text-boxes-from-extending-beyond-their-containers ] (http://stackoverflow.com/questions/628500/can-i-stop-100-width-text-boxes-from-extending-beyond-their-containers) tam kopyası değil –
@SleepyCod. Bu soru, CSS 2.1 spesifikasyonuna uymama gibi görünen 'input' elemanları problemini ele alırken, sorduğunuz soru, CSS 2.1 spesifikasyonunun sınırları dahilinde mükemmel şekilde meydana gelen taşma kutularının nasıl önleneceğini sorar. Hem soruların hem de çözümlerinin üst üste geldiği ancak tam olarak çoğaltıldığını söyleyen sorular ** yanlıştır. ** – amn