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

วิธีสร้าง Horizontal Scrollable Menu (เมนูเลื่อนแนวนอน) ด้วย CSS

เทคนิคการทำให้ Navigation Bar เลื่อนได้แนวนอน (Horizontal Scroll) เมื่อเมนูมีมากเกินความกว้างหน้าจอ ใช้ white-space: nowrap และ overflow: auto

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

<!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:10px;    padding: 0px; } nav{    width: 100%;    background-color: rgb(39, 39, 39);    overflow: auto;    height: auto;    white-space: nowrap; } .links {    display: inline-block;    text-align: center;    padding: 14px;    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> <a class="links" href="#">Our Social Links</a> <a class="links" href="#">Visit Us</a> </nav> </body> </html>

คำอธิบาย

  • white-space: nowrap - ไม่ให้ลิงก์ขึ้นบรรทัดใหม่ บังคับอยู่บรรทัดเดียว
  • overflow: auto - แสดง Scrollbar เมื่อเนื้อหาเกินกว้าง
  • display: inline-block - เรียงลิงก์ติดกันแนวนอน

ปรับปรุง UX

  • เพิ่ม scrollbar-width: thin; และ style scrollbar ให้สวย
  • เพิ่ม Shadow ด้านข้างบ่งชี้ว่ามีเนื้อหาต่อ (box-shadow: inset 20px 0 20px -20px rgba(0,0,0,0.3);)
  • บน Mobile ใช้ Touch Scroll ได้โดยธรรมชาติ

ผลลัพธ์

เมนูสีเข้ม 7 รายการ บนหน้าจอแคบจะเลื่อนซ้าย-ขวาได้ มี Scrollbar แสดง