از نویسنده:من به همه خوش آمد می گویم. به دلایلی، وب مسترها یک منوی کشویی را با اسکریپت ها مرتبط می کنند، اما برای مدت طولانی می توان با استفاده از css خالص، چنین پیمایشی را کاملاً ایمن انجام داد. علاوه بر این، چنین منویی بدتر نخواهد بود. امروز به شما نشان خواهم داد که چگونه یک منوی کشویی در css ایجاد کنید. من به اصطلاح یک دستور غذا را به اشتراک خواهم گذاشت.
طرح درس و چیدمان منوی ما
به طور کلی، ابتدا اجازه دهید تصمیم بگیریم که چگونه خود منو را ایجاد کنیم. در html5، راه استاندارد ایجاد آن در یک محفظه nav و با استفاده از یک لیست گلولهای است. بیایید همین کار را بکنیم. بعداً با استفاده از css نشانگرها را حذف خواهیم کرد، اصلاً به آنها در منو نیاز نداریم.
در واقع، من بلافاصله نشانه گذاری را با لیست های تو در تو در html می نویسم. یعنی لیست ما دو سطحی خواهد بود - حاوی لیست های دیگری است. یعنی برای هر آیتم 1 لیست که یک منوی کشویی تشکیل می دهد.
در اینجا یک نکته مهم وجود دارد و آن این است که ممکن است نیازی نباشد که هر مورد را به صورت کشویی درآورید، بلکه فقط چند مورد را در نظر بگیرید. مشکلی نیست، پس ما به سادگی لیست های تودرتو در پاراگراف ها را بدون انصراف ایجاد نمی کنیم.
در واقع، این همه نشانه گذاری است:
< nav id = "nav" > < ul > < li > < a href = "#" >بند 1< / a > < ul class = "second" > < li > < a href = "#" >زیر پاراگراف< / a > < / li > < li > < a href = "#" >زیر پاراگراف< / a > < / li > < li > < a href = "#" >زیر پاراگراف< / a > < / li > < / ul > < / li > < li > < a href = "#" >نقطه 2< / a > < ul class = "second" > < li > < a href = "#" >زیر پاراگراف< / a > < / li > < li > < a href = "#" >زیر پاراگراف< / a > < / li > < li > < a href = "#" >زیر پاراگراف< / a > < / li > < / ul > < / li > < li > < a href = "#" >نکته 3< / a > < ul class = "second" > < li > < a href = "#" >زیر پاراگراف< / a > < / li > < li > < a href = "#" >زیر پاراگراف< / a > < / li > < li > < a href = "#" >زیر پاراگراف< / a > < / li > < / ul > < / li > < li > < a href = "#" >مورد 4< / a > < ul class = "second" > < li > < a href = "#" >زیر پاراگراف< / a > < / li > < li > < a href = "#" >زیر پاراگراف< / a > < / li > < li > < a href = "#" >زیر پاراگراف< / a > < / li > < / ul > < / li > < / ul > < / nav > |
من می فهمم که بزرگ است. این مشکل با لیست های تودرتو است که نیاز به کد زیادی دارد. اما این واقعیت را در نظر داشته باشید که ما در حال انجام 4 آیتم اصلی هستیم و برای هر کدام یک منوی کشویی وجود دارد.
در واقع، من شناسه nav را برای همه ناوبری و کلاس سبک دوم را برای همه لیست های تودرتو تنظیم کردم تا بفهمم که آنها تودرتو هستند.
عالی است، نشانه گذاری ما آماده است، می توانید به نتیجه نگاه کنید:
بله، وحشتناک به نظر می رسد. اما اکنون css را روشن می کنیم و در عرض چند دقیقه مسیریابی ما تغییر می کند. بریم سر کار
نوشتن سبک های css
اولین کاری که انجام می دهم این است که تمام padding ها را به حالت پیش فرض برای همه عناصر بازنشانی کنم. آنها فقط با ما تداخل خواهند داشت، بهتر است خودمان تورفتگی ها را در جایی که لازم است تنظیم کنیم.
* (حاشیه: 0؛ بالشتک: 0؛)
حاشیه: 0; بالشتک: 0; |
#nav (ارتفاع: 70 پیکسل؛) #nav ul (سبک لیست: هیچکدام؛)
#nav ( ارتفاع: 70px; #nav ul ( لیست - سبک: هیچکدام; |
حالا ما واقعا باید تصمیم بگیریم که منوی ما چه خواهد بود. افقی یا عمودی؟ من پیشنهاد می کنم ابتدا افقی انجام دهید و همه چیز را در نمونه آن ببینید. برای این کار باید استایل های زیر را بنویسید:
#nav> ul> li (شناور: چپ؛ عرض: 180 پیکسل؛ موقعیت: نسبی؛)
#nav> ul> li ( شناور به سمت چپ؛ عرض: 180 پیکسل؛ موقعیت: نسبی; |
توجه داشته باشید که با علامت > به مواردی در یک لیست اشاره می کنیم که مستقیماً در یک ul قرار دارند و آن یکی مستقیماً در یک nav قرار دارد. این بسیار مهم است، زیرا به شما این امکان را میدهد که استایل را برای موارد موجود در لیستهای تودرتو اعمال نکنید. واقعیت این است که طبق ایده من، موارد موجود در لیست اصلی به صورت افقی و در موارد تودرتو - به صورت عمودی مرتب می شوند.
اما، البته، شما می توانید آن را متفاوت، مطابق با ایده خود انجام دهید. شما می توانید تمام موارد را در یک خط بسازید.
به هر حال کد بالا را امیدوارم متوجه شده باشید. موارد موجود در لیست اصلی را وادار می کند که به سمت چپ تراز شوند، به طوری که همه آنها در یک خط قرار بگیرند، حتی اگر موارد بلوکی باشند. من همچنین به آنها عرض و موقعیت نسبی صریح دادم.
موقعیت یابی برای چیست؟ برای اینکه لیست های تودرتو به طور مطلق در موقعیت مکانی قرار گیرند، ضروری است. اگر موقعیت یابی را در css مطالعه کرده اید، احتمالاً می دانید که اگر موقعیت نسبی بلوک را تنظیم کنید، تمام عناصر موجود در آن می توانند کاملاً در داخل این بلوک خاص قرار گیرند و نه کل پنجره مرورگر.
در ضمن، این چیزی است که قبلاً به دست آورده ایم:
از این اسکرین شات، از قبل می توانید نتیجه تقریبی را تصور کنید. البته باز هم باید پاراگراف ها را به زیبایی تزیین کنیم تا چشم ها هنگام مشاهده ناوبری التماس رحم نکنند.
#nav li a (نمایش: بلوک؛ پسزمینه: # 90DA93؛ حاشیه: 1 پیکسل توپر # 060A13؛ رنگ: # 060A13؛ بالشتک: 8 پیکسل؛ تراز متن: مرکز؛ تزئین متن: هیچ؛) #nav li a: شناور ( پس زمینه: # 2F718E؛)
#nav li a ( نمایش: بلوک؛ پس زمینه: # 90DA93; حاشیه: 1px جامد # 060A13; رنگ: # 060A13; padding: 8px; text - align: center; متن - دکوراسیون: هیچ; #nav li a: شناور ( پس زمینه: # 2F718E; |
ابتدا، خود پیوندها باید مسدود شوند. این برای کارکرد بالشتک و اعمال صحیح همه خصوصیات ضروری است. در مرحله بعد، رنگ های پس زمینه، متن، پارامترهای فریم، padding و تراز متن را در مرکز مشخص می کنم. در نهایت خط زیر را از لینک ها حذف کنید.
لازم نیست همه این پارامترها مانند من نوشته شوند. شما می توانید رنگ ها را خودسرانه انتخاب کنید، یک قاب را متفاوت کنید یا اصلا استفاده نکنید، تورفتگی ها را می توان کاهش یا افزایش داد.
توجه داشته باشید که در این مورد ما از علامت> استفاده نکردهایم، بنابراین این قوانین برای همه پیوندها، از جمله پیوندهای موجود در بندهای تودرتو، اعمال میشود. بنابراین، اکنون موارد زیر را داریم:
عالی است، اما میدانید که موارد فرعی نباید قابل مشاهده باشند، زمانی که ماوس را روی مورد مورد نظر میبرید باید باز شوند. بدون آن، منوی ما شبیه یک میز است. خوب، زمان پنهان کردن موارد تو در تو فرا رسیده است.
#nav li .second (نمایش: هیچ، موقعیت: مطلق؛ بالا: 100%؛)
#nav li .second ( نمایش: هیچ موقعیت: مطلق; بالا: 100%; |
ابتدا لیست های کاملا تودرتو را مخفی می کنیم. دوم، ما موقعیت مطلق و مختصات بالا را به آنها می دهیم: 100%. این بدان معناست که منوی کشویی به وضوح زیر آیتم اصلی که به آن تعلق دارد، به وضوح زیر 100٪ ارتفاع آن آیتم نمایش داده می شود.
اکنون فقط منوی اصلی را در صفحه وب می بینیم که همان چیزی است که به آن نیاز داریم.
اجرای ترک تحصیل
ما باید مهمترین کار را انجام دهیم - درک خود ضرر. هیچ چیز پیچیده ای در مورد آن وجود ندارد، به این کد نگاه کنید:
#nav li: شناور .second (نمایش: مسدود؛)
#nav li: شناور .second ( نمایش: بلوک؛ |
این کد بدون نقص کار خواهد کرد. هنگامی که ماوس را روی یک آیتم در منوی اصلی نگه دارید، لیست تودرتو قابل مشاهده خواهد بود. و فقط لیستی که در موردی که مکان نما روی آن قرار دارد تعبیه شده است.
فقط یک مشکل جزئی وجود دارد - عرض موارد تو در تو با عرض موارد اصلی مطابقت ندارد. اما این را می توان به راحتی با اضافه کردن سبک های مناسب حل کرد:
#nav li li (عرض: 180 پیکسل؛)
#nav li li ( عرض: 180 پیکسل؛ |
همه چیز، مشکل حل شد:
همه چیز عالی کار می کند. وقتی ماوس را روی آیتم اصلی نگه می دارید، منوی کشویی مربوطه ظاهر می شود. اگر مکان نما را به کناری ببرید، ناپدید می شود. اگر مکان نما را به خود موارد تو در تو منتقل کنید، می توانید روی آنها کلیک کرده و به قسمت مورد نظر سایت بروید. بنابراین، ما با شما یک منوی کشویی بسیار ساده و سبک بدون اسکریپت درست کرده ایم.
تبدیل منو به عمودی
خوب، خوب، ما با ناوبری افقی کاملاً متوجه شده ایم، اما علاوه بر آن، ناوبری عمودی در سایت ها بسیار رایج است و می تواند به صورت کشویی نیز باشد. در واقع، تغییر منو از افقی به عمودی بسیار آسان است، فقط باید چند خط کد را تغییر دهیم.
ابتدا باید float: سمت چپ را از آیتم های لیست اصلی حذف کنید. این ویژگی است که به این واقعیت کمک می کند که موارد ما در یک خط نمایش داده شوند، اما اگر ناوبری باید عمودی باشد، چرا به این نیاز داریم؟
اکنون باقی مانده است که قوانین را برای انتخابگر #nav li .second تغییر دهیم، یعنی برای لیست های تودرتو، یعنی آنها باید کمی متفاوت در موقعیت خود قرار گیرند. مثل این:
#nav li .second (نمایش: هیچکدام؛ موقعیت: مطلق؛ چپ: 100%؛ بالا: 0؛)
#nav li .second ( نمایش: هیچ موقعیت: مطلق; سمت چپ: 100%; بالا: 0; |
یعنی به جای یک مختصات باید دو مختصات ثبت کرد. اولاً در مورد ناوبری افقی گفتم که طبق خواسته، آیتم های منوهای تو در تو زیر آیتم های اصلی نمایش داده شوند. در مورد منوی عمودی، این مناسب نیست - موارد باید در کنار نمایش داده شوند.
بنابراین بالا را تغییر دهید: 100% به چپ: 100%. علاوه بر این، ما به مختصات بالا نیز نیاز داریم. آن را روی 0 قرار می دهیم تا زیرمنو با آیتم مربوط به آن هم سطح باشد.
همه چیز، اکنون همه چیز همانطور که باید کار می کند. می توانید آن را تست کنید. همانطور که می بینید، من دروغ نگفتم که گفتم فقط باید چند خط کد را بازنویسی کنم.
منوی افقی با سطوح مختلف
با استفاده از تقریباً همان رویکرد، میتوانید سطوح منوی بیشتری را در صورت نیاز ایجاد کنید. به عنوان مثال، بیایید یک لیست برای چهارمین مورد از منوی اصلی ایجاد کنیم که در یکی از موارد فرعی تو در تو قرار می گیرد.
سلام به خوانندگان عزیز وبلاگ من! مقاله امروز برای طراحان چیدمان مبتدی بسیار مفید خواهد بود. از امروز ما یک منوی افقی ساده با شما ایجاد خواهیم کرد. قبل از اینکه مستقیماً به طرحبندی بپردازیم، میخواهم چند کلمه در مورد اینکه چرا تصمیم گرفتم این موضوع خاص را برای مقاله انتخاب کنم، بگویم.
در واقع، همه چیز بسیار ساده است، زمانی که در مورد موضوع درس بعدی برای سایت فکر می کردم، شروع به یادآوری و تجزیه و تحلیل تجربه خود از مطالعه چیدمان کردم، آنچه که در مرحله اولیه تبدیل شدن به خود به عنوان یک چیدمان با آن روبرو بودم. طراح، که در هنگام مطالعه این منطقه و غیره برای من غیرقابل درک بود. همه این سوالات را از خودم پرسیدم تا بهتر بفهمم چه چیزی ممکن است برای شخصی که سفر خود را به عنوان طراح صفحهآرایی شروع میکند جالب باشد. و برای من شخصاً به محض اینکه شروع به مطالعه چیدمان کردم، بیشترین سؤالات در مورد چیدمان منوهای مختلف به وجود آمد، مخصوصاً در مورد منوهای چند سطحی. و بنابراین امروز ما در مورد منو، و به طور خاص در مورد منوی افقی صحبت خواهیم کرد. پس بزن که بریم!
بیایید طرح منوی افقی خود را شروع کنیم!
همانطور که احتمالا حدس میزنید، اولین کاری که باید انجام دهیم این است که یک صفحه html با نشانهگذاری استاندارد ایجاد کنیم و صفحه سبک را به آن متصل کنیم. من به جزئیات این مرحله نمی پردازم، زیرا هنوز امیدوارم که شما آنقدر مبتدی نباشید که بتوانید با جزئیات به شما بگویید که بدن و سر چیست و سبک ها چگونه به هم متصل می شوند. فقط می گویم که علاوه بر استایل های منو، ساده ترین ریست را در فایل css می نویسم تا استایل ها را ریست کرده و در همه مرورگرها تورفتگی یکسانی داشته باشیم. ساده ترین تنظیم مجدد من به این صورت است:
در مورد بازنشانی استایل ها نیز چیزی به تفصیل نمی گویم، زیرا در واقع این موضوع برای مقاله دیگری است، تنها چیزی که باید در مورد کد بالا بدانید این است که به لطف این کد، تمام عناصر صفحه ای که خواهیم نوشت دارای خواهند بود. حاشیهها و حاشیههای آنها به صفر میرسد، این کار باید انجام شود تا صفحه ما در همه مرورگرها یکسان به نظر برسد.
پس در این مرحله چه داریم؟ ما یک صفحه html با نشانه گذاری استاندارد داریم:
و ما یک شیوه نامه متصل به این صفحه داریم (مال من style.css است)، با محتوای زیر:
مرحله بعدی ایجاد نشانه گذاری html برای منو است.
نحوه ایجاد نشانه گذاری برای منو
در نشانه گذاری خود از یک تگ جدید استفاده خواهیم کرد
و از آنجایی که ما قبلاً صحبت در مورد پشتیبانی از برچسب های جدید html 5 را شروع کرده ایم، به طوری که در مرورگرهای قدیمی با این مشکل مواجه نشویم، باید یک کتابخانه ویژه را به سند خود متصل کنیم - html5shiv. این کار با درج در انجام می شود
قسمت سر صفحه شما با کد زیر:
همه چیز بعد از این تگ
بیایید مستقیماً به نشانه گذاری خود برگردیم. بعد، ما در تگ خود نیاز داریم
بنابراین، با نشانه گذاری، به نظر می رسد که ما به پایان رسیده ایم، زمان آن رسیده است که مستقیماً سبک ها را بنویسیم، زیرا اکنون منوی ما، به زبان ساده، خیلی خوب به نظر نمی رسد:
سبک های نوشتن برای منوی افقی ما
و بنابراین، اول از همه، هنگام تنظیم منو، باید نشانگرهای لیست را حذف کنیم، بدیهی است که به آنها نیازی نداریم، این کار به این صورت انجام می شود:
Ul (سبک لیست: هیچ کدام؛)
پس از آن، منوی ما به این صورت می شود:
من خیلی دوست ندارم که منوی ما به لبه های مرورگر چسبیده باشد، بیایید آن را برطرف کنیم:
با این کد، عرض منوی خود را تنظیم کردیم، حاشیه های بالا و پایین را 50 پیکسل به آن دادیم و آن را در مرکز قرار دادیم. کسی که نمی داند آیا یک عنصر بلوک دارای عرض است یا خیر، برای اینکه این عنصر را دقیقاً در مرکز قرار دهیم، فقط باید آن را یک حاشیه خارجی (حاشیه) در سمت راست و چپ با مقدار auto تنظیم کنیم.
مرحله بعدی که باید در نهایت منوی خود را افقی کنیم، این کار با تنظیم عناصر انجام می شود
منوی لی (شناور: چپ؛)
همه در حال حاضر منوی ما افقی شده است.
اگر متوجه نشدید دقیقاً چه اتفاقی افتاده است و ویژگی float چه میکند، توصیه میکنم اطلاعات مربوط به این ملک را در گوگل جستجو کنید و آن را به طور کامل مطالعه کنید.
حتی یک صفحه از چیدمان بدون آن کامل نمی شود، من این را به طور قطع به شما می گویم. خوب، بیایید ادامه دهیم!
منو li а (نمایش: بلوک؛ / * تبدیل پیوند به عنصر بلوک * / بالشتک: 12 پیکسل 20 پیکسل؛ / * تنظیم بالشتک داخلی * / تزئین متن: هیچکدام؛ / * حذف زیرخط * / رنگ: #fff; / * سفید کردن پیوندهای رنگی * / پس زمینه: # 444؛ / * رنگ پس زمینه را تیره کنید * / فونت: 14 پیکسل Verdana، sans-serif؛ / * اندازه و نام فونت را تنظیم کنید * /)
یکی از مهمترین قوانین اینجا نمایش است: block ;. واقعیت این است که به طور پیشفرض، پیوندها عناصر درون خطی هستند و تورفتگی در مرورگرهای مختلف به طور متفاوتی روی عناصر درون خطی اعمال میشود، بنابراین توصیه میشود پیوند را یک عنصر بلوک کنید و تنها پس از آن ویژگیهای مربوط به تورفتگی خارجی یا داخلی را به آن اعمال کنید. حالا من نمی خواهم در طول زمان شما را با اطلاعات غیر ضروری بار کنم، با استفاده از مثال های واقعی، خودتان متوجه خواهید شد که چرا چنین تاکیدی در اینجا انجام شده است.
بیایید ببینیم چه اتفاقی افتاده است، صفحه مرورگر را رفرش کنید و tadam!:
همانطور که می بینید به نظر بد نیست، می توان گفت که در اصل منوی ما آماده است. تنها کاری که هنوز باید انجام شود این است که چراغ پیوند را روی شناور تنظیم کنید، خوب، من همچنین فکر می کنم منو با جداکننده های بین آیتم ها بهتر به نظر می رسد.
بیایید با جداکننده ها شروع کنیم:
منوی لی (حاشیه-چپ: 1px جامد # 666;) .menu li: اولین فرزند (حاشیه-چپ: هیچکدام؛)
ما اینجا چه کرده ایم؟ بله، همه چیز بسیار ساده است که ما برای امتیازات خود تعیین می کنیم (
دوباره بیایید ببینیم چه چیزی بدست آوردیم:
به نظر من با جداکننده ها خیلی بهتر است.
منو li a: شناور (پس زمینه: # 888;)
دوباره با استفاده از یک شبه کلاس خاص، این بار - شناور، رنگ پیوند را هنگامی که مکان نما روی آن قرار می گیرد، تنظیم می کنیم، نگاه کنید:
به نظر من باحاله🙂 امیدوارم منو همون منو داشته باشین.
در این مورد من این درس را پایان می دهم، واقعاً امیدوارم که برای شما مفید بوده باشد و اکنون می دانید نحوه تایپ کردن یک منوی افقی ساده در html و css خالص... البته، ما یک منوی تک سطحی گذاشتیم، با یک منوی دو سطحی (با یک لیست تودرتو) کمی دشوارتر خواهد بود، اما این قبلاً موضوعی برای درس دیگری است، این برای من تمام است. دوباره برگرد خوشحال میشم!!!
قرار دادن منوی افقی در مرکز می تواند کار دشواری باشد، به خصوص برای کسانی که تازه وارد CSS شده اند. یافتن راهحلها منجر به فهرست بسیار محدودی از روشها میشود، که بیشتر آنها به CSS، ترفندهای جاوا اسکریپت یا استفاده از قوانین غیر استانداردی که توسط همه مرورگرها پشتیبانی نمیشوند، متکی هستند. در این آموزش، روشی را برای قرار دادن منوی افقی در مرکز قرار می دهیم که فقط از قوانین استاندارد CSS استفاده می کند و در همه مرورگرها کار می کند.
نمونه ای از منوی مرکزی
در زیر یک منوی افقی در مرکز این ستون وجود دارد که در آن تب دوم فعال شده است. می توانید اندازه پنجره یا صفحه مرورگر را تغییر دهید تا مطمئن شوید که منو همیشه در مرکز و پاسخگو باقی می ماند.
در صفحه نمایشی، می توانید چندین گزینه طراحی برای یک منوی افقی در مرکز مشاهده کنید. هر یک از آنها را می توان در پروژه های خود استفاده کرد.
نشانه گذاری HTML
تمام منوهای نشان داده شده در این درس از ساختار ساده ای استفاده می کنند. این یک لیست معمولی نامرتب از پیوندهای قرار داده شده در یک عنصر است بخش.
کد CSS منوی مرکزی
در زیر CSS کامل است که منو را در مرکز قرار می دهد. و توضیحاتی در مورد اصل کار در ادامه درس داده شده است.
#centeredmenu (float: چپ؛ عرض: 100%؛ پسزمینه: #fff؛ حاشیه پایین: 4px جامد # 000؛ سرریز: پنهان؛ موقعیت: نسبی؛) #centeredmenu ul (روشن: چپ؛ شناور: سمت چپ؛ سبک فهرست : هیچ؛ حاشیه: 0؛ بالشتک: 0؛ موقعیت: نسبی؛ سمت چپ: 50 درصد؛ تراز متن: مرکز؛) #centeredmenu ul li (نمایش: بلوک؛ شناور: سمت چپ؛ فهرست به سبک: هیچ؛ حاشیه: 0. بالشتک: 0؛ موقعیت: نسبی؛ سمت راست: 50%؛) #منو مرکزی ul li a (نمایش: بلوک؛ حاشیه: 0 0 0 1px؛ بالشتک: 3px 10px؛ پسزمینه: #ddd؛ رنگ: # 000؛ متن-تزیین: هیچکدام؛ خط-ارتفاع: 1.3em;) #centeredmenu ul li a: شناور (پس زمینه: # 369؛ رنگ: #fff;) #centeredmenu ul li a.active، #centeredmenu ul li a.active: شناور (رنگ: # fff؛ پسزمینه: # 000؛ وزن قلم: پررنگ؛)
روش مرکز سازی چگونه کار می کند
این روش بر اساس موقعیت نسبی عناصر بلوک شناور در یکدیگر است. ابتدا، بیایید ببینیم که چگونه عناصر در هنگام جابجایی تغییر اندازه می دهند.
عنصر بخش(بلوک)، بدون افست، تا تمام عرض موجود در دسترس آن کشیده می شود.
اما اگر عنصر div را به سمت چپ حرکت دهیم، به طور خودکار کوچک می شود تا با محتوای آن مطابقت داشته باشد. فشرده سازی کلید اجرای این روش برای مرکز دادن منوها است. به انتقال منو به موقعیت صحیح کمک می کند.
منوی استاندارد تراز چپ
بیایید یک منوی استاندارد تراز چپ را انتخاب کنیم و گام به گام آن را دوباره طراحی کنیم. برای وضوح، اقلام در رنگ های مختلف رنگ می شوند، بنابراین بلافاصله مشخص می شود که چه چیزی در کجا سرمایه گذاری شده است.
به نکات زیر توجه کنید:
- عنصر بخش منوی مرکزی(مستطیل آبی) به سمت چپ افست شده است، اما 100٪ عرض دارد، بنابراین کشیده می ماند تا کل صفحه را پر کند.
- عنصر ul(مستطیل صورتی) داخل عنصر است منوی مرکزی بخشو به سمت چپ جابه جا می شود. این بدان معنی است که به عرض محتوای خود، یعنی به عرض کل همه نشانک ها کوچک می شود.
- تمام عناصر li (مستطیل های سبز) در داخل عنصر قرار دارند ulو به سمت چپ حرکت کنید. بنابراین، آنها به اندازه پیوندهای موجود در آنها کوچک می شوند و در یک خط افقی قرار می گیرند.
- در داخل هر پیوند (مستطیل های نارنجی) متن نشانک نمایش داده می شود: نشانک 1، نشانک 2 و غیره.
تغییر موقعیت لیست نامرتب
سپس عنصر را افست می کنیم ulبه سمت راست 50٪ با استفاده از موقعیت: نسبی; ... هنگامی که یک عنصر با درصدی تحت این شرایط جبران می شود، مهم است که به یاد داشته باشید که عرض کل عناصر موجود در آن، عرض آن نیست. در مورد ما، افست توسط نیمی از پنجره مرورگر (یا فضای موجود برای نمایش) رخ می دهد. در نتیجه، منوی ما از وسط پنجره شروع می شود و تا حدی به خارج از آن گسترش می یابد. و به مرحله بعدی بروید.
تغییر موقعیت همه آیتم های منو
تنها جابجایی تمام عناصر باقی مانده است لی 50 درصد باقی مانده است. این 50٪ از عرض عنصر ul ما (محفظه ای است که شامل منو است). بنابراین، زبانه ها دقیقاً به مرکز پنجره منتقل می شوند.
چند نکته مهم
هنگام استفاده از این روش مرکز دهی باید به چند نکته مهم توجه داشت:
- از آنجایی که عنصر ulتا حدی به خارج از پنجره گسترش می یابد، این منجر به نمایش نوارهای اسکرول می شود. بنابراین، شما باید از سرریز استفاده کنید: قانون پنهان; برای عنصر بخش منوی مرکزی... بنابراین، قسمت بیرون زده عنصر بخشقطع خواهد شد.
- از آنجایی که عنصر ulبا بوک مارک ها تراز نیست، نمی توانید از هیچ سبک بصری برای آن استفاده کنید. عنصر ul را بدون رنگ پس زمینه و بدون حاشیه بگذارید تا کاملاً نامرئی باشد. و سبک های نشانک ها فقط باید برای عناصر استفاده شوند. لی.
- اگر نیاز به تنظیم سبک های خاصی برای اولین و آخرین نشانک دارید، باید یک کلاس برای اولین و آخرین عنصر اضافه کنید. لیبنابراین می توانید آنها را به صورت جداگانه سبک کنید.
نتیجه
راه حل پیشنهادی با همه مرورگرها سازگار است، از جاوا اسکریپت استفاده نمی کند و از متن قابل تغییر سایز پشتیبانی می کند.
هابر، سلام!
راه حل های خوب بسیاری از متخصصان مختلف در Codepen ظاهر می شود و من معتقدم که بهترین آنها باید در یک مکان جمع آوری شود. بنابراین، 2 سال پیش شروع به ذخیره اسکریپت های جالب در مورد موضوعات مختلف در رایانه خود کردم.
من آنها را در گروه محصول IDE ابری ارسال می کردم. Gefest، اینها مجموعه ای از 5-8 راه حل بودند. اما اکنون شروع کردم به جمع آوری 15-30 اسکریپت در موضوعات مختلف (دکمه ها، منوها، نکات و غیره).
چنین مجموعه های بزرگی باید به افراد حرفه ای بیشتری نشان داده شود. بنابراین، آنها را در Habr قرار می دهم. امیدوارم برای شما مفید واقع شوند.
در این بررسی، نگاهی به منوهای لایه ای خواهیم انداخت.
ناوبری افقی تخت
نوار ناوبری زیبا با منوهای فرعی که به آرامی ظاهر می شوند. کد به خوبی ساختار یافته است، js استفاده شده است. با قضاوت بر اساس ویژگی های استفاده شده، آن را در ie8 + کار می کند.
http://codepen.io/andytran/pen/kmAEy
سربرگ ناوبری مواد با کرکره های تراز شده
نوار پیوند پاسخگو با زیر منوی دو ستونی. همه چیز در css و html انجام می شود. انتخابگرهای css3 را اعمال کرد که در ie8 پشتیبانی نمیشوند.
http://codepen.io/colewaldrip/pen/KpRwgQ
منوی کشویی آکاردئون صاف
منوی عمودی شیک با عناصر کشویی هموار. انتقال، تبدیل js-code استفاده می شود.
http://codepen.io/fainder/pen/AydHJ
منوی پیمایش درون خطی تاریک CSS خالص
نوار ناوبری عمودی تیره با نمادهایی از ionicons. جاوا اسکریپت اعمال می شود. در ie8 به احتمال زیاد بدون انیمیشن کار خواهد کرد.
http://codepen.io/3lv3n_snip3r/pen/XbddOO
منوی کشویی مگا CSS3 خالص با انیمیشن
منوی شیک با دو فرمت خروجی: افقی و عمودی. از آیکون ها و انیمیشن css3 استفاده شده است. در ie8 قطعا افتضاح به نظر می رسد، اما در مرورگرهای دیگر همه چیز عالی است.
لینک عمودی: http://codepen.io/rizky_k_r/full/sqcAn/
لینک افقی: http://codepen.io/rizky_k_r/pen/xFjqs
منوی کشویی CSS3
یک منوی افقی با آیتم های بزرگ و یک لیست کشویی از لینک ها. کد تمیز و مینیمالیستی بدون js.
http://codepen.io/ojbravo/pen/tIacg
منوی کشویی ساده CSS خالص
منوی افقی ساده و در عین حال شیک. استفاده شده توسط font-wesome. همه چیز در css و html کار می کند، بدون js. در ie8 کار خواهد کرد.
http://codepen.io/Responsive/pen/raNrEW
منوی کشویی مگا بوت استرپ 3
یک راه حل عالی برای فروشگاه های آنلاین. چندین سطح از دسته ها و تصاویر بزرگ (به عنوان مثال، اقلام موجودی) را نمایش می دهد. این بر اساس بوسترپ 3 است.
http://codepen.io/organizedchaos/full/rwlhd/
ناوبری تخت
نوار ناوبری شیک با منوهای فرعی صاف. با مشکلاتی در مرورگرهای قدیمی نمایش داده می شود.
http://codepen.io/andytran/pen/YPvQQN
ناوبری تو در تو سه بعدی
منوی افقی با انیمیشن های بسیار باحال بدون js!
http://codepen.io/devilishalchemist/pen/wBGVor
مگا منوی پاسخگو - ناوبری
منوی پاسخگوی افقی به نظر خوب است، اما نسخه موبایل کمی لنگ است. از css، html و js استفاده شده است.
http://codepen.io/samiralley/pen/xvFdc
منوی خالص Css3
منوی اصلی با کد ساده و تمیز بدون js. برای افکت های واو استفاده کنید.
http://codepen.io/Sonick/pen/xJagi
منوی کشویی کامل CSS3
یک منوی کشویی رنگارنگ با یک سطح تودرتو. از آیکون های font-wesome، html و css استفاده می شود.
http://codepen.io/daniesy/pen/pfxFi
منوی کشویی فقط Css3
یک منوی افقی بسیار خوب با سه سطح تودرتو. بدون js کار می کند.
http://codepen.io/riogrande/pen/ahBrb
منوهای کشویی
یک منوی مینیمالیستی با جلوه اصلی ظاهر یک لیست تودرتو از آیتم ها. خوشحالم که این راه حل نیز بدون جاوا اسکریپت است.
http://codepen.io/kkrueger/pen/qfoLa
منوی کشویی CSS خالص
یک راه حل ابتدایی اما موثر. فقط css و html.
http://codepen.io/andornagy/pen/xhiJH
منوی کششی - مفهوم تعامل منو
یک مفهوم جالب از منو برای تلفن همراه. من قبلاً این را ندیده بودم. از html، css و جاوا اسکریپت استفاده شده است.
http://codepen.io/fbrz/pen/bNdMwZ
ایجاد منوی کشویی ساده
کد تمیز و ساده، بدون js. در ie8 قطعا کار خواهد کرد.
http://codepen.io/nyekrip/pen/pJoYgb
کشویی CSS خالص
راه حل بدی نیست، اما کلاس های زیادی استفاده می شود. خوشحالم که js وجود ندارد.
http://codepen.io/jonathlee/pen/mJMzgR
فهرست کشویی
منوی عمودی زیبا با حداقل کد جاوا اسکریپت. JQuery استفاده نمی شود!
http://codepen.io/MeredithU/pen/GAinq
منوی کشویی CSS 3
یک منوی افقی با زیرنویس های اضافی می تواند سایت شما را به خوبی تزئین کند. کد ساده و سرراست است. جاوا اسکریپت اعمال نمی شود.
http://codepen.io/ibeeback/pen/qdEZjR
راه حل خوب با کدهای زیاد (html، css و js). 3 فرمت زیر منو اختراع شد. این راه حل برای فروشگاه های آنلاین بسیار مناسب است.
http://codepen.io/martinridgway/pen/KVdKQJ
منوی کشویی CSS3 (راه حل ویژه)!
منوی افقی تاریک با سیزده (13) گزینه انیمیشن! حتماً به شما توصیه می کنم آن را بخوانید، در زندگی روزمره مفید خواهد بود.
http://codepen.io/cmcg/pen/ofFiz
P.S.
امیدوارم از مونتاژ 23 راه حل لذت برده باشید. اگر می خواهید آنها را بیشتر بخوانید، پس از طریق نظرسنجی زیر بروید.
همه از کار خود لذت ببرید.
1. منوی jQuery روشن عمودی
2. جلوه باحال. منوی رقص.
4. لیست کشویی با استفاده از jQuery
یک ظاهر طراحی عالی از عنصر UI به عنوان یک کشویی.
هنگامی که ماوس را روی دکمه قرار می دهید، پانل از بالا به بیرون می لغزد.
6. افزونه jQuery "MobilyBlocks" برای نمایش منوی شعاعی
7. منو با استفاده از جن
منوی جاوا اسکریپت متحرک با جلوه درخشش.
منوی جدید و زیبا jQuery.
9. منوی jQuery GarageDoor
10.jQuery منوی پیمایش عمودی
پیاده سازی یک منو با تعداد زیادی آیتم. هنگامی که نشانگر ماوس را به سمت بالا یا پایین حرکت می دهید، پیمایش می کند.
11.jQuery استایل کشویی
12. افزونه پیمایش صفحه
پیمایش صاف به قسمت مورد نظر در صفحه. پلاگین "jQuery One Page Navigation".
13. پلاگین "منو محتوای متحرک"
پلاگین جدید جی کوئری اجرای عالی ناوبری سایت متحرک. هنگامی که در میان آیتم های منو پیمایش می کنید، یک بلوک با توضیحات و لینک های احتمالی ظاهر می شود و بسته به مورد انتخاب شده، پس زمینه صفحه تغییر می کند که بدون توجه به اندازه پنجره مرورگر، به تمام صفحه کشیده می شود. حتما به صفحه دمو نگاهی بیندازید.
14. افزونه jQuery Sweet Menu
منوی متحرک با آیتم های متحرک.
15. منوی جی کوئری ثابت شد
همانطور که صفحه را به پایین اسکرول می کنید، منو در بالای صفحه ثابت باقی می ماند.
16. منوهای پیمایش کیت اسلایدر
برای پیاده سازی یک منوی عمودی با تعداد زیادی آیتم. پیمایش در میان موارد با استفاده از چرخ ماوس یا با استفاده از پیوندهای "Previos" و "Next" انجام می شود.
17. منوی شیک CSS3
18. منوی جدید CSS3 Apple Style
منوی جدید به سبک اپل. تیره تر از قبل به نظر می رسد، اما کمتر زیبا نیست.
19. منوی اصلی جی کوئری
منوی کشویی با افکت پس زمینه. موارد زیر منو به سمت بالا گسترش می یابد. وقتی ماوس را روی یک آیتم منو میبرید، تصویر پسزمینه تغییر میکند.
20. منوی متحرک جی کوئری
منوی متحرک آیتم های منو در قالب آیکون ها و توضیحات ارائه می شوند. برخی از اثرات عالی در شناور شدن بر روی یک آیتم منو. 8 افکت وجود دارد، برای دیدن همه آنها - پیوندهای Exemple1-Exemple8 را در صفحه نمایشی دنبال کنید.
21. منوی پیمایش XML
پیمایش منوهای عمودی و افقی یک راه حل خوب زمانی که آیتم های زیادی در منو وجود دارد.
22. منوی زمینه در سایت در جی کوئری
هنگامی که روی یک منطقه خاص کلیک راست می کنید، یک منو ظاهر می شود.
23. منوی دایره ای دو سطحی برای سایت
هنگامی که یک آیتم منو انتخاب می شود، آیتم های زیر منو در سمت راست نمایش داده می شوند.
24. jQuery CSS3 Menu with Blur Menu CSS3
منوی اصلی جی کوئری CSS3 در 7 سبک مختلف ارائه می شود. وقتی نشانگر ماوس را روی یکی از آیتمهای منو میبرید، بقیه موارد مثل قبل تار میشوند.
25. چندین منوی متحرک تماشایی jQuery CSS3
10 منوی متحرک خلاقانه منوهای افقی و عمودی CSS3 با افکت ها و انتقال های مختلف.
آرشیو همچنین شامل فایل اصلی PSD منو است.
27. منوی MagicLine
پسزمینه یا زیر خط یک آیتم منو با کمی تاخیر ماوس را دنبال میکند، در حالی که پسزمینه به آرامی رنگ خود را تغییر میدهد که از یک مورد به آیتم دیگر میروید. یک جلوه بسیار زیبا، غیر معمول به نظر می رسد. توجه: اثر در اپرا کار نمی کند
28. تصویر حباب
هنگامی که ماوس را روی یکی از تصاویر قرار می دهید، جلوه ای عالی خواهید داشت. این اثر تا حدودی شبیه به jQDock است که در بالا توضیح داده شد.
31. منوهای جالب جی کوئری با افکت های مختلف
منوی افقی، عمودی افکت های جالب
32. منوی سبک جی کوئری اپل
34. منوی جی کوئری با افکت جالب
36. منوی تازه با جلوه جالب جی کوئری
یک اثر بسیار جالب. ایده آل برای سایت های نمونه کارها.
جلوه پاپ آپ تصویر کوچک جالب در شناور.
40. لیست کشویی با پیمایش خودکار
اثر گذار خوب بین پاراگراف ها.
42. منوی جی کوئری عالی
43. منوی بزرگ جی کوئری
44. پیمایش منوهای جی کوئری
آیتم های منو به صورت ریز عکس ها ارائه می شوند.
46. منوی شعاعی ناوبری جی کوئری
47 منوی CSS و jQuery
نوار پیمایش با کادر جستجو که با اسکرول کردن صفحه به سمت پایین نیمه شفاف می شود.
48. منوی افقی جی کوئری
49. منوی jQuery عمودی
منوی عمودی عالی وقتی مکان نما را نگه می دارید، یک آیتم از منو ظاهر می شود.
50. منوی افقی جی کوئری
جلوه جالب هنگام نگه داشتن ماوس روی یک آیتم منو.
52. منوی کشویی jQuery
وقتی نشانگر ماوس را روی منو میبرید، آیتمهای آن ظاهر میشوند. مواردی که ظاهر می شوند به صورت یک قوس نمایش داده می شوند که شعاع آن را می توانید هنگام پیکربندی افزونه تنظیم کنید. در برخی از مرورگرها نمایش قوس را نمی بینید، منو مستقیماً نمایش داده می شود، اما باز هم تصور کلی از اجرای منوی jQuery را خراب نمی کند.
53 نوار ناوبری CSS و jQuery
وقتی نشانگر ماوس را روی یک آیتم منو میبرید، جلوه جالبی میگیرد.
54. پانل پاپ آپ جی کوئری
منوی متحرک تازه در مقیاس خاکستری.
58. ناوبری سایت ستونی با جی کوئری
یک راه حل جالب برای ناوبری که در قالب میله های عمودی ارائه شده است. هنگامی که نشانگر ماوس را روی این نوارها قرار می دهید، یک تصویر برای آیتم و لیستی از منوهای فرعی ظاهر می شود. وقتی روی یک آیتم زیرمنو کلیک می کنید، یک صفحه توضیحات ظاهر می شود. این پیاده سازی برای سایت های تبلیغاتی یا ارائه ها عالی است. حتماً نسخه ی نمایشی افزونه را بررسی کنید.
59 ناوبری سایت جی کوئری
ناوبری سایت در قالب 4 تصویر ارائه شده است که وقتی شناور را روی آن قرار می دهید متوجه یک افکت متحرک جالب خواهید شد.
60. نوار پیمایش با محتوا پیمایش می شود
نوار ناوبری. با کلیک بر روی فلش صفحه اسکرول می شود. پیمایش پیمایش همراه با محتوای صفحه.