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

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

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

abdkode
PHP Super Member
PHP Super Member
โพสต์: 362
ลงทะเบียนเมื่อ: 07/01/2019 9:56 am

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 ผลลัพธ์ที่ได้ดังนี้
Flexbox1.jpg
Flexbox1.jpg (3.09 KiB) เปิดดู 400 ครั้ง

จากผลลัพธ์ที่เห็นคือกล่องจะอยู่ตรงกลาง
และนอกจากนั้นกลุ่มของอีลีเมนต์ยังสามารถจัดตำแหน่งตามแกนรอง (cross axis) ได้ด้วยผ่าน align-items เช่นการจัดกลางตามแนวดิ่งด้วย align-items: center

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

#container {
  display: flex;
  justify-content: center;
  align-items: center;
  background: #37BC9B;
  height: 200px;
}

ผลลัธที่ได้
Flexbox2.jpg
Flexbox2.jpg (3.42 KiB) เปิดดู 400 ครั้ง

จากผลลัพธ์จะเห็นได้ว่า กล่องทั้งหมดจะอยู่ตรงกลางของ อีลีเมนต์นั้นเลยครับ เราสามารถนำไปประยุกต์ใช้กันได้น่ะครับ อาจจะนำ javascript หรือ JQueryมาร่วมใช้ก็ดี

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

  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 9 และ บุคคลทั่วไป 0 ท่าน