Create a layout centered and stretched to full screen height
รูปแบบหน้าจอที่ใช้บ่อยและแทบจะเป็นรูปแบบเริ่มต้นที่ผมใช้บ่อยจะเป็นลักษณะนี้:
1
2
3
4
5
6
7
8
9
------------
header
------------
main
------------
footer
------------
ลองจิตนาการดูว่าในตอนแรกที่เราทำ ทุกอย่างจะไปอยู่ด้านบนหมด แน่นอนว่าหากมี content ยาวมากพอ ก็จะไม่ดูแปลกอะไร
เพื่อให้ได้ในสิ่งที่ต้องการ เราจะกำหนด css พื้นฐานที่เราพยายามจะไม่อิงกับ css framework ตัวไหน ๆ เลย ก็จะได้ออกมาดังนี้:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
html {
height: 100%;
}
body {
display: flex;
flex-direction: column;
min-height: 100vh;
/* mobile viewport bug fix */
min-height: -webkit-fill-available;
}
.main {
flex: 1 1;
}
และรูปแบบ html ง่ายสุดที่เราจะใช้คือ:
1
2
3
4
5
<header>
<nav></nav>
</header>
<div class="main"></div>
<footer></footer>
เมื่อเราดูผลลัพท์ที่ออกมาจะได้ว่าส่วน main จะยืดและดันให้ header และ footer ให้ติดขอบบนและล่าง ซึ่งในระหว่าง main กับ header และ footer เราก็สามารถที่จะแทรก section หรืออะไรที่เราอยากจะแทรกไปได้เลย
1
2
3
4
5
6
7
<header>
<nav></nav>
</header>
<div></div>
<div class="main"></div>
<section></section>
<footer></footer>
การแสดงผลก็ยังจะเต็มหน้าจอยู่เหมือนเดิม จนว่าจะมี content มากจน main ยืดอีกไม่ได้แล้ว จากนั้นหน้าก็จะเลื่อนลงได้
This post is licensed under CC BY 4.0 by the author.