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

วิธีสร้าง Navigation Bar ลิงก์กว้างเท่ากัน (Equal Width) ด้วย CSS

เทคนิคการทำให้ลิงก์ใน Navigation Bar มีความกว้างเท่ากันทุกตัว ใช้หน่วย vw (viewport width) หรือ Flexbox เพื่อกระจายพื้นที่อย่างเท่าเทียม

ตัวอย่างโค้ด (ใช้ vw)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> body{    margin:0px;    margin-top:60px;    padding: 0px; } *,*::before,*::after{    box-sizing: border-box; } nav{    position: fixed;    top: 0;    width: 100%;    background-color: rgb(39, 39, 39);    overflow: auto;    height: auto; } .links {    width: 20vw;    padding: 17px;    display: inline-block;    text-align: center;    color: rgb(178, 137, 253);    text-decoration: none;    font-size: 17px; } .links:hover {    background-color: rgb(100, 100, 100); } .selected{    background-color: rgb(0, 18, 43); } </style> </head> <body> <nav> <a class="links selected" href="#">Home</a> <a class="links" href="#">Login</a> <a class="links" href="#">Register</a> <a class="links" href="#">Contact Us</a> <a class="links" href="#">More Info</a> </nav> <h1>Equal width navigation menu</h1> </body> </html>

วิธีการ 2 แบบ

1. ใช้ Viewport Width (vw)

.links { width: 20vw; } - หาร 100% / 5 เมนู = 20vw ต่อเมนู

2. ใช้ Flexbox (แนะนำมากกว่า)

nav { display: flex; }
.links { flex: 1; text-align: center; }

Flexbox จะกระจายพื้นที่อัตโนมัติ รองรับการเพิ่ม/ลดเมนูได้ดีกว่า

ผลลัพธ์

เมนู 5 รายการ กว้างเท่ากันทุกตัว 20% ของหน้าจอ จัดกลางข้อความอัตโนมัติ