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

วิธีจัดกึ่งกลางปุ่ม (Button) ด้วย HTML และ CSS

จะจัดกึ่งกลาง element ปุ่มแบบ block หรือ inline-block ด้วย CSS และ HTML ได้อย่างไร?

เรื่องนี้อาจท้าทายเล็กน้อย แต่นี่คือเคล็ดลับด่วนสำหรับจัดกึ่งกลางปุ่ม ไม่ว่าจะเป็นประเภท element ใด

Element ปุ่มแบบ Inline-block

Element ปุ่มและลิงก์ โดยค่าเริ่มต้นเป็น display: inline-block Element ที่ตั้งค่า inline-block จะอยู่ในโฟลว์ปกติของเอกสารบนหน้าเมื่อเคลื่อนจากซ้ายไปขวา

หมายถึงหากมี element inline-block สองตัวติดกัน จะแสดงติดกันซ้ายขวา หากมีพื้นที่แนวนอนเพียงพอ

คล้ายกับ element ที่ตั้ง display: inline แต่คุณควบคุม height และ width ของ inline-block ได้ ส่วน inline ไม่ได้

จัดกึ่งกลางด้วย text-align: center

คุณสามารถจัดกึ่งกลาง element inline-block (และ inline) ได้โดยตั้ง text-align: center บน element พาเรนท์

ดูตัวอย่างโค้ด โม้คอัป HTML:

<div class="text-center"> <button type="submit">Text-align: center</button> </div>

และ CSS:

.text-center { text-align: center; }

เราห่อ <button> ด้วย <div> ที่มี text-align: center จะได้ปุ่มจัดกึ่งกลาง:

วิธีจัดกึ่งกลางปุ่ม (Button) ด้วย HTML และ CSS

Element ปุ่มแบบ Block พร้อม Static Width

Element แบบ Block ไม่สามารถจัดกึ่งกลางด้วย text-align: center ได้ เพราะโดยค่าเริ่มต้นจะเป็น full-width เว้นแต่จะกำหนด static width

บางครั้งคุณอาจต้องตั้ง static width ให้ปุ่ม ดังนั้นจึงใช้เทคนิคนี้จัดกึ่งกลางปุ่มบนหน้า

สมมติเรามีปุ่มตั้ง width 200px แม้จะกว้างแค่ 200px ก็ไม่ปล่อยให้ element อื่นอยู่ข้างๆ

คุณสามารถจัดกึ่งกลาง block level element ได้โดยตั้ง margin-left และ margin-right เป็น auto ใช้ shorthand margin: 0 auto (ยังตั้ง margin-top และ margin-bottom เป็นศูนย์)

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

<button type="submit" class="block magenta margin-auto">Margin: 0 auto</button> 
.button.block { display: block; width: 200px; } .margin-auto { margin: 0 auto; }

ปุ่มจะแสดงบนหน้าดังนี้:

วิธีจัดกึ่งกลางปุ่ม (Button) ด้วย HTML และ CSS

จัดกึ่งกลางด้วย Flexbox

อีกทางหนึ่ง สามารถจัดกึ่งกลางทั้ง inline-block และ block element ได้ด้วย Flexbox

ห่อปุ่มใน <div> พาเรนท์ ตั้งพาเรนท์เป็น display: flex และ justify-content: center

โค้ด:

<div class="flex-parent jc-center"> <button type="submit">Inline-block button</button> </div> <div class="flex-parent jc-center"> <button type="submit">Block button</button> </div>
.flex-parent { display: flex; } .jc-center { justify-content: center; }
วิธีจัดกึ่งกลางปุ่ม (Button) ด้วย HTML และ CSS

ปุ่มสองตัวติดกัน

บางครั้งอาจต้องการปุ่มสองตัวติดกัน แต่จัดกึ่งกลางทั้งคู่บนหน้า

ทำได้โดยห่อปุ่มทั้งสองใน <div> พาเรนท์ และใช้ Flexbox จัดกึ่งกลาง

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

<div class="flex-parent jc-center"> <button type="submit" class="green margin-right">Confirm</button> <button type="submit" class="magenta">Cancel</button> </div>
.flex-parent { display: flex; } .jc-center { justify-content: center; } button.margin-right { margin-right: 20px; }

สังเกตว่าเรายังเพิ่ม margin-right: 20px ให้ปุ่มแรก เพื่อเว้นระยะห่างระหว่างปุ่ม

ลักษณะปุ่มบนหน้า:

วิธีจัดกึ่งกลางปุ่ม (Button) ด้วย HTML และ CSS

ดูโค้ดจริงได้ที่ Codepen