آموزش منو کشویی در بوت استرپ

در این بخش به منو کشویی در بوت استرپ (Dropdown) می پردازیم. منوهای کشویی منوهایی هستند که کاربر می‌تواند آن‌ها را باز یا بسته کند. این منوها لینک ها را به صورت یک لیست نمایش می‌دهند. برای ساخت منوهای کشویی تعاملی، می‌توان از افزونه جاوا اسکریپت Dropdown استفاده کرد.

پیش از آن که مثال ها و ویژگی های منوهای کشویی را بررسی کنیم، لازم است چند نکته مهم را بدانید:

  • کتابخانه Popper برای ساخت منوی کشویی در بوت استرپ استفاده می‌شود. این کتابخانه قابلیت تشخیص موقعیت صفحه (Viewport Detection) و جایگذاری پویا (Dynamic Placement) را فراهم می‌کند.

  • برای فعال کردن این قابلیت ها، ابتدا باید فایل popper.min.js را پیش از فایل جاوا اسکریپت بوت استرپ در صفحه قرار دهید.
    همچنین می‌توانید به جای آن از فایل های bootstrap.bundle.min.js یا bootstrap.bundle.js استفاده کنید، چون این فایل ها Popper را به طور پیش فرض شامل می‌شوند.

  • در نوار ناوبری (Navbar)، چون نیازی به جایگذاری پویا وجود ندارد، بوت استرپ برای موقعیت دهی Dropdown از Popper استفاده نمی‌کند.

منوی کشویی ساده

برای ایجاد یک منوی کشویی، باید دکمه یا لینک باز کننده Dropdown (Toggle) و منوی کشویی (Dropdown Menu) را داخل یک عنصر با کلاس .dropdown قرار دهید. هر عنصری که از ویژگی position: relative; استفاده کند، می‌تواند این نقش را ایفا کند.

در بسیاری از موارد، توسعه دهندگان از تگ <button> برای فعال سازی Dropdown استفاده می‌کنند. البته این افزونه با تگ <a> نیز به خوبی کار می‌کند. در مثال های زیر، از تگ <ul> برای نمایش ساختار منوی کشویی استفاده می‌شود. البته شما می‌توانید ساختار دلخواه خود را نیز پیاده سازی کنید.

پیاده سازی منو کشویی با استفاده از دکمه

با ایجاد چند تغییر در نشانه گذاری (Markup)، می‌توانید کلاس .btn را به یک دکمه کشویی (Dropdown Button) تبدیل کنید. در مثال زیر مشاهده می‌کنید که چطور می‌توان این قابلیت را با استفاده از تگ <button> پیاده سازی کرد.

دکمه Dropdown در بوت استرپ

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

پیاده سازی منو کشویی با استفاده از لینک

هرچند استفاده از تگ <button> برای دکمه باز و بسته کننده Dropdown گزینه پیشنهادی به شمار می‌آید، اما گاهی ممکن است نیاز داشته باشید از تگ <a> استفاده کنید. برای همین، بهتر است ویژگی role="button" را به این تگ اضافه کنید. با افزودن این ویژگی، ابزارهای کمکی مانند صفحه خوان ها عملکرد این کنترل را به درستی تشخیص می‌دهند و کاربران دارای نیازهای ویژه نیز می‌توانند از منوی کشویی به راحتی استفاده کنند.

لینک Dropdown در بوت استرپ

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

رنگ بندی منو کشویی در بوت استرپ

برای رنگ منوهای کشویی (Dropdown Menu) می‌توانید از کلاس های زمینه ای استفاده کنید. این کلاس ها امکان می‌دهند ظاهر منوی کشویی را با رنگ های مختلف سفارشی کنید.

رنگ بندی منو کشویی در بوت استرپ

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

دکمه Split

