ฉันกำลังทำงานกับเว็บแอปพลิเคชันที่ฉันต้องการให้เนื้อหาเต็มความสูงของหน้าจอ
หน้ามีส่วนหัวซึ่งมีโลโก้และข้อมูลบัญชี นี่อาจเป็นความสูงตามอำเภอใจ ฉันต้องการให้ div เนื้อหาเติมส่วนที่เหลือของหน้าลงไปด้านล่าง
ฉันมีส่วนหัวและเนื้อหาdiv
div
ในขณะนี้ฉันใช้ตารางสำหรับเค้าโครงดังนี้:
CSS และ 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>
ความสูงทั้งหมดของหน้าเต็มและไม่จำเป็นต้องเลื่อน
สำหรับทุกสิ่งที่อยู่ใน div เนื้อหาการตั้งค่าtop: 0;
จะทำให้อยู่ใต้ส่วนหัว บางครั้งเนื้อหาจะเป็นตารางจริงโดยมีความสูงตั้งไว้ที่ 100% การวางheader
ไว้ด้านในcontent
จะไม่ยอมให้สิ่งนี้ทำงานได้
มีวิธีในการบรรลุผลเช่นเดียวกันโดยไม่ใช้table
หรือไม่
ปรับปรุง:
องค์ประกอบภายในเนื้อหาdiv
จะมีการกำหนดความสูงเป็นเปอร์เซ็นต์เช่นกัน ดังนั้นสิ่งที่อยู่ภายใน 100% div
จะเติมลงไปด้านล่าง องค์ประกอบสองอย่างจะเท่ากับ 50%
อัปเดต 2:
ตัวอย่างเช่นหากส่วนหัวใช้ความสูง 20% ของความสูงของหน้าจอตารางที่ระบุไว้ที่ภายใน 50% #content
จะใช้พื้นที่หน้าจอ 40% จนถึงตอนนี้การห่อสิ่งทั้งหมดไว้ในโต๊ะเป็นสิ่งเดียวที่ใช้ได้ผล
display:table
และคุณสมบัติที่เกี่ยวข้องดูคำตอบสำหรับคำถามที่คล้ายกันนี้