2011-08-09 22 views
12

Bir öğenin kapsayıcısının yüksekliğinin% 100'ünü kaptırmaya çalıştığım bir durum var - ve kap elemanında yalnızca min yükseklik belirtildi. Ne yazık ki, bunu yaptığımda, yükseklik yönergesi dikkate alınmaz. Here is an example. Kırmızı olan "b" div, tüm ebeveyni doldurmalıdır. IE7, Chrome veya FF3.6'da değil.CSS Min yükseklikteki kapsayıcının% 100 yükseklik

Konteynere "yükseklik: 1 piksel" eklediysem, "a" div, sonra "b", "a" yüksekliğinin tamamına kadar uzatılır. See here. Ancak bu yalnızca FF3.6 ve IE7’de, Chrome’da değil. Yani sanırım burada yanlış bir şey yapıyorum.

Bunun, yaygın olarak görmediğim bir çözüm olması gerektiğini düşünüyorum. Bu durumda streç-yüksekliğe ulaşmanın en iyi yolu nedir?

+0

Ana kapsayıcıda belirtilen bir yüksekliğe sahip olmalıdır. Sadece bir min yüksekliği değil. – Kyle

cevap

11

CSS'niz, alt öğenin boyunun üst öğenin belirtilen yüksekliğinin% 100'ü olduğu anlamına gelir. Ebeveyn için bir yükseklik belirtmezseniz,% 100 hiçbir şey ifade etmez. Dolayısıyla işe yaramıyor.

Ne çocuğun ebeveyni üzerindeki position:relative ve position:absolute kullanılarak elde edilebilir istiyorum:

http://jsfiddle.net/57EZn/25/

Bu güzel bir çözüm değil ama sonra ne yapar.

+0

Ah, evet, hatırladığım gibi, bu hack bazen diğer düzen sorunlarını düzeltmek için kullanılır. Pozisyon kuralıyla oynamaya çalıştım ama doğru kombinasyonu bulamadım. Mantıksal olarak, ayar pozisyonunun neden iç divun yüksekliğini değiştirmesi gerektiğini anlamıyorum, ama açıkça işe yarıyor ve bu çözümü kullanabiliyorum. Teşekkürler. – waxwing

+0

Sadece yüksekliği değiştiren "position: mutute" değil. Yükseklik belirtilen bir 'top' AND' bottom' tarafından değiştirilir. Bu, alt öğeyi, üst öğe için RELATIVE olarak belirttiğiniz üst ve alt konumlara "bağlamaya" zorlar. alt: 0 'bu durumda "ebeveyn içinde mümkün olan en düşük" anlamına gelir. Başka bir deyişle: "ebeveyinin boyuna uygun beden". – Bazzz

+0

Şimdi anladım. Başka bir deyişle, "yükseklik:% 100" direktifini iç divtan kaldırırsam da çalışır, çünkü üst ve alt iş yapar. – waxwing

İlgili konular