Çeşitli senaryoları test ettikten sonra, bunun en iyi çözüm olduğuna inanıyorum:
html {
width: 100%;
height: 100%;
display: table;
}
body {
width: 100%;
display: table-cell;
}
html, body {
margin: 0px;
padding: 0px;
}
İçeriği taşarsa html
ve body
öğelerinin otomatik olarak genişlemesi dinamiktir . Bunu Firefox, Chrome ve IE 11'in en son sürümünde test ettim.
Burada tam keman bakın (orada masa nefret edenler için, her zaman bir div kullanmak için değiştirebilirsiniz):
https://jsfiddle.net/71yp4rh1/9/
Bununla birlikte, burada yayınlanan cevaplarla ilgili birkaç sorun var .
html, body {
height: 100%;
}
Yukarıdaki CSS'nin kullanılması, içerikleri burada gösterildiği gibi taşarsa html ve gövde öğesinin otomatik olarak genişlememesine neden olur:
https://jsfiddle.net/9vyy620m/4/
Kaydırırken tekrarlayan arka planı fark ettiniz mi? Bunun nedeni, alt tablonun taşması nedeniyle gövde elemanının yüksekliğinin ARTIK OLMADIĞINDIR. Neden diğer blok elemanlar gibi genişlemiyor? Emin değilim. Bence tarayıcılar bunu yanlış ele alıyor.
html {
height: 100%;
}
body {
min-height: 100%;
}
Yukarıda gösterildiği gibi vücutta% 100'lük bir minimum yükseklik ayarlamak başka sorunlara neden olur. Bunu yaparsanız, alt div veya tablonun burada gösterildiği gibi yüzde yükseklik alacağını belirtemezsiniz:
https://jsfiddle.net/aq74v2v7/4/
Umarım bu birine yardımcı olur. Bence tarayıcılar bunu yanlış yapıyor. Çocuklarının taşması durumunda vücudun yüksekliğinin otomatik olarak daha büyük büyümesini ayarlamasını beklerdim. Ancak,% 100 yükseklik ve% 100 genişlik kullandığınızda bu görünmüyor.