ฉันใช้สิ่งต่อไปนี้: เค้าโครง CSS - ความสูง 100%
Min-สูง
องค์ประกอบ #container ของหน้านี้มีความสูงขั้นต่ำ 100% ด้วยวิธีนี้หากเนื้อหาต้องการความสูงมากกว่าวิวพอร์ตที่มีให้ความสูงของ #content บังคับให้ #container ยาวขึ้นเช่นกัน คอลัมน์ที่เป็นไปได้ใน #content สามารถมองเห็นได้ด้วยภาพพื้นหลังบน #container divs ไม่ใช่เซลล์ตารางและคุณไม่ต้องการ (หรือต้องการ) องค์ประกอบทางกายภาพเพื่อสร้างเอฟเฟ็กต์ภาพ หากคุณยังไม่มั่นใจ คิดว่าเส้นที่สั่นคลอนและการไล่ระดับสีแทนเส้นตรงและโครงร่างสีที่เรียบง่าย
การวางตำแหน่งสัมพัทธ์
เนื่องจาก #container มีตำแหน่งสัมพัทธ์ #footer จะยังคงอยู่ที่ด้านล่างเสมอ เนื่องจากความสูงขั้นต่ำที่กล่าวถึงข้างต้นไม่ได้ป้องกัน #container จากการปรับสเกลสิ่งนี้จะใช้ได้แม้ว่า (หรือมากกว่าโดยเฉพาะเมื่อ) #content บังคับให้ #container กลายเป็นอีกต่อไป
padding ล่าง
เนื่องจากไม่มีอยู่ในโฟลว์ปกติอีกต่อไปแล้วการเติมด้านล่างของ #content จะให้พื้นที่สำหรับ #footer สัมบูรณ์ การขยายนี้รวมอยู่ในความสูงที่เลื่อนตามค่าเริ่มต้นดังนั้นส่วนท้ายจะไม่ซ้อนทับเนื้อหาข้างต้น
ปรับขนาดตัวอักษรเล็กน้อยหรือปรับขนาดหน้าต่างเบราว์เซอร์ของคุณเพื่อทดสอบโครงร่างนี้
html,body {
margin:0;
padding:0;
height:100%; /* needed for container min-height */
background:gray;
font-family:arial,sans-serif;
font-size:small;
color:#666;
}
h1 {
font:1.5em georgia,serif;
margin:0.5em 0;
}
h2 {
font:1.25em georgia,serif;
margin:0 0 0.5em;
}
h1, h2, a {
color:orange;
}
p {
line-height:1.5;
margin:0 0 1em;
}
div#container {
position:relative; /* needed for footer positioning*/
margin:0 auto; /* center, not in IE5 */
width:750px;
background:#f0f0f0;
height:auto !important; /* real browsers */
height:100%; /* IE6: treaded as min-height*/
min-height:100%; /* real browsers */
}
div#header {
padding:1em;
background:#ddd url("../csslayout.gif") 98% 10px no-repeat;
border-bottom:6px double gray;
}
div#header p {
font-style:italic;
font-size:1.1em;
margin:0;
}
div#content {
padding:1em 1em 5em; /* bottom padding for footer */
}
div#content p {
text-align:justify;
padding:0 1em;
}
div#footer {
position:absolute;
width:100%;
bottom:0; /* stick to bottom */
background:#ddd;
border-top:6px double gray;
}
div#footer p {
padding:1em;
margin:0;
}
ทำงานได้ดีสำหรับฉัน
min-height: 100vh;
คุณอาจจะพิจารณา ตั้งค่าความสูงเท่ากับหรือมากกว่าขนาดของหน้าจอ,vh: vertical height
. สำหรับข้อมูลเพิ่มเติม: w3schools.com/cssref/css_units.asp