如何创建:响应式顶部导航栏
- صفحه قبل ناوبری بالا
- صفحه بعدی نقشهبرداری منو
学习如何使用 CSS 和 JavaScript 创建响应式顶部导航栏。
响应式顶部导航菜单
请调整浏览器窗口大小,查看响应式导航菜单的工作方式:
创建响应式顶部导航菜单
第一步 - 添加 HTML:
<!-- 加载图标库以在小屏幕上显示汉堡菜单(横杠) --> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> <div class="topnav" id="myTopnav"> <a href="#home" class="active">Home</a> <a href="#news">News</a> <a href="#contact">Contact</a> <a href="#about">About</a> <a href="javascript:void(0);" class="icon" onclick="myFunction()"> <i class="fa fa-bars"></i> </a> </div>
class="icon" 的链接用于在小屏幕上打开和关闭顶部导航。
第二步 - 添加 CSS:
/* 为顶部导航添加黑色背景色 */ .topnav { background-color: #333; overflow: hidden; } /* 设置导航栏中链接的样式 */ .topnav a { float: left; display: block; color: #f2f2f2; text-align: center; padding: 14px 16px; text-decoration: none; font-size: 17px; } /* رنگ لینکها در حالت ماوسورس تغییر میکند */ .topnav a:hover { background-color: #ddd; color: black; } /* یک کلاس فعال اضافه میشود تا صفحه فعلی را برجسته کند */ .topnav a.active { background-color: #04AA6D; color: white; } /* لینکهایی که برای باز و بسته کردن ناوبری بالای صفحه در صفحههای کوچک استفاده میشوند، مخفی میشوند */ .topnav .icon { display: none; }
افزودن پرس و جو رسانهای:
/* هنگامی که عرض صفحه کمتر از 600 پیکسل باشد، لینکهای غیر اول (Home) مخفی میشوند. لینکهایی که باید ناوبری بالای صفحه را باز و بسته کنند (.icon) نمایش داده میشوند */ @media screen and (max-width: 600px) { .topnav a:not(:first-child) {display: none;} .topnav a.icon { float: right; display: block; } } /* هنگام کلیک کاربر بر روی آیکون، JavaScript به topnav کلاس "+\"responsive\"+ اضافه میکند. این کلاس باعث میشود که topnav در صفحههای کوچک بهتر به نظر برسد (لینکها به صورت عمودی نمایش داده میشوند به جای نمایش افقی) */ @media screen and (max-width: 600px) { .topnav.responsive {position: relative;} .topnav.responsive a.icon { position: absolute; right: 0; top: 0; } .topnav.responsive a { float: none; display: block; text-align: left; } }
مرحله سوم - افزودن JavaScript:
/* هنگام کلیک کاربر بر روی آیکون، در topnav بین افزودن و حذف کلاس "+\"responsive\"+ جابجایی میشود */ function myFunction() { var x = document.getElementById("myTopnav"); if (x.className === "+\"topnav\"+) { x.className += "+\"responsive\"+; } x.className = "+\"topnav\"+; } }
صفحات مرتبط
تدریس:نوار ناوبری CSS
- صفحه قبل ناوبری بالا
- صفحه بعدی نقشهبرداری منو