دکمه های Split Dropdown از نظر ساختار بسیار شبیه به دکمه های ساده Dropdown هستند. برای ایجاد آن ها، همان ساختار معمول Dropdown را به کار می‌بریم، اما باید کلاس .dropdown-toggle-split را نیز اضافه کنیم. این کلاس باعث می‌شود فضای کافی در اطراف نماد فلش فراهم شود.

زمانی که این کلاس اضافی را به کار ببرید، پدینگ افقی در دو طرف فلش به میزان ۲۵ درصد کاهش پیدا می‌کند. همچنین حاشیه چپ که معمولا در دکمه های عادی Dropdown وجود دارد، حذف می‌شود.

این تغییرات باعث می‌شود:

  • فلش دقیقا در وسط بخش Split قرار بگیرد.
  • ناحیه قابل کلیک در کنار دکمه اصلی به شکل استاندارد و مناسب در بیاید.

دکمه Split بوت استرپ

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

اندازه دکمه ها

منوهای کشویی (Dropdown Menus) با دکمه هایی در هر اندازه به درستی کار می‌کنند. این موضوع شامل دکمه های پیش فرض و همچنین دکمه های Split Dropdown نیز می‌شود.

دکمه Dropdown بزرگ

برای ایجاد دکمه های بزرگ تر در منوی کشویی، کافی است به دکمه خود علاوه بر کلاس .btn، کلاس .btn-lg را نیز اضافه کنید. با این کار، اندازه دکمه به صورت بزرگ نمایش داده می‌شود.

دکمه Dropdown بزرگ

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

دکمه Dropdown کوچک

برای ساخت دکمه های کوچک تر در منوی کشویی، کافی است به دکمه خود علاوه بر کلاس .btn، کلاس .btn-sm را نیز اضافه کنید. با این ترکیب، دکمه به صورت کوچک نمایش داده می‌شود.

دکمه Dropdown کوچک

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

منو کشویی تیره در بوت استرپ

(منسوخ شده در نسخه 5.3.0)

برای ایجاد یک منوی کشویی تیره، کافی است کلاس .dropdown-menu-dark را به یک .dropdown-menu موجود اضافه کنید. با این کار، منوی کشویی با ظاهر تیره نمایش داده می‌شود. در نتیجه، این منو به خوبی با نوار ناوبری تیره یا استایل های سفارشی تیره هماهنگ خواهد شد.
علاوه بر این، در این حالت نیازی نیست آیتم های درون منو را تغییر دهید.

تغییرات جدید در نسخه 5.3.0

در نسخه 5.3.0، نوع تیره برای کامپوننت ها منسوخ شده است. به جای استفاده از .dropdown-menu-dark، اکنون باید از قابلیت جدید Color Mode استفاده کنید. برای این منظور، مقدار data-bs-theme="dark" را روی عنصر ریشه، عنصر والد یا خود کامپوننت Dropdown تنظیم کنید. با این روش، ظاهر تیره برای Dropdown به درستی اعمال می‌شود.

منو کشویی تیره

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

برای استفاده از این قابلیت در نوار ناوبری، کافی است آن را درون ساختار نوار ناوبری خود قرار دهید:

منو ناوبری تیره در بوت استرپ

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

جهت ها

در حالت راست به چپ، جهت منوهای کشویی به صورت معکوس نمایش داده می‌شود. در این حالت، کلاس .dropstart در سمت راست دیده می‌شود.

منوی کشویی وسط چین 

برای وسط چین کردن منوی کشویی در زیر دکمه باز کننده (Toggle)، کافی است کلاس .dropdown-center را روی عنصر والد اعمال کنید.
با این کار، منوی کشویی دقیقا در مرکز دکمه نمایش داده می‌شود.

منوی کشویی وسط چین

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

منوی Dropup در بوت استرپ

برای اینکه منوی کشویی بالای عنصر باز شود، کافی است کلاس .dropup را به عنصر والد اضافه کنید. با این تغییر، منوی Dropdown به جای اینکه زیر دکمه باز شود، در بالای آن نمایش داده می‌شود.

