CSS Tips: จัดตำแหน่งใน Flexbox ให้อยู่ตรงกลาง

CSS Knowledge เป็น บอร์ดรวามความรู้ CCC เน้นบทความ แนวทางการเขียนโปรแกรม บันทึกกันลืม เพื่อให้สมาชิกได้เขียนความรู้ที่ตัวเองมีให้สมาชิกท่านอื่นๆ ได้ เข้ามาอ่าน และ ไว้อ่านเองกันลืมด้วย

Moderators: mindphp, ผู้ดูแลกระดาน

abdkode
PHP Super Member
PHP Super Member
Posts: 362
Joined: 07/01/2019 9:56 am

CSS Tips: จัดตำแหน่งใน Flexbox ให้อยู่ตรงกลาง

Post by abdkode » 02/04/2019 6:43 pm

Flexbox เป็นหนึ่งสิ่งหนึ่งที่สนใจและน่าใช้ใน CSS อีลีเมนต์ไหนที่ใส่เป็น display: flex หรือ inline-flex ก็เปรียบเสมือนเป็นกล่อง ถ้ากล่องวางแนวนอนของในกล่องก็ไหลตามแนวนอน แต่ถ้าจับตั้งเสียของในกล่องก็จะวางซ้อนกันในแนวดิ่งนั่นเอง

เราทราบกันดีว่าการไหลของอีลีเมนต์ในกล่องจะมีทิศทางตามแกนหลักของมัน (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> 
จากโค้ดด้านบนเรากำหนดใน css display: flex; และ justify-content: center; ซึ่งสำหรับ justify-content เป็นการจัดตำแหน่งของอีลีเมนต์ตามทิศทางการไหลในแกนหลัก เช่นหากจัดสิ่งของให้อยู่กลางด้วย justify-content: center ผลลัพธ์ที่ได้ดังนี้
Flexbox1.jpg
Flexbox1.jpg (3.09 KiB) Viewed 526 times
จากผลลัพธ์ที่เห็นคือกล่องจะอยู่ตรงกลาง
และนอกจากนั้นกลุ่มของอีลีเมนต์ยังสามารถจัดตำแหน่งตามแกนรอง (cross axis) ได้ด้วยผ่าน align-items เช่นการจัดกลางตามแนวดิ่งด้วย align-items: center

Code: Select all

#container {
  display: flex;
  justify-content: center;
  align-items: center;
  background: #37BC9B;
  height: 200px;
}
ผลลัธที่ได้
Flexbox2.jpg
Flexbox2.jpg (3.42 KiB) Viewed 526 times
จากผลลัพธ์จะเห็นได้ว่า กล่องทั้งหมดจะอยู่ตรงกลางของ อีลีเมนต์นั้นเลยครับ เราสามารถนำไปประยุกต์ใช้กันได้น่ะครับ อาจจะนำ javascript หรือ JQueryมาร่วมใช้ก็ดี

ช่องทางการศึกษาเพิ่มเติมข่าวที่น่าสนใจเกี่ยวกับ : HTML & CSS
-สอนการใช้งาน HTML & CSS
-ถามตอบ HTML CSS
-บทเรียน CSS
-บทเรียน HTML5
-แลกเปลี่ยนความรู้ PHP

Return to “CSS Knowledge”

Users browsing this forum: No registered users and 11 guests