آموزش رایگان CSS

آموزش گام به گام طراحی مگا منو (Mega Menu) مدرن با CSS و HTML

13م خرداد 1405 محراب حسن زاده
آموزش گام به گام طراحی مگا منو (Mega Menu) مدرن با CSS و HTML

مقدمه؛ مگا منو (Mega Menu) چیست و چه کاربردی دارد؟

در وب‌سایت‌های بزرگ با تعداد دسته‌بندی‌های زیاد (مانند دیجی‌کالا یا وب‌سایت‌های شرکتی بزرگ)، منوهای کشویی ساده یا همان Dropdown دیگر پاسخگوی نیاز کاربران نیستند. در این حالت از مگا منو (Mega Menu) استفاده می‌شود. مگا منو یک منوی بازشوی عریض است که اطلاعات را در قالب چندین ستون، همراه با تصویر، لینک و حتی بنرهای تبلیغاتی نمایش می‌دهد تا تجربه کاربری (UX) بهتری ایجاد کند.

در این مقاله آموزشی قصد داریم بدون استفاده از کتابخانه‌های سنگین یا جاوااسکریپت، یک مگا منوی بی‌نظیر و مدرن را با استفاده از تکنولوژی قدرتمند CSS Grid و Flexbox پیاده‌سازی کنیم.

مرحله اول: ساختار استخوان‌بندی منو با HTML

ابتدا باید ساختار درختی کدهای HTML هدر و منو را تعریف کنیم. کلید ساخت یک مگا منوی واکنش‌گرا این است که هدر والد دارای موقعیت نسبی (relative) بوده و مگا منوی داخلی در حالت مطلق (absolute) نسبت به نوار اصلی تراز شود.

به نحوه قرارگیری بخش مگا منو درون آیتم منوی محصولات دقت کنید:


< nav class="navbar" >
  < div class="container" >
    < div class="logo" >وب‌کرافت< / div >
    < ul class="nav-links" >
      < li >< a href="#" >خانه< / a >< / li >
      < li class="mega-dropdown" >
        < a href="#" class="dropbtn" >خدمات ما < span class="arrow" >▼< / span >< / a >
        < div class="mega-menu" >
          < div class="mega-content" >
            < div class="mega-column" >
              < h3 >طراحی وب< / h3 >
              < a href="#" >طراحی سایت فروشگاهی< / a >
              < a href="#" >سایت شرکتی< / a >
              < a href="#" >پورتفولیو شخصی< / a >
            < / div >
            < div class="mega-column" >
              < h3 >سئو و بهینه‌سازی< / h3 >
              < a href="#" >سئو داخلی< / a >
              < a href="#" >سئو خارجی< / a >
              < a href="#" >آنالیز کلمات کلیدی< / a >
            < / div >
            < div class="mega-column" >
              < h3 >بازاریابی< / h3 >
              < a href="#" >تبلیغات کلیکی< / a >
              < a href="#" >مدیریت شبکه‌های اجتماعی< / a >
              < a href="#" >تولید محتوا< / a >
            < / div >
          < / div >
        < / div >
      < / li >
      < li >< a href="#" >درباره ما< / a >< / li >
    < / ul >
  < / div >
< / nav >

مرحله دوم: استایل‌دهی نوار ناوبری اصلی (Navbar)

در این بخش، کدهای پایه CSS برای مرتب‌سازی نوار هدر را اضافه می‌کنیم. با استفاده از display: flex آیتم‌های منو را در یک خط تراز می‌کنیم.


.navbar {
  background-color: #1e1b4b;
  position: relative;
  z-index: 1000;
}

.container {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 20px;
}

.nav-links {
  display: flex;
  list-style: none;
}

.nav-links > li > a {
  display: block;
  color: #e2e8f0;
  padding: 24px 18px;
  text-decoration: none;
  font-size: 15px;
  transition: color 0.3s;
}

مرحله سوم: جادوی قرارگیری مگا منو با CSS Grid

برای اینکه مگا منو کل عرض صفحه را بپوشاند، کلاس .mega-dropdown را که والد مگا منو است با position: static مقداردهی می‌کنیم و خود مگا منو را با position: absolute قرار می‌دهیم. بدین ترتیب مگا منو به جای محدود شدن به عرض دکمه والد، تمام پهنای هدر را در بر می‌گیرد:


.mega-dropdown {
  position: static !important;
}

.mega-menu {
  position: absolute;
  left: 0;
  right: 0;
  width: 100%;
  background-color: #ffffff;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  border-top: 3px solid #38bdf8;
  padding: 30px 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(15px);
  transition: all 0.3s ease-in-out;
}

/* نمایش مگا منو در حالت هوور */
.mega-dropdown:hover .mega-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