منوی Dropup بوت استرپ

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

منوی Dropup وسط چین

برای وسط چین کردن منوی Dropup بالای عنصر، کافی است کلاس .dropup-center را به همراه کلاس .dropup روی عنصر والد قرار دهید. با این کار، منوی کشویی دقیقا در مرکز بالای دکمه یا عنصر مربوطه نمایش داده می‌شود.

منوی Dropup وسط چین

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

منوی Dropend

برای اینکه منوی کشویی در سمت راست عنصر نمایش داده شود، کافی است کلاس .dropend را به عنصر والد اضافه کنید. با این تنظیم، منوی کشویی در سمت راست دکمه یا عنصر مربوطه باز خواهد شد.

منوی Dropend

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

منوی Dropstart بوت استرپ

برای اینکه منوی کشویی در سمت چپ عنصر نمایش داده شود، کافی است کلاس .dropstart را به عنصر والد اضافه کنید. با این تنظیم، منوی کشویی در سمت چپ دکمه یا عنصر مربوطه باز خواهد شد.

منوی Dropstart بوت استرپ

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

آیتم های منو (Menu Items)

برای نمایش آیتم های منوی کشویی در بوت استرپ، می‌توانید از تگ های <a> یا <button> استفاده کنید.

در مثال زیر، نحوه نمایش آیتم های منو با استفاده از تگ <button> نشان داده شده است:

آیتم های منوی کشویی در بوت استرپ

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

در مثال زیر، نحوه نمایش آیتم های منوی کشویی با استفاده از تگ <a> نشان داده شده است:

آیتم های منوی کشویی با تگ a

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

حالت فعال منو کشویی در بوت استرپ

برای فعال کردن استایل آیتم های منوی کشویی، می‌توانید کلاس .active را به آن ها اضافه کنید. این کلاس ظاهر آیتم مورد نظر را به حالت فعال (Active) تغییر می‌دهد.

علاوه بر این، برای اینکه ابزارهای کمکی (مانند صفحه خوان ها) بتوانند وضعیت فعال بودن آیتم را تشخیص دهند، باید از ویژگی aria-current استفاده کنید. اگر آیتم مربوط به صفحه جاری است، مقدار این ویژگی را برابر "page" قرار دهید. همچنین اگر آیتم به عنوان مورد فعال در یک مجموعه در نظر گرفته می‌شود، مقدار true را برای آن مشخص کنید.

حالت فعال منو کشویی در بوت استرپ

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

حالت غیرفعال در منو کشویی (Disabled)

برای غیرفعال کردن منوی کشویی، کافی است کلاس .disabled را به آن اضافه کنید.

حالت غیرفعال در منو کشویی

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

تراز بندی منو کشویی در بوت استرپ

  • به طور پیش فرض، منوی کشویی در فاصله ۱۰۰ درصد از بالا و در امتداد سمت چپ عنصر والد قرار می‌گیرد.
  • برای تغییر جهت منوی کشویی، می‌توانید از کلاس های .drop* استفاده کنید. علاوه بر این، می‌توانید با استفاده از کلاس های کمکی دیگر (Modifier Classes) تراز و جهت منو را مدیریت کنید.
  • اگر می‌خواهید منوی کشویی از سمت راست تراز شود، کافی است کلاس .dropdown-menu-end را به .dropdown-menu اضافه کنید.
  • نکته مهم این است که در حالت نمایش راست به چپ (RTL)، کلاس .dropdown-menu-end باعث می‌شود که منو در سمت چپ ظاهر شود.

تراز بندی منو کشویی در بوت استرپ

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

تراز بندی واکنش گرا

برای ایجاد تراز بندی واکنش گرا در منوی کشویی، ابتدا باید ویژگی data-bs-display="static" را به Dropdown اضافه کنید. با این کار، موقعیت یابی پویا (Dynamic Positioning) غیرفعال می‌شود و می‌توانید از کلاس های واکنش گرا (Responsive Variation Classes) استفاده کنید.

