از نویسنده:به وبلاگ ما در مورد ساخت سایت خوش آمدید. این یک سری مقالات است که به مشخصات جدید اختصاص یافته است و امروز می خواهم به شما بگویم که چگونه یک منو در html5 بسازید و چگونه این روند با نسخه های قبلی زبان متفاوت است.
چه تفاوت هایی دارند
اول از همه، من می خواهم بگویم که مشخصات آن هم جدید نیست - شکل گیری خود را در سال 2009 آغاز کرد. در واقع، از آن زمان تاکنون یک پیشرفت مداوم وجود داشته است - فرصت های جدیدی در html5 ظاهر می شود، مرورگرهای مدرن از این قابلیت ها بیشتر و بیشتر پشتیبانی می کنند، به طوری که به زودی می توان در مورد پشتیبانی کامل از این فناوری صحبت کرد، اگرچه این چیزی نیست. یک کل واحد، بلکه مجموعه ای از ویژگی های جدید است که هر کدام مستقل هستند.
خوب، خوب، تفاوت بین ایجاد ناوبری اصلی (منو)، از آنجایی که شما در حال خواندن مقاله ای در این زمینه هستید، پس قطعاً باید تفاوت هایی وجود داشته باشد. خوب، قبل از این منو چگونه ایجاد شد؟ معمولاً آنها از یک لیست گلوله ای استفاده می کردند که در یک ظرف اضافی برای همه ناوبری قرار می گرفت - یک div معمولی.
بنابراین، با ظهور تگهای جدید، اکنون میتوانید بهجای تگ div، منو را در nav بپیچید - یک عنصر معنایی جدید که به طور خاص برای جمعآوری مهمترین پیوندها در آن ایجاد شده است، آنها را با هم گروهبندی کنید.
در ناو می توانید هم لیست و هم فقط مجموعه ای از لینک ها را قرار دهید. به نظر من این راه حل ساده تر و صحیح تر است، اگرچه در بسیاری از قالب ها هنوز می توانید اجرای منو را با استفاده از برچسب های ul، li، a مشاهده کنید.
جالب اینجاست که کانتینر nav به طور خاص برای پیوندهای اولویت دار در صفحه طراحی شده است. در واقع، در یک صفحه ممکن است بیش از یک کانتنر وجود داشته باشد، اما فقط پیوندهایی که واقعاً پیمایش اصلی را تشکیل می دهند باید در آنها قرار گیرند (مثلاً منوی اصلی بالا و نسخه تکراری آن در فوتر صفحه).
آموزش ساخت منوی افقی با html5
شما حتی نیازی به کادربندی در لیست ندارید، همه چیز در ابتدا در یک خط نمایش داده می شود، زیرا پیوندها عناصر درون خطی هستند.
نکته دیگر این است که به دلیل ویژگی های درون خطی آنها در طراحی بسیار محدود هستند. شما فقط می توانید با ویژگی هایی مانند: رنگ، اندازه قلم، حاشیه کار کنید. اگر میخواهید رنگ پسزمینه خاصی را تنظیم کنید، جداکنندهها بسازید و تورفتگیهای داخلی اضافه کنید (یا اندازه هر آیتم منو را تعیین کنید)، پس نمیتوانید این کار را با یک خط انجام دهید.
در اینجا باید آیتم های خود را به عناصر بلاک تبدیل کنیم. برای انجام این کار، آنها باید یک ویژگی بنویسند:
نمایش: بلوک؛ |
حالا از بالا به پایین می روند، یعنی ناوبری ما عمودی شده است. برای اینکه دوباره آن را افقی کنید، باید ویژگی های خاصی را اضافه کنید. به عنوان مثال، به جای یک نوع بلوک، یک نوع بلوک درون خطی برای آنها تعریف کنید یا آنها را روی (float: left) قرار دهید. در مورد این روش ها بیشتر بخوانید.
ناوبری عمودی
معمولا برای ایجاد یک منوی عمودی در html5 از لیست استفاده می کنند اما نشانه گذاری که در بالا به شما دادم برای ما خوب است. همانطور که دیدید، اگر لینک ها را به لینک های بلاک تبدیل کنید، به طور خودکار یکی پس از دیگری از بالا به پایین ردیف می شوند، زیرا دو بلوک نمی توانند روی یک خط بایستند.
اکنون می توانید قوانین طراحی لازم را برای آنها اعمال کنید. خواص بسیار بیشتری در بلوک ها نسبت به عنصر درون خطی وجود دارد، بنابراین گزینه های بسیار بیشتری دارید. برای مثال موارد زیر را اضافه کردم:
a (متن-تزیین: هیچکدام؛ رنگ: #fff؛ بالشتک: 5 پیکسل؛ اندازه قلم: 22 پیکسل؛ نمایشگر: بلوک؛ پسزمینه: گرادیان خطی (به راست، rgba (96,108,136,1) 0%, rgba (63,76,107) , 1) 100%)؛ عرض: 200 پیکسل؛ تراز متن: مرکز)
متن - دکوراسیون: هیچ; رنگ: #fff; padding: 5px; فونت - اندازه: 22px; نمایش: بلوک؛ پس زمینه: خطی - گرادیان (به راست، rgba (96، 108، 136، 1) 0٪، rgba (63، 76، 107، 1) 100٪؛ عرض: 200 پیکسل؛ متن - تراز: مرکز |
در این آموزش ایجاد خواهیم کرد منوی افقی CSS... البته می توانید از راه حل های آماده استفاده کنید، برای مثال برنامه نویسان را برای CMS Made Simple استخدام کنید. با این حال، شما به دنبال راه های آسان نیستید؟ : گردن کلفت:
مرحله 1 - نشانه گذاری HTML
ابتدا باید آیتم های لیست را با یک برچسب برای هر آیتم در منوی افقی خود ایجاد کنیم. برای ایجاد یک منوی فرعی، باید لیست فرزند دیگری را در والد اضافه کنید.
مرحله 2 - ایجاد سبک های CSS برای منوی افقی
در ابتدا، منو عمودی به نظر می رسد، برای رفع این مشکل، چند سبک می نویسیم، تورفتگی ها، حاشیه ها، رنگ پس زمینه را ویرایش می کنیم، گوشه ها را گرد می کنیم. عرض و ارتفاع را ثابت می کنیم. بیایید با استفاده از float: چپ تراز آیتم های منو را به سمت چپ انجام دهیم (به طوری که ناوبری ساختاری افقی پیدا کند).
منو، .menu ul، .menu li، .menu a (حاشیه: 0؛ بالشتک: 0؛ حاشیه: هیچ؛ طرح کلی: هیچ؛) .menu (ارتفاع: 40 پیکسل؛ عرض: 505 پیکسل؛ پسزمینه: # 4c4e5a؛ پسزمینه: - webkit-linear-gradient (بالا، # 5c5e6a 0%, # 3c3d44 100%)؛ پسزمینه: -moz-linear-gradient (بالا، # 5c5e6a 0٪، # 3c3d44 100%)؛ پسزمینه: -o-linear-gradient ( بالا، # 5c5e6a 0%, # 3c3d44 100%)؛ پسزمینه: -ms-linear-gradient (بالا، # 5c5e6a 0٪، # 3c3d44 100%)؛ پسزمینه: گرادیان خطی (بالا، # 5c5e6a 0٪، # 3c3d44 100%)؛ -webkit-border-radius: 4px؛ -moz-border-radius: 4px؛ border-radius: 4px;) .menu li (موقعیت: نسبی؛ فهرست سبک: هیچ؛ شناور: سمت چپ؛ نمایش: بلوک ؛ ارتفاع: 40 پیکسل؛)
بیایید سبک زیر را برای مدتی بنویسیم و لیست کشویی را پنهان کنیم. این کار ویرایش را آسان تر می کند.
مرحله 3 - منوی پیوند را سبک کنید
در مرحله بعد، سبک هایی را می نویسیم که برخی از ویژگی های اصلی CSS مانند نوع فونت، رنگ ها، padding و غیره را اضافه می کند. سپس یک سایه برای انتقال متن و رنگ اضافه کنید تا یک جلوه صاف ایجاد کنید که در آن رنگ فوراً تغییر نمی کند، اما در یک بازه زمانی مشخص. برای ایجاد جداکننده پیوند، یک حاشیه به چپ و راست اضافه کنید و سپس حاشیه سمت چپ را در اولین لینک و حاشیه سمت راست را در آخرین لینک بردارید. وقتی ماوس را روی منو میبرید، فقط رنگ آن تغییر میکند.
منوی a (نمایش: بلوک؛ بالشتک: 0 14 پیکسل؛ حاشیه: 6 پیکسل 0؛ ارتفاع خط: 28 پیکسل؛ متن تزئینی: هیچ؛ حاشیه سمت چپ: 1 پیکسل توپر # 494942؛ حاشیه سمت راست: 1 پیکسل توپر # 4f5058؛ فونت- خانواده: Helvetica، Arial، sans-serif؛ وزن قلم: پررنگ؛ اندازه قلم: 13px؛ رنگ: # f4f4f4؛ متن سایه: 1px 1px 1px rgba (0,0,0, .6)؛ -webkit-transition : رنگ .3s ease-in-out؛ -moz-transition: color 0.3s ease-in-out؛ -o-transition: color 0.3s ease-in-out؛ -ms-transition: color 0.3s ease-in- خارج؛ انتقال: رنگ .3s ease-in-out;) .menu li: first-child a (حاشیه-چپ: هیچکدام؛) .menu li: آخرین فرزند a (حاشیه-راست: هیچکدام؛) .menu li: hover> a (رنگ: # 9fde63;)
مرحله 4 - منوی کشویی
اول از همه این خط کد را که در مرحله دوم اضافه کردیم حذف می کنیم.
منو ul (نمایش: هیچ؛)
اکنون استایل زیر منو را ویرایش می کنیم. موقعیت 40 پیکسلی را به بالا و 0 پیکسلی را به سمت چپ آیتم منو اضافه کنید و گوشه های گرد را به پایین اضافه کنید. شفافیت را روی صفر تنظیم کنید و در حالت شناور آن را روی 1 تغییر دهید تا جلوه محو ورود/خروج ایجاد شود. برای افکت اسلاید بالا/پایین، باید ارتفاع لیست را روی 0px زمانی که کشویی پنهان است و 36px زمانی که ماوس را روی فهرست کشویی قرار می دهیم، تنظیم کنیم.
منو ul (موقعیت: مطلق؛ بالا: 40 پیکسل؛ سمت چپ: 0؛ کدورت: 0؛ پسزمینه: # 2f3035؛ -webkit-border-radius: 0 0 4px 4px؛ -moz-border-radius: 0 0 4px 4px؛ حاشیه- شعاع: 0 0 4px 4px؛ -webkit-transition: opacity 0.3s ease 0.1s؛ -moz-transition: opacity 0.3s ease 0.1s؛ -o-transition: opacity .3s ease .1s؛ -ms-transition: opacity. 3s ease 0.1s؛ transition: opacity .3s ease 0.1s;) .menu li: hover> ul (opacity: 1;) .menu ul li (ارتفاع: 0؛ سرریز: پنهان؛ padding: 0؛ -webkit-transition: ارتفاع .3s ease 0.1s؛ -moz-transition: height 0.3s ease .1s؛ -o-transition: height 0.3s ease .1s؛ -ms-transition: height 0.3s ease .1s؛ انتقال: ارتفاع 0.3s سهولت. 1s;) .menu li: hover> ul li (ارتفاع: 36 پیکسل؛ سرریز: قابل مشاهده؛ بالشتک: 0؛)
عرض منوی کشویی قابل کلیک را روی 100 پیکسل تنظیم کنید. بعد از هر لینک یک حاشیه اضافه کردم تا جدا شوند. بیایید حاشیه را در لینک آخر حذف کنیم.
منو ul li a (عرض: 100 پیکسل؛ بالشتک: 4 پیکسل 0 4 پیکسل 40 پیکسل؛ حاشیه: 0؛ حاشیه: هیچ؛ حاشیه پایین: 1 پیکسل توپر # 464649؛)
برای تکمیل منوی افقی CSS باید برای هر زیر منوی کشویی یک نماد اضافه کنیم. برای این کار برای هر یک از زیر منوها یک کلاس سفارشی ایجاد می کنیم و یک تصویر پس زمینه اضافه می کنیم.
تبلیغات منو (پسزمینه: url (docs.png) بدون تکرار 6px مرکز؛) .menu am (پسزمینه: url (bubble.png) بدون تکرار 6px مرکز؛) .menu به عنوان (پسزمینه: url (arrow.png) no -تکرار 6px مرکز؛)
نتیجه
ما با موفقیت یک منوی افقی کشویی با و بدون سبک های CSS3 ایجاد کردیم، اگرچه این امکان نیز وجود داشت. اگر سوالی دارید در نظرات با من در میان بگذارید.
(دانلود: 395)
مشخصات
شرح
برچسب بزنید