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

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: CSS Tips: จัดตำแหน่งใน Flexbox ให้อยู่ตรงกลาง

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

โดย abdkode » 02/04/2019 6:43 pm

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

เราทราบกันดีว่าการไหลของอีลีเมนต์ในกล่องจะมีทิศทางตามแกนหลักของมัน (main axis) เช่นถ้าวางกล่องแนวนอน แกนหลักก็จะเป็นแกนนอน เมื่อมีแกนหลักย่อมมีแกนตั้งได้ฉากกับแกนหลักเรียกว่า cross axis
เรามาดูอย่างโค้ดกันครับ

โค้ด: เลือกทั้งหมด

<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 ผลลัพธ์ที่ได้ดังนี้
Flexbox2.jpg
Flexbox2.jpg (3.42 KiB) Viewed 1704 times
จากผลลัพธ์ที่เห็นคือกล่องจะอยู่ตรงกลาง
และนอกจากนั้นกลุ่มของอีลีเมนต์ยังสามารถจัดตำแหน่งตามแกนรอง (cross axis) ได้ด้วยผ่าน align-items เช่นการจัดกลางตามแนวดิ่งด้วย align-items: center

โค้ด: เลือกทั้งหมด

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

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

ข้างบน