برای اینکه منوی کشویی در سمت راست از یک نقطه شکست (Breakpoint) مشخص تراز شود، کافی است یکی از کلاس های زیر را به منو اضافه کنید:

.dropdown-menu{-sm|-md|-lg|-xl|-xxl}-end

به این ترتیب، منو از Breakpoint مورد نظر به بعد به سمت راست تراز می‌شود.

تراز بندی واکنش گرا منو کشویی بوت استرپ

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

برای اینکه منوی کشویی از یک نقطه شکست مشخص یا بزرگ تر به سمت چپ تراز شود، کافی است کلاس های .dropdown-menu-end و .dropdown-menu{-sm|-md|-lg|-xl|-xxl}-start را به منو اضافه کنید. با این تنظیم، منو از Breakpoint تعیین شده به بعد در سمت چپ عنصر والد نمایش داده می‌شود.

تراز سمت چپ منو کشویی در حالت واکنش گرا

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

گزینه های تراز بندی منو کشویی بوت استرپ

برای راحتی کار، می‌توانید بیشتر گزینه های تراز بندی که در مثال های بالا مشاهده کردید را در یکجا به کار ببرید.

گزینه های تراز بندی منو کشویی بوت استرپ

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

محتوای منو کشویی بوت استرپ

هدر ها

برای افزودن هدر (Header) به منوی کشویی و برچسب گذاری بخش های مختلف منو، کافی است کلاس .dropdown-header را به آیتم مورد نظر اضافه کنید.

هدر ها در منو کشویی بوت استرپ

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

جداکننده ها در منو کشویی

برای جدا کردن گروه های مرتبط از آیتم های منوی کشویی، می‌توانید کلاس .dropdown-divider را به منو اضافه کنید.

جداکننده ها در منو کشویی

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

متن دلخواه در منو Dropdown بوت استرپ

برای قرار دادن متن دلخواه در منوی کشویی، می‌توانید از کلاس .dropdown-item-text همراه با ابزارهای فاصله گذاری (Spacing Utilities) استفاده کنید. توجه داشته باشید که ممکن است برای کنترل عرض منو، نیاز به افزودن استایل های تکمیلی داشته باشید.

متن دلخواه در منو Dropdown بوت استرپ

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

ایجاد فرم در منوی کشویی

برای اضافه کردن یا ایجاد یک فرم در منوی کشویی، می‌توانید فرم مورد نظر را داخل منو قرار دهید. همچنین می‌توانید از کلاس های کمکی فاصله گذاری (Margin یا Padding Utilities) استفاده کنید تا فضای مناسب در اطراف فرم ایجاد شود.

ایجاد فرم در منوی کشویی bootstrap

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

گزینه های Dropdown

برای تغییر موقعیت منوی کشویی، می‌توانید از ویژگی های data-bs-offset یا data-bs-reference استفاده کنید.

گزینه های Dropdown

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

تنظیمات بستن خودکار منو کشویی

به طور پیش فرض، وقتی روی آیتم های داخل منوی کشویی یا بیرون از آن کلیک می‌کنید، منوی کشویی به صورت خودکار بسته می‌شود. برای سفارشی کردن این رفتار، می‌توانید از گزینه autoClose استفاده کنید.

تنظیمات بستن خودکار منو کشویی

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

اگر به دنبال یادگیری بیشتر هستید، آموزش بوت استرپ به شما کمک می‌کند تا امکانات این فریم ورک را به طور کامل بشناسید.

5/5 - (1 امتیاز)

راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.

آموزش انیمیشن‌ سازی دو بعدی با موهو – خلق انیمیشن‌ های خلاقانه شبیه دیرین دیرین
  • انتشار: ۱۱ خرداد ۱۴۰۴

دسته بندی موضوعات

آخرین محصولات فروشگاه

مشاهده همه

نظرات

بازخوردهای خود را برای ما ارسال کنید