ฉันกำลังทำงานกับเว็บแอปพลิเคชันที่ฉันต้องการให้เนื้อหาเต็มความสูงของหน้าจอ
หน้ามีส่วนหัวซึ่งมีโลโก้และข้อมูลบัญชี นี่อาจเป็นความสูงตามอำเภอใจ ฉันต้องการให้ 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และคุณสมบัติที่เกี่ยวข้องดูคำตอบสำหรับคำถามที่คล้ายกันนี้