CSS Tips: จัดตำแหน่งใน Flexbox ให้อยู่ตรงกลาง
Posted: 02/04/2019 6:43 pm
Flexbox เป็นหนึ่งสิ่งหนึ่งที่สนใจและน่าใช้ใน CSS อีลีเมนต์ไหนที่ใส่เป็น display: flex หรือ inline-flex ก็เปรียบเสมือนเป็นกล่อง ถ้ากล่องวางแนวนอนของในกล่องก็ไหลตามแนวนอน แต่ถ้าจับตั้งเสียของในกล่องก็จะวางซ้อนกันในแนวดิ่งนั่นเอง
เราทราบกันดีว่าการไหลของอีลีเมนต์ในกล่องจะมีทิศทางตามแกนหลักของมัน (main axis) เช่นถ้าวางกล่องแนวนอน แกนหลักก็จะเป็นแกนนอน เมื่อมีแกนหลักย่อมมีแกนตั้งได้ฉากกับแกนหลักเรียกว่า cross axis
เรามาดูอย่างโค้ดกันครับ
จากโค้ดด้านบนเรากำหนดใน css display: flex; และ justify-content: center; ซึ่งสำหรับ justify-content เป็นการจัดตำแหน่งของอีลีเมนต์ตามทิศทางการไหลในแกนหลัก เช่นหากจัดสิ่งของให้อยู่กลางด้วย justify-content: center ผลลัพธ์ที่ได้ดังนี้
จากผลลัพธ์ที่เห็นคือกล่องจะอยู่ตรงกลาง
และนอกจากนั้นกลุ่มของอีลีเมนต์ยังสามารถจัดตำแหน่งตามแกนรอง (cross axis) ได้ด้วยผ่าน align-items เช่นการจัดกลางตามแนวดิ่งด้วย align-items: center
ผลลัธที่ได้
จากผลลัพธ์จะเห็นได้ว่า กล่องทั้งหมดจะอยู่ตรงกลางของ อีลีเมนต์นั้นเลยครับ เราสามารถนำไปประยุกต์ใช้กันได้น่ะครับ อาจจะนำ javascript หรือ JQueryมาร่วมใช้ก็ดี
ช่องทางการศึกษาเพิ่มเติมข่าวที่น่าสนใจเกี่ยวกับ : HTML & CSS
-สอนการใช้งาน HTML & CSS
-ถามตอบ HTML CSS
-บทเรียน CSS
-บทเรียน HTML5
-แลกเปลี่ยนความรู้ PHP
เราทราบกันดีว่าการไหลของอีลีเมนต์ในกล่องจะมีทิศทางตามแกนหลักของมัน (main axis) เช่นถ้าวางกล่องแนวนอน แกนหลักก็จะเป็นแกนนอน เมื่อมีแกนหลักย่อมมีแกนตั้งได้ฉากกับแกนหลักเรียกว่า cross axis
เรามาดูอย่างโค้ดกันครับ
Code: Select all
<html>
<head>
<style>
#container {
display: flex;
justify-content: center;
background: #37BC9B;
height: 200px;
}
.box {
width: 50px;
height: 50px;
line-height: 50px;
background: #434A54;
color: #F5F7FA;
border: 1px solid #CCD1D9;
text-align: center;
}
</style>
</head>
<body>
<div id="container">
<div class="box" id="box1">1</div>
<div class="box" id="box2">2</div>
<div class="box" id="box3">3</div>
</div>
</body>
</html>
และนอกจากนั้นกลุ่มของอีลีเมนต์ยังสามารถจัดตำแหน่งตามแกนรอง (cross axis) ได้ด้วยผ่าน align-items เช่นการจัดกลางตามแนวดิ่งด้วย align-items: center
Code: Select all
#container {
display: flex;
justify-content: center;
align-items: center;
background: #37BC9B;
height: 200px;
}
ช่องทางการศึกษาเพิ่มเติมข่าวที่น่าสนใจเกี่ยวกับ : HTML & CSS
-สอนการใช้งาน HTML & CSS
-ถามตอบ HTML CSS
-บทเรียน CSS
-บทเรียน HTML5
-แลกเปลี่ยนความรู้ PHP