Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> CSS

วิธีจัดตำแหน่งปุ่ม (Button) ให้อยู่กึ่งกลางแนวตั้งและแนวนอนด้วย CSS

Flexbox Centering: จัดกึ่งกลางแบบสมบูรณ์แบบ

ใช้ display: flex ร่วมกับ justify-content: center (แนวนอน) และ align-items: center (แนวตั้ง) บน Container จัดให้ปุ่ม (หรือองค์ประกอบใดๆ) อยู่ตรงกลางทั้ง 2 แกน

โค้ดตัวอย่าง

<!DOCTYPE html>
<html>
<head>
  <style>
    body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; }
    .centered {
      display: flex;
      justify-content: center;
      align-items: center;
      height: 200px;
      border: 3px solid rgb(0, 70, 128);
    }
    button {
      font-size: 18px; border: none; padding: 10px;
      background-color: darkblue; color: white;
    }
  </style>
</head>
<body>
  <h1>ตัวอย่าง Centering</h1>
  <div class="centered"><button>ปุ่มนี้อยู่กึ่งกลาง</button></div>
</body>
</html>

เงื่อนไขสำคัญ

  • Container ต้องมีความสูง (height) กำหนดไว้ (เช่น 200px, 100vh)
  • ใช้ display: flex บน Container ไม่ใช่บนปุ่ม
  • ทำงานกับทุกประเภท child: button, div, img, text, iframe

วิธีอื่นๆ (อ้างอิง)

  • Grid: .centered { display: grid; place-items: center; } – สั้นกว่า
  • Absolute + Transform: position:absolute; top:50%; left:50%; transform:translate(-50%,-50%) – ใช้ได้กับ absolute positioning
  • Table-cell: display:table-cell; vertical-align:middle; text-align:center – แบบเก่า

Flexbox/Grid เป็นมาตรฐานปัจจุบัน ใช้ง่าย รองรับ responsive และไม่ต้องคำนวณขนาดล่วงหน้า