منوی افقی تمام عرض خوب. چگونه یک منوی css واکنش گرا بسازیم؟ نحوه کشش منوی افقی به عرض هدر
سلام. برای مدت طولانی من پستی در مورد نحوه عملکرد html / css ننوشتم. اخیراً من تازه شروع به ایجاد یک طرح جدید کردم و در این فرآیند با یک ترفند جالب روبرو شدم که به شما امکان می دهد منو را لاستیکی کنید (می توانید موارد جدیدی را به آن اضافه کنید و اندازه آن افزایش نمی یابد اما همیشه 100 خواهد بود. % از بلوک والد). بنابراین، امروز ما در حال پیاده سازی یک منوی لاستیکی در css هستیم.
اگر برای خواندن مقاله تنبل هستید، می توانید این ویدیو را تماشا کنید. نویسنده همچنین همه چیز را بسیار زیبا توضیح می دهد:
منوی سیالات CSS مرحله 1
اولین قدم همیشه نشانه گذاری html است که بدون آن است. اما در مورد ما، همه چیز ساده خواهد بود:
بلوک بسته بندی منو
خود منو، از طریق یک لیست گلولهدار ارائه شده است (تگ ul)
خوب، آیتم های منو در داخل، و در آنها، به ترتیب، در حال حاضر لینک وجود دارد
حالا همه چیز را به شکل دلخواه در می آوریم، CSS وارد کار می شود.
مرحله 2 - سبک های اساسی
در مرحله بعد، استایل ها را به بلوک wrapper اضافه می کنم. یعنی حداکثر عرض را روی 600 پیکسل قرار می دهم (فقط برای اینکه راحت اسکرین شات بگیرید تا منو جا بگیرد) و همچنین بلوک را در مرکز قرار می دهم.
اکنون خود منو را انتخاب می کنیم. نشانگرها را از آن حذف می کنم (از تگ ul)، گرادیان خطی پس زمینه را ایجاد می کنم و مهمتر از همه، با ویژگی display: table-row، ظرف منو را مانند یک ردیف جدول رفتار می کنم. این برای دستکاری های بیشتر مهم است.
همانطور که می بینید، کد بالا همه چیزهایی را که در مورد آن نوشتم حل کرد. به هر حال، تولید گرادینت ها با استفاده از ابزار تولید کننده گرادیان نهایی CSS راحت است. یک وقت در مورد آن خواهم نوشت.
vertical-align: bottom - این خاصیت لازم است تا اگر متن موجود در آیتم منو 2 خط داشته باشد دقیقاً نمایش داده شود. وقتی منو درست می کنیم، می تونید این ویژگی رو حذف کنید، بزرگنمایی کنید تا آیتم ها کوچک شده و متن روی دو خط بپیچید و مشکل نمایش رو ببینید. ملک را برگردانید و همه چیز درست می شود.
display: table-cell - از آنجایی که ما خود منوی نمایش را به عنوان یک ردیف جدول تنظیم می کنیم، منطقی است که موارد آن را به عنوان سلول در جدول نمایش دهیم. لازم است.
عرض: خودکار - بسته به طول متن در پاراگراف، عرض به طور خودکار محاسبه می شود
text-align: مرکز فقط برای تراز کردن متن داخل در مرکز است
ارتفاع: 50 پیکسل - ارتفاع را روی 50 پیکسل تنظیم کنید
خوب، border-right فقط یک حاشیه در سمت راست است، چنین جداکننده ای برای آیتم ها
در حالی که منو ناخوشایند به نظر می رسد، اما اشکالی ندارد، وقت آن است که آن را به ذهن بیاورید.
آخرین کاری که باید انجام دهید این است که به پیوندهای داخل پاراگراف ها استایل بدهید. در اینجا من این کد را دارم:
و این همان چیزی است که منو در حال حاضر به نظر می رسد:
باز هم چند خط را توضیح می دهم:
ویژگی text-decoration زیرخط پیش فرض را از لینک ها حذف می کند
عرض: 1000 پیکسل شاید مهمترین خط باشد. باید پیوندها را تقریباً به همان عرض تنظیم کنید، شاید کمتر، اما همیشه بیشتر از وسیع ترین آیتم منو. پهنای پیوندها 1000 پیکسل نخواهد بود زیرا عرض آن توسط آیتم منوی li محدود می شود که عرض آن روی خودکار تنظیم شده است، اما باعث می شود هرچقدر آیتم در منو باشد، همیشه 100 باشد. درصد عرض
vertical-align: وسط و نمایش: جدول-سلول - اولی متن را به صورت عمودی با مرکز تراز می کند و دومی نیز پیوندها را به عنوان سلول نمایش می دهد. هر دو ویژگی مورد نیاز است.
فونت - خوب، این فقط مجموعه ای از تنظیمات برای فونت است. در مورد ویژگی های css برای فونت ها در این مقاله بخوانید.
مرحله 4 (اختیاری) می توانید تعامل را اضافه کنید
به عنوان مثال، برای تغییر رنگ یک آیتم منو در حالت شناور. این به سادگی با استفاده از کلاس شبه شناور اجرا می شود:
منوی R li:hover( پس زمینه رنگ: #6bba70;
}
تست منو از نظر لاستیکی
عالی است، منوها آماده هستند، اما ما مهمترین چیز را بررسی نکردیم - همانطور که به شما قول داده بودم چقدر لاستیکی است. خوب، من 2 مورد دیگر را به منو اضافه می کنم:
پهنای منو 600 پیکسل باقی می ماند. بقیه موارد فقط کمی کوچک می شوند تا 2 مورد جدید جا شوند.
من یک پاراگراف طولانی دیگر اضافه می کنم:
همانطور که می بینید، منو کمی بیشتر کوچک شد و مورد طولانی کاملاً عادی نمایش داده شد. و اگر ویژگی vertical-align: bottom که به شما گفتم نبود، منو بدتر به نظر می رسید.
من منو را به سه مورد کاهش می دهم.
آیتم ها بسیار آزادتر شده اند، اما خود منو در عرض تغییر نکرده است. بنابراین ما یک منوی 100٪ لاستیکی درست کردیم!
چگونه آن را تطبیق دهیم؟
در اصل، اگر بلوک لفاف را نه ثابت، بلکه روی حداکثر عرض تنظیم کنید، حتی نیازی به تطبیق آن نیست. در مورد من، ویژگی max-width: 600px را دارم، و زمانی که عرض کمتر از 600px شود، بلوک به سادگی به دنبال صفحه کاهش می یابد، بدون اینکه یک اسکرول افقی تشکیل شود.
خوب، اگر می خواهید به طریقی منو را در دستگاه های تلفن همراه یا صفحه های گسترده تغییر دهید یا اصلاح کنید، پرسش های رسانه ای به شما کمک می کنند! در ساخت وب سایت موفق باشید!
منوی افقی لیستی از بخش های سایت است، بنابراین منطقی تر است که آن را در داخل عنصر علامت گذاری کنید
و سپس استایل های CSS را روی عناصر آن اعمال کنید. این ترتیب منو به دلیل مزایای آشکار در موقعیت آن در یک صفحه وب رایج ترین است.نحوه ایجاد یک منوی افقی: نمونه های نشانه گذاری و طراحی نشانه گذاری HTML و سبک های اساسی برای منوی افقی
بهطور پیشفرض، همه آیتمهای فهرست بهصورت عمودی روی هم چیده میشوند و عرض کامل عنصر کانتینر را میگیرند، که به نوبه خود تمام عرض بلوک ظرف آن را میگیرد.
یک منوی افقی در داخل یک تگ می تواند به صورت اختیاری در داخل یک عنصر ... و/یا ... قرار گیرد. این نشانه گذاری html به معنای معنایی و همچنین فرصتی اضافی برای قالب بندی بلوک منو می دهد.
روش های مختلفی برای قرار دادن آنها به صورت افقی وجود دارد. ابتدا باید سبک های پیش فرض مرورگر را برای عناصر ناوبری بازنشانی کنید:
Ul (لیست به سبک: هیچکدام؛ /*حذف نشانگرهای لیست*/ حاشیه: 0؛ /*حذف حاشیه بالا و پایین 1em*/ padding-left: 0؛ /*حذف بالشتک سمت چپ 40px*/) (تزیین متن: هیچکدام؛ /*زیر متن پیوند را بردارید*/)
روش 1. li (نمایش: درون خطی؛)
موارد فهرست را به صورت درون خطی قرار دهید. در نتیجه، آنها به صورت افقی مرتب می شوند، در سمت راست، یک شکاف برابر با 0.4em بین آنها اضافه می شود (محاسبه شده نسبت به اندازه فونت). برای حذف آن، یک حاشیه سمت راست منفی به li li اضافه کنید (حاشیه-راست: -4px؛) . در مرحله بعد، لینک ها را به دلخواه استایل کنید.
روش 2. li (شناور: چپ؛)
عناصر لیست را شناور می کنیم. در نتیجه آنها به صورت افقی مرتب می شوند. ارتفاع بلوک ظرف ul صفر می شود. برای حل این مشکل، (سرریز: hidden;) را به ul اضافه می کنیم، آن را گسترش می دهیم و بنابراین اجازه می دهیم عناصر شناور را در خود جای دهد. برای پیوندها، یک (نمایش: بلوک؛) اضافه کنید و به دلخواه آنها را استایل دهید.
روش 3. li (نمایش: بلوک درون خطی؛)
ساخت اقلام لیست به صورت درون خطی. آنها به صورت افقی مرتب شده اند، مانند مورد اول، یک شکاف در سمت راست تشکیل می شود. برای پیوندها، یک (نمایش: بلوک؛) اضافه کنید و به دلخواه آنها را استایل دهید.
روش 4. ul (نمایش: flex؛)
با استفاده از . در نتیجه، عناصر لیست به صورت افقی قرار می گیرند. برای پیوندها یک (نمایش: مسدود کردن؛) اضافه کنید و به دلخواه آنها را استایل دهید.
1. منوی پاسخگو با جلوه زیر خط هنگام قرار دادن ماوس روی یک پیوند
ما این مجموعه را با درسی در مورد منوهای کشویی ادامه می دهیم. در ردیف بعدی یک منوی کشویی افقی خودت انجام بده در css است.
اگر به طور تصادفی به اینجا رسیدید یا به دنبال اجرای دیگری از منوی کشویی بودید، به شما توصیه می کنم به بخش والد بروید.
در این بخش منوی کشویی افقی در CSS و HTML توضیح داده می شود.
پیمایش صفحه:
بنابراین، وظیفه ما:
ایجاد منوی کشویی افقی css (در لیست های ul li) بدون استفاده از jQuery و Javascript و همچنین بدون استفاده از جداول
در کدمنوی کشویی افقی html
اول از همه، قبل از شروع کدنویسی، باید یک قالب html برای منو بسازیم.
با توجه به اینکه در حال ساخت یک منوی جهانی هستیم، می خواهم آن را تا حد امکان شبیه به خروجی منوی وردپرس کنم. به نظر من، این یکی از ساده ترین و همه کاره ترین کدهای منوی Html است. به نظر می رسد این است:
خانه
درباره ما
خدمات ما
سرویس شماره 1 ما
سرویس شماره 2 ما
سرویس شماره 3 ما
سرویس شماره 4 ما
سرویس 5
اخبار
مخاطب
همانطور که از کد می بینید، منوی کشویی ما در لیست های ul و li پیاده سازی می شود. منو بدون استایل CSS به این صورت است:
بیایید بگوییم که زشت به نظر می رسد، مانند یک لیست معمولی. در مرحله بعد، باید این منو را با سبک های CSS تزئین کنیم.
منوی کشویی افقی CSS
سبک های CSS برای منوهای کشویی و موارد دیگر به عنوان هوا ضروری هستند. پس از همه، تب کشویی بر اساس شبه کلاس:hover ساخته شده است.
این هنوز پایان کار نیست، فقط بخشی از CSS برای منوی اصلی افقی است. در مرحله بعد، استایل های منوی کشویی را می نویسیم:
#menu1 ul li ul( موقعیت: مطلق؛ بالا: 36 پیکسل؛ سمت چپ: 0 پیکسل؛ نمایشگر: هیچ؛ عرض: 200 پیکسل؛ پس زمینه: #EBBD5B؛ ) #menu1 ul li:hover ul(نمایش:بلاک؛)/*این خط پیاده سازی می کند مکانیزم حذف*/ #menu1 ul li ul li( float:none; width:100%; ) #menu1 ul li ul li a( display:block; text-transform:none; height:auto; padding:7px 25px; عرض: 100%؛ اندازه جعبه:حاشیه-جعبه؛ حاشیه-بالا:1px جامد #ffffff; ) #menu1 اول لی اول لی:فرست-فرزند a(border-top:0px;) #menu1 ul li ul li a:hover( پس زمینه:#FDDC96؛ رنگ:#6572BC؛ )
حالا تمام. مکانیسم کشویی خود در یک خط پیاده سازی می شود.
پوست را با این منو ببینید:
برنج. 2 (منوی کشویی افقی)
در زیر نمایشی از عملکرد منوی کشویی و همچنین لینکی برای دانلود کد منبع وجود دارد. (دمو به صورت کشویی روی این صفحه باز می شود، نیازی به کلیک بر روی باز کردن در پنجره جدید 🙂 یا استفاده از چرخ ماوس نیست)
منوی کشویی افقی تمام عرض
بسیاری از شما می توانید مرا سرزنش کنید و بگویید که چنین منوهایی همانطور که در بالا نشان دادم سلامی از گذشته است و تا حدی حق با شماست، اگرچه من با طرح های تازه ای با چنین منوهایی روبرو شده ام.
امیدوارم مثال بالا را دانلود کرده باشید. Html برای ما یکسان است، اما ما CSS را به طور کامل تغییر خواهیم داد. شما به سادگی می توانید کد CSS را از اینجا بگیرید و آن را در نمونه دانلود شده قرار دهید یا ببینید در حالت نمایشی چگونه کار می کند.
#conteiner( عرض: 1000 پیکسل؛ ارتفاع: خودکار؛ حاشیه: 0 پیکسل خودکار؛ padding-top: 10 پیکسل؛ ) #menu1( موقعیت: نسبی؛ نمایشگر: بلوک؛ عرض: 100 درصد؛ ارتفاع: خودکار؛ شاخص z: 10؛ ) #menu1 ul( موقعیت: نسبی؛ نمایش: بلوک؛ حاشیه: 0 پیکسل؛ بالشتک: 0 پیکسل؛ عرض: 100 درصد؛ ارتفاع: خودکار؛ سبک فهرست: هیچ؛ پسزمینه: #F3A601؛ ) #menu1 > ul( تراز کردن متن: توجیه؛ اندازه فونت: 1 پیکسل؛ ارتفاع خط: 1 پیکسل؛ ) #menu1 > ul::after( display:inline-block; عرض:100%؛ ارتفاع:0px; محتوا:" "; ) #menu1 ul li( position :relative; display:inline-block; عرض:auto; ارتفاع:auto;Text-align:top; text-align:left; ) #menu1 ul li a(نمایش:block; padding:9px 35px 0px 35px;اندازه قلم :14px؛ font-family:Arial, sans-serif؛ color:#ffffef؛ line-height:1.3em؛ text-decoration:none؛ font-weight:bold; text-transform: بزرگ؛ ارتفاع:36px؛ اندازه جعبه :border-box; ) #menu1 ul li > a:hover, #menu1 ul li:hover > a( background:#EBBD5B; color:#2B45E0; ) #menu1 ul li ul( position:absolute; top:36px; چپ :0px; نمایش: هیچ عرض: خودکار; پس زمینه:#EBBD5B; white-space:nowrap; ) #menu1 ul li:last-child ul(/*آخرین مورد به سمت راست لنگر مییابد*/ left:auto; right:0px; ) #menu1 ul li:hover ul(display:block;)/*این خط حذف مکانیسم*/ #menu1 ul li ul li( display:block; عرض: auto; ) #menu1 ul li ul li a( display:block; text-transform:none; height:auto; padding:7px 35px; width :100% ؛ اندازه جعبه:حاشیه-جعبه؛ حاشیه-بالا:1px جامد #ffffff; ) #menu1 اول لی اول لی:فرست-فرزند a(border-top:0px;) #menu1 ul li ul li a:hover ( پس زمینه: #FDDC96؛ رنگ: #6572BC؛ )
همچنین، این مثال با مثال اول از این جهت متفاوت است که منوی کشویی، خود کشویی، بسته به عرض همه آیتمهای منو کشیده میشود.
برای آیتم های منوی بسیار طولانی، این گزینه ممکن است خیلی راحت نباشد، زیرا آنها از محدوده خارج می شوند. برای غیرفعال کردن این ویژگی، کافی است ویژگی "white-space: nowrap;" را جستجو کنید. انتخابگر #menu1 ul li ul و حذف آن.
در زیر می توانید یک نسخه نمایشی را مشاهده کنید یا منبع منوی کشویی افقی را دانلود کنید:
بدون جداکننده، این منو به نظر می رسد. جداکننده ها را می توان به صورت دستی به html اضافه کرد، اما اگر یک CMS مانند وردپرس دارید، اضافه کردن آن به صورت دستی چندان راحت نیست.
منوی کشویی افقی با جداکننده
ده ها گزینه در مورد نحوه اضافه کردن یک نوار (جداکننده) بین آیتم های منو با استفاده از CSS خالص وجود دارد. گزینههایی که از::before یا::after یا بسیار سادهتر حاشیه چپ، حاشیه-راست استفاده میکنند، تکرار نمیکنم.
موقعیتهایی وجود دارد که چیدمان آنقدر شگفتانگیز ساخته شده است که jquery ضروری است.
کد Html ما یکسان باقی می ماند، ما فقط کتابخانه jQuery و فایلی را که در همان ابتدا از آن استفاده می کند شامل می شود:
درست بعد از
همانطور که متوجه شدید، باید یک فایل ایجاد کنید script-menu-3.jsو این کد کوچک را در آنجا قرار دهید:
$(document).ready(function()($("#menu1 > ul > li:not(:last-child)").after(" "); ));
استایلهای CSS برای چنین منویی باید همانطور که هستند باقی بمانند، + این قطعه را در انتها بیندازید:
#menu1 ul li.razd(ارتفاع:28px؛ عرض:1px؛ پسزمینه:#ffffff؛ margin-top:4px؛ )
چنین منوی کشویی افقی با جداکننده در jQuery به شکل زیر خواهد بود:
می توانید نسخه ی نمایشی را مشاهده کنید یا قالب منوی افقی را در زیر دانلود کنید:
مزایای چنین راه حلی عبارتند از:
منو به صورت پویا کشیده می شود.
تورفتگی از جداکننده تا پاراگراف در همه جا یکسان است.
طراحی زیباتر و انعطاف پذیرتر
منوی کشویی لایهای افقی CSS+HTML
از آنجایی که ما در مورد منوهای کشویی چند سطحی در شناور صحبت می کنیم، احتمالاً ارزش تقسیم آنها به زیر گروه ها را دارد:
با ویپاداشکا هنگام اشاره به پهلو
با لانژ پاپ آپ سطح سوم
در مثالهایم، یک منوی چند سطحی CSS را برای 3 سطح نشان میدهم، سپس فکر میکنم حدس زدن آنچه باید انجام شود دشوار نخواهد بود.
منوی کشویی چند سطحی با vipad در کناری در حالت شناور
برای شروع، باید کمی html خود را اصلاح کنیم. چند خط برای سطح 3 در آنجا اضافه می شود:
خانه
درباره ما
خدمات ما
سرویس شماره 1 ما
اضافه شدن به سرویس 1
اضافه شدن به سرویس 2
سرویس شماره 2 ما
اضافه شدن به سرویس 3
اضافه شدن به سرویس 4
سرویس شماره 3 ما
سرویس شماره 4 ما
سرویس 5
اخبار
مخاطب
نقشه راه
افزونه نقشه
اضافه برای نقشه 2
فرم انتقادات و پیشنهادات
#conteiner( عرض: 1000 پیکسل؛ ارتفاع: خودکار؛ حاشیه: 0 پیکسل خودکار؛ padding-top: 10 پیکسل؛ ) #menu1( موقعیت: نسبی؛ نمایشگر: بلوک؛ عرض: 100 درصد؛ ارتفاع: خودکار؛ شاخص z: 10؛ ) #menu1 ul( موقعیت: نسبی؛ نمایش: بلوک؛ حاشیه: 0 پیکسل؛ بالشتک: 0 پیکسل؛ عرض: 100 درصد؛ ارتفاع: خودکار؛ سبک فهرست: هیچ؛ پسزمینه: #F3A601؛ ) #menu1 > ul( تراز کردن متن: توجیه؛ اندازه فونت: 1 پیکسل؛ ارتفاع خط: 1 پیکسل؛ ) #menu1 > ul::after( display:inline-block; عرض:100%؛ ارتفاع:0px; محتوا:" "; ) #menu1 ul li( position :relative; display:inline-block; عرض:auto; height:auto; عمودی-align:top; text-align:left; ) #menu1 ul li.razd( height:28px; عرض:1px; background:#ffffff; margin-top:4px; ) #menu1 ul li a(نمایش:block; padding:9px 45px 0px 45px;اندازه قلم:14px؛ font-family:Arial, sans-serif; color:#ffffef; ارتفاع خط:1.3 em؛ text-decoration: هیچ؛ فونت-وزن: درشت؛ تبدیل متن: بزرگ؛ ارتفاع: 36 پیکسل؛ اندازه جعبه: border-box؛ ) #menu1 ul li > a:hover, #menu1 ul li:hover > a ( پس زمینه: #EBBD5B; color:#2B45E0; ) #menu1 ul li ul( موقعیت: مطلق؛ بالا: 36 پیکسل؛ سمت چپ: 0 پیکسل؛ نمایش: هیچ؛ عرض: خودکار؛ پسزمینه: #EBBD5B؛ فضای سفید:nowrap؛ ) #menu1 > ul > li:last-child > ul(/*آخرین مورد به سمت راست متصل می شود*/ left:auto; right:0px; ) #menu1 ul li:hover > ul(display:block;)/*این خط مکانیسم حذف را پیاده سازی می کند*/ #menu1 ul li ul li( display:block; عرض: auto; ) #menu1 ul li ul li a( display:block; text-transform:none; height:auto; padding:7px 45px; عرض:100%;sizing box:border -box ; border-top:1px solid #ffffff; ) #menu1 ul li ul li:first-child > a(border-top:0px;) #menu1 ul li ul li a:hover, #menu1 ul li ul li: hover > a( background:#FDDC96; color:#6572BC; ) #menu1 ul li ul li ul( top:0px; left:100%; display:none; background:#fddc96; ) #menu1 > ul > li:last -child > ul ul(چپ: خودکار؛ راست: 100%؛) #menu1 ul li ul li ul a(color:#F38A01;)
فایلهای jQuery مانند مثال قبلی کپی میشوند. تصمیم گرفتم جداکننده ها را ترک کنم تا منو حداقل کمی بهتر به نظر برسد. البته بدون آنها ممکن است.
به این شکل اتفاق افتاد: من 2 پوسته را در یکی ساختم تا نشان دهم لانژ در سمت راست و وسط چگونه به نظر می رسد.
در زیر می توانید دمو را ببینید و نمونه آن را دانلود کنید:
منوی کشویی لایه ای با بازشو در حالت شناور
کمی روغن در عنوان ظاهر شد، اما کار خواهد کرد، نکته اصلی کد است.
ماهیت این مثال ایجاد یک منوی بازشوی افقی با عرض کامل با یک منوی کشویی تمام عرض + چند سطحی است.
من کد HTML را تغییر نمی دهم، می توان آن را از مثال قبلی گرفت. جداکننده ها در jQuery نیز باقی مانده اند.
فقط CSS به طور کامل تغییر می کند:
#conteiner( عرض: 1000 پیکسل؛ ارتفاع: خودکار؛ حاشیه: 0 پیکسل خودکار؛ padding-top: 10 پیکسل؛ ) #menu1( موقعیت: نسبی؛ نمایشگر: بلوک؛ عرض: 100 درصد؛ ارتفاع: خودکار؛ شاخص z: 10؛ ) #menu1 ul( موقعیت: نسبی؛ نمایش: بلوک؛ حاشیه: 0 پیکسل؛ بالشتک: 0 پیکسل؛ عرض: 100 درصد؛ ارتفاع: خودکار؛ سبک فهرست: هیچ؛ پسزمینه: #F3A601؛ ) #menu1 > ul( تراز کردن متن: توجیه؛ اندازه فونت: 1 پیکسل؛ ارتفاع خط: 1 پیکسل؛ ) #menu1 > ul::after( display:inline-block; عرض:100%؛ ارتفاع:0px; محتوا:" "; ) #menu1 ul li( position :relative; display:inline-block; عرض:خودکار؛ ارتفاع:خودکار؛ تراز عمودی:بالا؛ تراز متن:چپ؛ ) #menu1 > ul > li(position:static;) #menu1 ul li.razd( ارتفاع :28px؛ عرض: 1px؛ پسزمینه:#ffffff؛ margin-top:4px؛ ) #menu1 ul li a( display:block; padding:9px 45px 0px 45px; font-size:14px; font-family:Arial, sans- سریف؛ رنگ:#ffffef؛ ارتفاع خط: 1.3em؛ نوشتار-تزیین: هیچکدام؛ وزن فونت: پررنگ؛ تبدیل متن: حروف بزرگ؛ ارتفاع: 36 پیکسل؛ اندازه جعبه: حاشیه-جعبه؛ ) #menu1 ul li > a:hover، #menu1 ul li:hover > a( background:#EBBD5B; color:#2B45E0; ) #menu1 ul li ul( موقعیت: مطلق؛ بالا: 36 پیکسل؛ چپ: 0 پیکسل؛ نمایش: هیچ؛ عرض: 100%؛ پسزمینه: #EBBD5B؛ ) #menu1 > ul > li > ul::after( clear:both; float:none; width:100%; height:0px; content:" "; ) #menu1 ul li:hover > ul(display:block;)/*این خط مکانیسم حذف را پیاده سازی می کند*/ #menu1 ul li ul li( نمایش :block; عرض:30%; float:left; ) #menu1 ul li ul li a( display:block; text-transform:none; height:auto; padding:7px 45px; width:100%; box-sizing: border -box; ) #menu1 ul li ul li:first-child > a(border-top:0px;) #menu1 ul li ul li a:hover, #menu1 ul li ul li:hover > a( پس زمینه:#FDDC96 ؛ color:#6572BC; ) #menu1 ul li ul li ul(بالا:0px؛ سمت چپ:100%؛ نمایش:هیچکدام؛ پس زمینه:#fddc96؛ z-index:15; ) #menu1 ul li ul li ul li (نمایش : بلوک؛ شناور: هیچ؛ عرض: 100%؛) #menu1 ul li ul li ul a(رنگ:#F38A01؛ حاشیه بالا: 1px جامد #ffffff؛ )
منو به این صورت خواهد بود: تنها نکته این است که سایت باید فضای کافی داشته باشد، زیرا آخرین مورد در سمت راست جایی برای انصراف ندارد. این مشکل را می توان از طریق: فرزند nام حل کرد، اما من حصار باغ را به خود زحمت ندادم.
مشاهده نسخه نمایشی منوی کشویی چند سطحی افقی:
همانطور که ممکن است متوجه شده باشید: صفحه زیرین نیز عرض کامل دارد. به این ترتیب لانژها در چندین بلوک ساخته می شوند.
این همه برای من است، امیدوارم حداقل یکی از نمونه های من برای شما مناسب باشد. با تشکر از توجه شما.
هم به نفع من و هم آنهاست 🙂 .
اگر پست را به طور کامل خواندید، اما نحوه ایجاد منوی کشویی افقی خود را در css پیدا نکردید، در نظرات سوال بپرسید یا از جستجو در سایت استفاده کنید.
همچنین به شما توصیه می کنم از صفحه اصلی https://website/vypadayushhee-menu/ دیدن کنید، تمام نمونه ها و انواع منوهای کشویی در آنجا جمع آوری شده است.
عصر بخیر
اغلب اتفاق می افتد که شما نیاز به ایجاد یک منوی افقی دارید که تا کل عرض بلوک والد، صرف نظر از تعداد موارد موجود در آن، کشیده شود.
امروز می خواهم به شما نشان دهم که چگونه یک چنین منویی ایجاد کنید.
بنابراین منوی ما به شرح زیر خواهد بود:
به عرض کامل کشیده می شود، وقتی ماوس را نگه می دارید برجسته می شود. منو از طرفین گرد است.
HTML MARKUP
خانه
خبر جالب
...
یکی دیگر از آیتم های منو!
برای کامل کردن منو از جداول با عرض 100% استفاده کردم. هر جدول دارای یک آیتم منوی ظرف است. بسته به اینکه به اولین، آخرین یا میانی آیتم منو - div کلاس مناسب اختصاص داده می شود.
هر ظرف div دارای 2 ستون کناری کاملاً در موقعیت است که برای نمایش صحیح مورد نیاز است. اگر از حاشیههای استاندارد استفاده میکنید، وقتی آیتمهای منو را تغییر میدهید، متن 1-2 پیکسل پرش میکند که خوب است.
کلاس فعال مسئول آیتم منوی انتخاب شده است و آن را هایلایت می کند.
هر مورد دارای یک تصویر و متن است. برای اینکه همه اینها به طور دقیق در وسط به صورت عمودی تراز شوند، از یک جدول استفاده می کنیم. به لطف ویژگی تراز عمودی، آیتم های منوی ما همیشه به آرامی نمایش داده می شوند و از بین نمی روند.
قوانین CSS
ابتدا سبک هایی را برای نمایش کلی منو تنظیم می کنیم: