İçeriğin tüm ekranın yüksekliğini doldurmasını istediğim bir web uygulaması üzerinde çalışıyorum.
Sayfada bir logo ve hesap bilgileri içeren bir başlık vardır. Bu keyfi bir yükseklik olabilir. İçerik div'in sayfanın geri kalanını en alta doldurmasını istiyorum.
Bir başlığım div
ve bir içeriğim var div
. Şu anda böyle bir düzen için bir tablo kullanıyorum:
CSS ve HTML
#page {
height: 100%; width: 100%
}
#tdcontent {
height: 100%;
}
#content {
overflow: auto; /* or overflow: hidden; */
}
<table id="page">
<tr>
<td id="tdheader">
<div id="header">...</div>
</td>
</tr>
<tr>
<td id="tdcontent">
<div id="content">...</div>
</td>
</tr>
</table>
Sayfanın tüm yüksekliği doldurulur ve kaydırma gerekmez.
İçerik div içindeki herhangi bir şey için, ayar top: 0;
başlığı doğrudan başlığın altına koyacaktır. Bazen içerik% 100'e ayarlanmış olarak gerçek bir tablo olur. header
İçeri koymak content
, bunun çalışmasına izin vermeyecektir.
Aynı etkiyi kullanmadan elde etmenin bir yolu var mı table
?
Güncelleme:
İçeriğin içindeki div
öğelerin de yükseklikleri yüzde olarak ayarlanmış olacaktır. Yani içinde% 100 bir şey div
dibe doldurur. % 50'de iki element gibi.
Güncelleme 2:
Örneğin, başlık ekran yüksekliğinin% 20'sini kaplarsa,% 50 içinde belirtilen bir tablo #content
ekran alanının% 40'ını kaplar. Şimdiye kadar, her şeyi bir tabloya sarmak işe yarayan tek şeydir.
display:table
ve ilgili özellikleri kullanarak çoğu tarayıcıda istenen tablo düzenini alabilirsiniz, benzer bir sorunun bu cevabına bakın .