2015-05-18 13 views
5

Bir kapsayıcıyı tüm sayfayı (veya görüntü alanını, hangisi büyükse) doldurmaya çalışıyorum, ancak bir sorunla karşılaştım. https://stackoverflow.com/a/17555766, <html> ve <body>'u% 100 yüksekliğe ayarlamak için bu gönderideki önerileri kullanıyorum.Min. Yükseklik ile boyutlandırıldığında kapsayıcının yüksekliği neden devralınmıyor?

Ama <body> yükseklik height: 100% seti değil min-height: 100% ile zaman .Content div sadece görünüm doldurur fark ettik. Neden? .Content neden min-height ile ayarlandığında <body>'un yüksekliğini almıyor? Bunun için bir düzeltme var mı (mutlak konumlandırma veya sabit yükseklikler olmadan)?

html

<html> 
    <body> 
    <div class="Content">Content</div> 
    </body> 
</html> 

css codepen

* { 
    margin: 0; 
    padding: 0; 
} 

html { 
    height: 100%; 
} 

body { 
    /* does not work for .Content: */ 
    min-height: 100%; 
    /* does work for .Content: */ 
    /* height: 100%; */ 
    background: blue; 
} 

.Content { 
    background: red; 
    min-height: 100%; 
} 

: http://codepen.io/anon/pen/mJEMVX

P.S. .: <body> yükseklik height: 100% ile ayarlandığında, hem min-height: 100% ve height: 100% eser .Content için beklendiği gibi.

+2

Sanırım temel neden, gövde yüksekliği ile içerik yüksekliği arasındaki dairesel bağımlılıktır. .content'ten sonra başka bir öğe olduğunu hayal edin. Şimdi, içerik% 100'e genişlerse, gövde de genişlemelidir, bu da içeriğin daha da genişlemesine neden olur. Muhtemelen, spekülasyonun neden yüzde bir yükseklik tanımlamasının nedeni, bu dairesel bağımlılığı kırmaktır. –

+0

@Alexey Lebedev: Doğru. – BoltClock

cevap

6

Yüzde yüksekliği, üst öğenin hesaplanan height özelliğine karşılık gelir. spec'a bakın. body öğesinde yalnızca min-height: 100% öğesinde bağlantı verilen soruya verdiğim yanıtı belirlerken, height özelliği, auto varsayılan değerine dokunulmadan bırakılır. min-height özelliği, height özelliğinin hesaplanan değerini etkilemez.

Bu nedenle, öğenizdeki min-height: 100%, başvurmak için bir üst yüksekliğe sahip değildir ve bu nedenle çalışmaz. body öğesinde height: 100% öğesini ayarladıktan sonra, öğeniz kendi yükseklik yükseklik hesaplaması için bu yüksekliğe başvurabilir.

Bu sorun, nasıl bir düzenlemeye ulaşmaya çalıştığınıza bağlıdır. min-height: 100% öğesinin body öğesinin ayarlanmasının tek amacı, içerik yüksekliği, kaydırma çubuğuyla sonuçlanacak şekilde görüntülenme oranının sınırını aştığında genişlemesine izin vermektir. İçeriğiniz yalnızca tam olarak görünümün yüksekliği kadar olacaksa veya kaydırma çubukları oluşturmak için body istemiyorsanız, 'u height: 100% ile body üzerinde değiştirmek kadar kolaydır.

İlgili konular