![](/img/trans.png)
[英]How to change the active tab in a responsive navigation bar in HTML,CSS,JS?
[英]Responsive Navigation Bar using HTML, CSS and JS is not showing the menu; also unable to change order of links
我正在基於舊站點創建一個投資組合站點,但是使用Bootstrap進行布局只是因為它更快。 我嘗試使用Bootstrap創建一個下拉導航欄,但是菜單永遠不會出現,因此我放棄了,只使用了HTML,CSS和JS。 我以W3C Scools的THIS教程為基礎,並遵循對T的指導,但更改了選項。
這也不允許我切換順序(例如,我希望它是:主頁| |項目|關於我|聯系人)。 這是我的代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE-edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Web Portfolio</title>
<link rel="stylesheet" type="text/css" href="bootstrap.css" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<!-- if IE 9 -->
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"</script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<!-- end -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<style>
body {
margin:0;
}
.topnav {
overflow: hidden;
background-color: #333;
}
.topnav a {
float: left;
display: block;
color: #f2f2f2;
text-align: center;
padding: 14px 16px;
text-decoration: none;
font-size: 17px;
}
.active {
background-color: pink;
color: white;
}
.topnav .icon {
display: none;
}
.dropdown {
float: left;
overflow: hidden;
}
.dropdown .dropbtn {
font-size: 17px;
border: none;
outline: none;
color: white;
padding: 14px 16px;
background-color: inherit;
font-family: inherit;
margin: 0;
}
.dropdown-content {
display: none;
position: absolute;
background-color: #f9f9f9;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
z-index: 1;
}
.dropdown-content a {
float: none;
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
text-align: left;
}
.topnav a:hover, .dropdown:hover .dropbtn {
background-color: #555;
color: white;
}
.dropdown-content a:hover {
background-color: #ddd;
color: black;
}
.dropdown:hover .dropdown-content {
display: block;
}
@media screen and (max-width: 600px) {
.topnav a:not(:first-child), .dropdown .dropbtn {
display: none;
}
.topnav a.icon {
float: right;
display: block;
}
}
@media screen and (max-width: 600px) {
.topnav.responsive {position: relative;}
.topnav.responsive .icon {
position: absolute;
right: 0;
top: 0;
}
.topnav.responsive a {
float: none;
display: block;
text-align: left;
}
.topnav.responsive .dropdown {float: none;}
.topnav.responsive .dropdown-content {position: relative;}
.topnav.responsive .dropdown .dropbtn {
display: block;
width: 100%;
text-align: left;
}
}
</style>
</head>
<body>
<div class="topnav" id="myTopnav">
<a href="#home" class="active">Home</a>
<div class="dropdown">
<button class="dropbtn">Projects
<i class="fa fa-caret-down"></i>
</button>
<div class="dropdown-content">
<a href="#websites">Web Sites</a>
<a href="#jsapps">JavaScript Applications</a>
<a href="#csharpapps">C# Applications</a>
<a href="#javaapps">Java Applications</a>
<a href="#xmlapps">XML Applications/XSLTs</a>
<a href="#wpsites">WwordPress Sites (Coming Soon)</a>
</div>
<a href="#about">About</a>
<a href="#contact">Contact</a>
</div>
<a href="javascript:void(0);" style="font-size:15px;" class="icon" onclick="myFunction()">☰</a>
</div>
<!-- Bootstrap rows and columns -->
<div class="row">
<div class="col-md-12 text-center">
<h1>Web Portfolio</h1>
</div>
</div>
<hr />
<div class="row">
<div class="col-md-4 col-sm-6 col-xs-12">
<h3>Skill 1</h3>
<p>Stuff goes here
</p>
</div>
<div class="col-md-4 col-sm-6 col-xs-12">
<h3>Skill 2</h3>
<p>Stuff goes here
</p>
</div>
<div class="col-md-4 col-sm-6 col-xs-12">
<h3>Skill 3</h3>
<p>Stuff goes here
</p>
</div>
<div class="col-md-4 col-sm-6 col-xs-12">
<h3>Skill 4</h3>
<p>Stuff goes here
</p>
</div>
<div class="col-md-4 col-sm-6 col-xs-12">
<h3>Skill 5</h3>
<p>Stuff goes here
</p>
</div>
<div class="col-md-4 col-sm-6 col-xs-12">
<h3>Skill 6</h3>
<p>Stuff goes here
</p>
</div>
</div>
</div>
<script>
function myFunction() {
var x = document.getElementById("myTopnav");
if (x.className === "topnav") {
x.className += " responsive";
} else {
x.className = "topnav";
}
}
</script>
<!-- scripts into the body -->
<script src="jquery.js"</script>
<script src="bootstrap.js"></script>
<!-- </footer>PLC ©2018 All Rights Reserved.</footer> -->
</body>
</html>
拜托,如果有人可以讓我知道我做錯了什么,我將不勝感激。 還是我應該只刪除它並使用Nav
元素創建一個,然后添加CSS和JS以希望使其具有響應性? 謝謝。
您的About和Contact div包裝在您的Projects下拉列表中,因此我將它們放在以下位置:
function myFunction() { var x = document.getElementById("myTopnav"); if (x.className === "topnav") { x.className += " responsive"; } else { x.className = "topnav"; } }
body { margin: 0; } .topnav { overflow: hidden; background-color: #333; } .topnav a { float: left; display: block; color: #f2f2f2; text-align: center; padding: 14px 16px; text-decoration: none; font-size: 17px; } .active { background-color: pink; color: white; } .topnav .icon { display: none; } .dropdown { float: left; overflow: hidden; } .dropdown .dropbtn { font-size: 17px; border: none; outline: none; color: white; padding: 14px 16px; background-color: inherit; font-family: inherit; margin: 0; } .dropdown-content { display: none; position: absolute; background-color: #f9f9f9; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2); z-index: 1; } .dropdown-content a { float: none; color: black; padding: 12px 16px; text-decoration: none; display: block; text-align: left; } .topnav a:hover, .dropdown:hover .dropbtn { background-color: #555; color: white; } .dropdown-content a:hover { background-color: #ddd; color: black; } .dropdown:hover .dropdown-content { display: block; } @media screen and (max-width: 600px) { .topnav a:not(:first-child), .dropdown .dropbtn { display: none; } .topnav a.icon { float: right; display: block; } } @media screen and (max-width: 600px) { .topnav.responsive { position: relative; } .topnav.responsive .icon { position: absolute; right: 0; top: 0; } .topnav.responsive a { float: none; display: block; text-align: left; } .topnav.responsive .dropdown { float: none; } .topnav.responsive .dropdown-content { position: relative; } .topnav.responsive .dropdown .dropbtn { display: block; width: 100%; text-align: left; } }
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE-edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Web Portfolio</title> <link rel="stylesheet" type="text/css" href="bootstrap.css" /> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> <!-- if IE 9 --> <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> <!-- end --> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> </head> <body> <div class="topnav" id="myTopnav"> <a href="#home" class="active">Home</a> <div class="dropdown"> <button class="dropbtn">Projects <i class="fa fa-caret-down"></i> </button> <div class="dropdown-content"> <a href="#websites">Web Sites</a> <a href="#jsapps">JavaScript Applications</a> <a href="#csharpapps">C# Applications</a> <a href="#javaapps">Java Applications</a> <a href="#xmlapps">XML Applications/XSLTs</a> <a href="#wpsites">WwordPress Sites (Coming Soon)</a> </div> </div> <a href="#about">About</a> <a href="#contact">Contact</a> <a href="javascript:void(0);" style="font-size:15px;" class="icon" onclick="myFunction()">☰</a> </div> <!-- Bootstrap rows and columns --> <div class="row"> <div class="col-md-12 text-center"> <h1>Web Portfolio</h1> </div> </div> <hr /> <div class="row"> <div class="col-md-4 col-sm-6 col-xs-12"> <h3>Skill 1</h3> <p>Stuff goes here </p> </div> <div class="col-md-4 col-sm-6 col-xs-12"> <h3>Skill 2</h3> <p>Stuff goes here </p> </div> <div class="col-md-4 col-sm-6 col-xs-12"> <h3>Skill 3</h3> <p>Stuff goes here </p> </div> <div class="col-md-4 col-sm-6 col-xs-12"> <h3>Skill 4</h3> <p>Stuff goes here </p> </div> <div class="col-md-4 col-sm-6 col-xs-12"> <h3>Skill 5</h3> <p>Stuff goes here </p> </div> <div class="col-md-4 col-sm-6 col-xs-12"> <h3>Skill 6</h3> <p>Stuff goes here </p> </div> </div> </div> </body> </html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.