• May 30, 2017

    จัดกึ่งกลางแนวนอน

    text-align: center;
    สามารถใช้จัดการกับตัวหนังสือได้เป็นอย่างดี

    display: block;
    margin: auto;
    snippet อีกอย่างที่มักจะใช้กับ block element อย่างเช่น div หรือสามารถนำไปประยุกต์ใช้กับรูปภาพได้อีกด้วย เพื่อให้รูปภาพอยู่กึ่งกลาง

    text-align: center;
    display: inline-block;
    ใช้บ่อยกับ list ที่อยู่ในรูปแบบเรียงกันในแนวนอน ใช้กับเมนูที่ใช้ ul, li ได้เลย

    display: flex;
    justify-content: center;
    snippet สุดท้าย เป็นการใช้ flex เข้ามาช่วย เห็นไม่บ่อย เพราะ web broswer เก่าๆ อย่าง IE เวอร์ชั่น 9 ยังไม่รองรับ flexbox ส่วนคนที่ใช้ modern browser นั้นสามารถใช้งานได้ปรกติ และง่าย, ได้ผลดีกว่า snippet อื่นๆ ด้วย

    จัดกึ่งกลางแนวตั้ง

    ส่วนที่เป็น block ให้ใช้

    display: table;
    และส่วนที่เป็น element ลูกที่อยู่ข้างในใช้

    display: table-cell;
    text-align: center;
    vertical-align: middle;
    เหมือนจะทำให้ div กลายเป็นการใช้งานแบบ table ซึ่งเราต้องสร้าง parent หรือที่เป็น block level ให้ใช้ display แบบ table เสียก่อน แล้วค่อยให้ child level เป็นแบบ table-cell ข้อดีคือ browser จะคำนวณระยะห่างจากบนลงล่าง และ ซ้ายมาขวาให้เอง ไม่ว่า content ของ child level จะยืดขนาดไหน

    อีกวิธีนึงจะเป็นการขยายจากตัวของ content เองด้วย padding เช่น

    padding-top: 20px;
    padding-bottom: 20px;
    อันนี้จะเหมาะกับประเภทของ link หรือ div หรือ input ที่บางครั้งอาจจะต้องการสร้างให้เหมือนกับปุ่ม หรือเป็น navigation

    กึ่งกลางทั้งแนวตั้ง และนอน

    วิธีแรกเป็นแบบโบราณ ที่ใช้กันมานมนาน แต่ยังใช้ได้อยู่จนถึงปัจจุบัน แล้วก็ใช้กับ web browser เก่าๆ อย่าง IE8 ด้วย ซึ่งข้อเสียมีเพียงอย่างเดียวคือจำเป็นต้องรู้ทั้งความกว้าง และความสูงที่แน่นอนเสียก่อน (อาจจะใช้ Javascript ช่วยเพื่อหาได้)

    width: 200px;
    height: 200px;
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -100px;
    margin-left: -100px;

    คือ ถ้าความกว้าง และสูงมีค่าเท่าไหร่ ให้นำไปหารออกครึ่งนึงแล้วนำค่านั้นไปยัดลงกับ margin (ต้องเป็นค่าติดลบ)

    วิธีสุดท้ายเป็นการใช้ flexbox ซึ่งจะง่าย และสั้นกว่าแบบแรก แต่ข้อเสียก็คือไม่สามารถใช้ร่วมกับ web browser ที่ต่ำกว่า IE9(หรือ IE10)

    display: flex;
    justify-content: center;
    align-items: center;

    เพียงใช้ snippet ข้างต้นไปใส่กับ block level เพียงเท่านี้ก็สามารถจัดตำแหน่งของ content ภายในให้อยู่แบบกึ่งกลางได้แล้ว



เวอไนน์ไอคอร์ส

ประหยัดเวลากว่า 100 เท่า!






เวอไนน์เว็บไซต์⚡️
สร้างเว็บไซต์ ดูแลเว็บไซต์

Categories