حالا برای چیدمان ستون‌های داخلی مگا منو از قدرت CSS Grid استفاده می‌کنیم تا ستون‌ها به شکلی کاملاً منظم و شیک نمایش داده شوند:


.mega-content {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}

.mega-column h3 {
  font-size: 16px;
  color: #1e1b4b;
  margin-bottom: 15px;
  border-bottom: 2px solid #f1f5f9;
  padding-bottom: 8px;
}

.mega-column a {
  display: block;
  color: #64748b;
  text-decoration: none;
  padding: 8px 0;
  font-size: 14px;
  transition: all 0.2s;
}

.mega-column a:hover {
  color: #38bdf8;
  padding-right: 5px;
}

نتیجه‌گیری

دیدید؟ ساخت یک مگا منوی بسیار پیشرفته و زیبا نیاز به کتابخانه‌های سنگین جاوااسکریپت ندارد. با به کارگیری درست مفاهیم تراز بندی مطلق (Absolute Navigation)، سیستم‌های مدرن CSS Grid و استفاده صحیح از ترنزیشن‌ها (Transitions)، می‌توانید منوهای شیک، کاربرپسند و بهینه برای سئو خلق کنید.


پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش کامل کنترل جریان و استفاده از if و else در جاوا اسکریپت: راهنمای جامع برای مبتدیان
2م بهمن 1402

آموزش کامل کنترل جریان و استفاده از if و else در جاوا اسکریپت: راهنمای جامع برای مبتدیان

مطالعه بیشتر
چگونه اسکریپت‌های ساده جاوا اسکریپت را در مرورگر بنویسیم و اجرا کنیم: راهنمای کامل برای مبتدیان
2م مهر 1402

چگونه اسکریپت‌های ساده جاوا اسکریپت را در مرورگر بنویسیم و اجرا کنیم: راهنمای کامل برای مبتدیان

مطالعه بیشتر
آموزش استفاده از box-shadow و text-shadow در CSS: ایجاد سایه‌های زیبا و جذاب
11م آبان 1403

آموزش استفاده از box-shadow و text-shadow در CSS: ایجاد سایه‌های زیبا و جذاب

مطالعه بیشتر
آموزش طراحی و استایل‌دهی فرم‌ها با CSS: ایجاد فرم‌های کاربرپسند و واکنش‌گرا
18م شهریور 1402

آموزش طراحی و استایل‌دهی فرم‌ها با CSS: ایجاد فرم‌های کاربرپسند و واکنش‌گرا

مطالعه بیشتر
آشنایی با متغیرها در PHP به زبان ساده (راهنمای جامع)
21م خرداد 1405

آشنایی با متغیرها در PHP به زبان ساده (راهنمای جامع)

مطالعه بیشتر
عملگرها و عبارات محاسباتی در جاوا اسکریپت: نحوه استفاده و کاربردهای مختلف
28م شهریور 1402

عملگرها و عبارات محاسباتی در جاوا اسکریپت: نحوه استفاده و کاربردهای مختلف

مطالعه بیشتر
سیر تا پیاز عملگرهای ریاضی در PHP + مثال‌های کاربردی
24م خرداد 1405

سیر تا پیاز عملگرهای ریاضی در PHP + مثال‌های کاربردی

مطالعه بیشتر
آموزش Event Handling و v-on در Vue.js | مدیریت رویدادها با مثال کاربردی
22م آذر 1404

آموزش Event Handling و v-on در Vue.js | مدیریت رویدادها با مثال کاربردی

مطالعه بیشتر
آموزش دسترسی به المان‌های HTML با استفاده از جاوا اسکریپت: راهنمای کامل با مثال‌ها
2م آبان 1403

آموزش دسترسی به المان‌های HTML با استفاده از جاوا اسکریپت: راهنمای کامل با مثال‌ها

مطالعه بیشتر
واحدهای CSS مدرن: آموزش استفاده از vw، vh، vmin و vmax برای طراحی واکنش‌گرا
11م آبان 1403

واحدهای CSS مدرن: آموزش استفاده از vw، vh، vmin و vmax برای طراحی واکنش‌گرا

مطالعه بیشتر
استفاده از Viewports و Viewport Units در CSS: طراحی واکنش‌گرا با vw، vh، vmin و vmax
16م آبان 1403

استفاده از Viewports و Viewport Units در CSS: طراحی واکنش‌گرا با vw، vh، vmin و vmax

مطالعه بیشتر
بررسی کتابخانه‌های محبوب جاوا اسکریپت: آشنایی با Lodash و Moment.js - مزایا و کاربردها
4م آبان 1403

بررسی کتابخانه‌های محبوب جاوا اسکریپت: آشنایی با Lodash و Moment.js - مزایا و کاربردها

مطالعه بیشتر

تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد