Contents

วิธีสร้าง Sticky Header ด้วย CSS

ในการออกแบบเว็บ ส่วนหัวแบบติดหนึบเป็นเครื่องมืออันทรงพลังที่ช่วยปรับปรุงประสบการณ์ผู้ใช้และการนำทาง ขณะที่ผู้ใช้เลื่อนหน้าเว็บลง ส่วนหัวแบบติดหนึบจะยังคงมองเห็นได้ เพื่อให้มั่นใจว่าลิงก์การนำทางที่สำคัญจะเข้าถึงได้ตลอดเวลา มาเจาะลึกความซับซ้อนของการสร้างส่วนหัวแบบติดหนึบโดยใช้ CSS กัน

อะไรใช้ Sticky Header?

ส่วนหัวแบบถาวรที่ยังคงคงที่ในตำแหน่งใดตำแหน่งหนึ่งบนหน้าเว็บเรียกว่า"ส่วนหัวแบบติดหนึบ"ในการสร้างฟังก์ชันดังกล่าว คุณสมบัติ CSS ที่เฉพาะเจาะจง เช่น คุณสมบัติ"ตำแหน่ง"ที่มีค่า"แท่ง"

ผู้ใช้สามารถอ่านลิงก์การนำทางหลักได้อย่างง่ายดายโดยไม่ต้องถูกบังคับให้เลื่อนกลับขึ้นไปที่ด้านบนของหน้า ทำให้ผู้ใช้สามารถนำทางได้อย่างราบรื่นและสะดวกสบายตลอดประสบการณ์การใช้งานเว็บไซต์ของเรา

มีการแสดงโลโก้และชื่อแบรนด์อย่างเด่นชัด จึงเป็นการรักษาลักษณะเฉพาะของแบรนด์

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

การออกแบบส่วนหัว: โครงสร้าง HTML

รากฐานที่สำคัญของส่วนหัวแบบติดหนึบที่มีประสิทธิภาพนั้นอยู่ที่สถาปัตยกรรม HTML หากต้องการสร้างองค์ประกอบสำคัญของส่วนหัวแบบติดหนึบ ให้ทำตามขั้นตอนเหล่านี้เพื่อสร้างองค์ประกอบ HTML ที่จำเป็น

 <body>
   <header>
     <span class="logo">Company Logo 🏠</span>
     <nav>
       <ul>
         <li><a href="#home">Home</a></li>
         <li><a href="#about">About</a></li>
         <li><a href="#services">Services</a></li>
         <li><a href="#contact">Contact</a></li>
       </ul>
     </nav>
   </header>
   <main id="home"><h1>Home page</h1></main>
   <section id="about"><h1>About</h1></section>
   <section id="services"><h1>Services</h1></section>
   <section id="contact"><h1>Contact</h1></section>
</body>

การออกแบบปัจจุบันใช้ส่วนประกอบส่วนหัวซึ่งรวมเอาสัญลักษณ์ของบริษัทควบคู่ไปกับองค์ประกอบการนำทางที่มีรายการไฮเปอร์ลิงก์ตามลำดับ ต่อจากนั้นจะใช้โครงหลักและโครงแบ่งส่วนหลายส่วนเพื่อแสดงทุกส่วนภายในพื้นที่เนื้อหา ขณะนี้หน้าเว็บจะแสดงดังนี้:

/th/images/screenshot-2023-10-26-at-11-35-40.jpg

วางรากฐานด้วย CSS

CSS ใช้คุณลักษณะของโมเดลกล่องต่างๆ เช่น Padding, Margin และ Flexbox เพื่อสร้างเลย์เอาต์ที่ดึงดูดสายตา โดยแต่ละส่วนจะมีความสูงเท่ากัน

 @import url("https://fonts.googleapis.com/css2?family=Quicksand:wght@600&display=swap");

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html { font-size: 62.5%; }

body { font-family: "Quicksand", sans-serif; }

main,
section { height: 100vh; }

.logo { font-size: 3rem; }

