如何使用 CSS 和 JavaScript 为智能手机/平板电脑创建顶部导航菜单?
在本文中,我们将讨论如何使用 CSS 和 JavaScript 为智能手机和平板电脑创建顶部导航菜单。
导航栏通常是访问网站的用户的第一站,他们需要通过导航栏来浏览网站。它包含网站中存在的元素列表;包括用于在网站中导航的链接。
为智能手机和平板电脑创建顶部导航菜单很容易,首先我们必须创建一个导航菜单页面并在 CSS 中添加媒体查询。如果设备宽度小于 600px,则添加以下 CSS 属性。
@media screen and (max-width: 600px) {
.navbar a:not(:first-child) {display: none;}
.navbar a.icon {
float: right;
display: block;
}
}
@media screen and (max-width: 600px) {
.navbar.responsive .icon {
position: absolute;
right: 0;
top: 0;
}
.navbar.responsive a {
float: none;
display: block;
text-align: left;
}
}
示例
以下是创建智能手机顶部导航菜单需要遵循的步骤。在本例中,我们正在创建一个显示“顶部导航菜单”的网页。一个包含 4 个链接的菜单,点击后才会显示。
Example.html
创建一个 HTML 文件,在其中我们将定义页面的结构(视图)。在本例中,我们使用 HTML 代码创建当前页面,其中包含所需的文本、一个下拉菜单和菜单的空导航链接。
<body>
<div class="navbar" id="myNavbar">
<a href="#home" class="active">Home</a>
<a href="#tutorials">Tutorials</a>
<a href="#contact">Contact</a>
<a href="#about">About</a>
<a href="javascript:void(0);" style="font-size:15px;" class="icon" onclick="myFunction()">☰</a>
</div>
<div style="padding-top:200px; text-align: center;">
<h2>Menu for Smart-phone, ipad, and mobiles</h2>
<p>Resize the browser window to see how it works on mobiles phone.</p>
</div>
Example.css
添加CSS 样式以在顶部导航菜单上提供背景和悬停效果,以获得更好的外观。在本例中,我们正在设置顶部导航菜单的样式,如果我们悬停在链接上,背景颜色将会改变。
<style>
body {
margin: 0;
font-family: Arial, Helvetica, sans-serif;
}
.navbar {
overflow: hidden;
background-color: rgba(43, 194, 106, 0.8);
position: fixed;
top: 0;
width: 100%;
}
.navbar a {
float: left;
display: block;
color: #ffffff;
text-align: center;
padding: 14px 16px;
text-decoration: none;
font-size: 17px;
}
.navbar a:hover {
background-color: rgb(214, 39, 39);
color: black;
}
.navbar a.active {
background-color: #045faa;
color: white;
}
.navbar .icon {
display: none;
}
@media screen and (max-width: 600px) {
.navbar a:not(:first-child) {
display: none;
}
.navbar a.icon {
float: right;
display: block;
}
}
@media screen and (max-width: 600px) {
.navbar.responsive .icon {
position: absolute;
right: 0;
top: 0;
}
.navbar.responsive a {
float: none;
display: block;
text-align: left;
}
}
</style>
Example.js
使用JavaScript,我们可以执行验证并在页面上处理事件。在本例中,我们正在为“首页”使用 active 类,并添加响应式类以实现响应式设计。
<script>
function myFunction() {
var x = document.getElementById("myNavbar");
if (x.className === "navbar") {
x.className += " responsive";
} else {
x.className = "navbar";
}
}
</script>
完整示例
以下是创建手机菜单栏/导航栏的完整示例。
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body {
margin: 0;
font-family: Arial, Helvetica, sans-serif;
}
.navbar {
overflow: hidden;
background-color: rgba(43, 194, 106, 0.8);
position: fixed;
top: 0;
width: 100%;
}
.navbar a {
float: left;
display: block;
color: #ffffff;
text-align: center;
padding: 14px 16px;
text-decoration: none;
font-size: 17px;
}
.navbar a:hover {
background-color: rgb(214, 39, 39);
color: black;
}
.navbar a.active {
background-color: #045faa;
color: white;
}
.navbar .icon {
display: none;
}
@media screen and (max-width: 600px) {
.navbar a:not(:first-child) {
display: none;
}
.navbar a.icon {
float: right;
display: block;
}
}
@media screen and (max-width: 600px) {
.navbar.responsive .icon {
position: absolute;
right: 0;
top: 0;
}
.navbar.responsive a {
float: none;
display: block;
text-align: left;
}
}
</style>
</head>
<body>
<div class="navbar" id="myNavbar">
<a href="#home" class="active">Home</a>
<a href="#tutorials">Tutorials</a>
<a href="#contact">Contact</a>
<a href="#about">About</a>
<a href="javascript:void(0);" style="font-size:15px;" class="icon" onclick="myFunction()">☰</a>
</div>
<div style="padding-top:200px; text-align: center;">
<h2>Menu for Smart-phone, ipad, and mobiles</h2>
<p>Resize the browser window to see how it works on mobiles phone.</p>
</div>
<script>
function myFunction() {
var x = document.getElementById("myNavbar");
if (x.className === "navbar") {
x.className += " responsive";
} else {
x.className = "navbar";
}
}
</script>
</body>
</html>
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP