หลังจากทดสอบสถานการณ์ต่าง ๆ ฉันเชื่อว่านี่เป็นทางออกที่ดีที่สุด:
html {
width: 100%;
height: 100%;
display: table;
}
body {
width: 100%;
display: table-cell;
}
html, body {
margin: 0px;
padding: 0px;
}
เป็นแบบไดนามิกในที่html
และbody
องค์ประกอบจะขยายโดยอัตโนมัติหากเนื้อหาล้น ฉันทดสอบสิ่งนี้ใน Firefox เวอร์ชันล่าสุด, Chrome และ IE 11
ดูซอเต็มรูปแบบที่นี่ (สำหรับคุณที่เกลียดชังที่โต๊ะคุณสามารถเปลี่ยนให้ใช้ div ได้เสมอ):
https://jsfiddle.net/71yp4rh1/9/
กับที่ถูกกล่าวว่ามีหลายประเด็นที่มีคำตอบที่โพสต์ที่นี่
html, body {
height: 100%;
}
การใช้ CSS ด้านบนจะทำให้ html และองค์ประกอบร่างกายไม่ขยายโดยอัตโนมัติหากเนื้อหาล้นตามที่แสดงที่นี่:
https://jsfiddle.net/9vyy620m/4/
ในขณะที่คุณเลื่อนสังเกตพื้นหลังซ้ำ สิ่งนี้เกิดขึ้นเนื่องจากความสูงขององค์ประกอบร่างกายไม่ได้เพิ่มขึ้นเนื่องจากโต๊ะลูกล้น เหตุใดมันจึงไม่ขยายเหมือนองค์ประกอบบล็อกอื่น ๆ ฉันไม่แน่ใจ. ฉันคิดว่าเบราว์เซอร์จัดการกับสิ่งนี้ไม่ถูกต้อง
html {
height: 100%;
}
body {
min-height: 100%;
}
การตั้งค่าความสูงขั้นต่ำ 100% บนร่างกายดังที่แสดงไว้ด้านบนทำให้เกิดปัญหาอื่น หากคุณทำเช่นนี้คุณไม่สามารถระบุได้ว่าลูก div หรือตารางนั้นมีเปอร์เซ็นต์ความสูงตามที่แสดงที่นี่:
https://jsfiddle.net/aq74v2v7/4/
หวังว่านี่จะช่วยใครซักคน ฉันคิดว่าเบราว์เซอร์จัดการสิ่งนี้ไม่ถูกต้อง ฉันคาดหวังความสูงของร่างกายเพื่อปรับการเติบโตที่ใหญ่ขึ้นโดยอัตโนมัติหากลูกของมันล้น อย่างไรก็ตามดูเหมือนว่าจะไม่เกิดขึ้นเมื่อคุณใช้ความสูง 100% และความกว้าง 100%