我正在创建一个网站,在标题的导航栏中,我有左侧的徽标和右侧其他页面的链接,当浏览器调整为小于600px时,所有链接都应该是进入一个图标,但徽标仍然存在。
当我点击图标时,链接的格式和图标会更改为默认设置,我希望链接一个接一个地显示在彼此之下like this(示例来自www.W3Schools.com)
我希望有人可以帮我解决这个错误。
谢谢。
<div class="slideshow_nav">
<div class="navbar-wlogo">
<img src="/Users/yanikwick/Documents/canvas_website/logo.png" alt="logo" class="logo "width = "175px">
<nav class="topnav" id="myTopnav">
<a href="/html/contact">CONTACT</a>
<a href="/html/about">ABOUT</a>
<a href="/html/portfolio">PORTFOLIO</a>
<a href="/html/">HOME</a>
<a href="javascript:void(0);" style="font-size:30px;" class="icon" onclick="myFunction()">☰</a>
</nav>
</div>
这是导航栏的html。
function myFunction() {
var x = document.getElementById("myTopnav");
if (x.className === "topnav") {
x.className += " responsive";
} else {
x.className = "topnav";
}
}
这是javascript。
header .logo{
float: left;
margin: 0px;
padding: 10px 10px 5px 10px;
}
header .topnav{
overflow: hidden;
margin-right: 20px;
}
header .topnav a{
float: right;
display: block;
color: #f2f2f2;
text-align: center;
margin-top: 2%;
margin-bottom: 2%;
padding: 14px 16px;
text-decoration: none;
font-size: 17px;
}
.topnav .icon {
display: none;
}
.topnav a:hover {
background-color: #ddd;
color: black;
}
@media screen and (max-width: 600px){
.topnav a:not(:last-child) {display: none;}
.topnav a.icon {
display: inline-block;
float: right;
}
@media screen and (max-width: 600px) {
.topnav .responsive {
position: relative;
}
.topnav .responsive .icon {
float: right;
}
.topnav .responsive a{
float: none;
display: block;
text-align: left;
}
}
CSS
如果你帮助我,我将不胜感激。谢谢。
答案 0 :(得分:0)
问题是,如果.topnav应用响应,则不设置链接的可见性...
如下所示:
.topnav.responsive a {
display:block;
}
内
@media screen and (max-width: 600px){
...
}
这里有一个工作的jsbin;) http://jsbin.com/vupizuyeji/edit?html,css,js,output
Cheerio:)