main,
header,
section {
  display: flex;
  align-items: center;
}

main { justify-content: center; }

header {
  justify-content: space-between;
  padding: 1rem 2rem;
  background: #b2babb;
 }

nav ul {
  display: flex;
  column-gap: 2rem;
  list-style: none;
}

a {
  text-decoration: none;
  font-size: 2rem;
  color: #333;
}

section { justify-content: center; }

#home { background: #2c3e50; }

#about { background: #ccccff; }

#services { background: #f5b7b1; }

#contact { background: #40e0d0; }

h1 {
 font-size: 4rem;
 color: #fff;
}

ตอนนี้หน้าควรมีลักษณะดังนี้:

/th/images/page-after-stylings-are-applied-1.jpg

การใช้เอฟเฟกต์ Sticky: CSS

หากต้องการแก้ไขปัญหาส่วนหัวที่เลื่อนออกจากหน้าจอขณะเลื่อนหน้าลง ให้ใช้คุณสมบัติ ตำแหน่ง ของ CSS และกำหนดค่าส่วนหัวเป็นองค์ประกอบ"ติดหนึบ"

คุณสมบัติเฉพาะนี้แสดงลักษณะที่ชวนให้นึกถึงทั้งตำแหน่งที่สัมพันธ์กันและตำแหน่งคงที่ โดยคำนึงถึงท่าทางการเลื่อนของผู้ใช้

 header {
  justify-content: space-between;
  padding: 1rem 2rem;
  position: sticky;
  top: 0;
}

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

เบราว์เซอร์ของคุณไม่รองรับแท็กวิดีโอ

จัดการปัญหาการซ้อนที่อาจเกิดขึ้น

เพื่อป้องกันไม่ให้ส่วนหัวติดหนึบถูกองค์ประกอบอื่น ๆ บนหน้าบดบัง ขอแนะนำให้ใช้คุณสมบัติ CSS z-index เพื่อให้แน่ใจว่าส่วนหัวยังคงมองเห็นได้และยังคงอยู่ในตำแหน่งที่กำหนดตลอดเวลา

 header {
  justify-content: space-between;
  padding: 1rem 2rem;
  position: sticky;
  top: 0;
  z-index: 9999;
}

รวมแอตทริบิวต์การเลื่อนที่ทันสมัยเข้ากับแท็ก HTML เพื่อปรับปรุงประสบการณ์ผู้ใช้โดยรวมในลักษณะที่หรูหรา:

 html {
  font-size: 62.5%;
  scroll-behavior: smooth;
}

การเลื่อนของหน้านี้ได้รับการปรับปรุงให้มีความราบรื่นและลื่นไหลเมื่อมีการเปลี่ยนระหว่างส่วนต่างๆ ทำให้ผู้ใช้ได้รับประสบการณ์ที่สนุกสนานยิ่งขึ้น

เบราว์เซอร์ของคุณไม่รองรับแท็กวิดีโอ

ยกระดับการนำทางเว็บด้วย CSS Sticky Headers

การรวมส่วนหัวแบบถาวรในการออกแบบเว็บไซต์ของคุณสามารถปรับปรุงประสบการณ์ผู้ใช้โดยรวมได้อย่างมาก การทำเช่นนี้จะช่วยให้ผู้เข้าชมจดจำเมนูการนำทางหลัก รักษาเอกลักษณ์ของแบรนด์ที่เหมือนกัน และทำให้ไซต์ของคุณมีรูปลักษณ์ที่ทันสมัย

การใช้ความสามารถของ CSS ทำให้การบรรลุผลลัพธ์นี้ทำได้ง่ายและมีประสิทธิภาพ การมีอยู่ของส่วนหัวคงที่อย่างต่อเนื่องจะเป็นประโยชน์อย่างมากในหลายภาคส่วน เนื่องจากความเกี่ยวข้องที่ยั่งยืนในแนวโน้มการออกแบบเว็บไซต์ แม้ว่าจะมีความผันผวนตามกาลเวลาก็ตาม