【发布时间】:2017-07-05 06:57:32
【问题描述】:
当媒体查询处于活动状态时,我试图移除子菜单上的悬停。现在它按我想要的 979px 以上的方式工作,它在悬停时显示子菜单。但是,在 979 像素及以下的菜单会发生变化。我试图让子菜单始终显示,但似乎无法弄清楚。服务按钮上有一个链接,因此当按下它以显示子菜单时,您会被重定向,这就是为什么我想在媒体查询时一直显示子菜单的原因。
HTML:
<!-- Nav Bar -->
<div id="navbar">
<label for="show-menu" class="show-menu">Menu ☰</label>
<input type="checkbox" id="show-menu" role="button">
<ul id="menu" class="nav">
<li class="nav active"><a href="http://adanburlington.com/giotto2/index.html">Home</a></li>
<li class="nav">
<a href="http://adanburlington.com/giotto2/services.html">Services</a>
<ul class="nav hidden">
<li><a href="#">Fire Alarm Systems</a></li>
<li><a href="#">Security & Intrusion</a></li>
<li><a href="#">Closed Circuit TV</a></li>
<li><a href="#">Access Control</a></li>
<li><a href="#">Systems Intrigation</a></li>
</ul>
</li>
<li class="nav"><a href="http://adanburlington.com/giotto2/about.html">About Us</a></li>
<li class="nav"><a href="https://skyfex.com/client/" target="blank">Tech Support</a></li>
<li class="nav"><a href="#">Photo Gallery</a></li>
<li class="nav"><a href="#">Testimonials</a></li>
<li class="nav"><a href="http://adanburlington.com/giotto2/contact.html">Contact Us</a></li>
</ul>
</div>
<!-- Nav Bar End -->
CSS:
ul.nav
{ list-style-type:none;
margin:0;
padding:0;
position: absolute;}
li.nav
{ display:inline-block;
float: left;
margin-right: 2px;}
li.nav a {
display:block;
min-width:153px;
height: 40px;
text-align: center;
line-height: 40px;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
color: #fff;
background: #724e27;
text-decoration: none;
}
li.nav:hover a {
background: #cccccc;
color: #2f3036;
}
li.nav:hover ul a {
background: #f3f3f3; /* Light grey */
color: #2f3036; /* dark Grey */
height: 40px;
line-height: 40px;
}
li.nav:hover ul a:hover {
background: #996633; /* Light Brown */
color: #fff;
}
li.active a, li.active a:hover
{ background: #cccccc;
color: #2f3036;}
li.nav ul {
display: none;
}
li.nav ul li {
display: block;
float: none;
}
li.nav ul li a {
width: auto;
min-width: 100px;
padding: 0 20px;
}
ul.nav li a:hover + .hidden, .hidden:hover {
display: block;
z-index: 999;
}
.show-menu {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
text-decoration: none;
color: #261a0d;
background: #f3f3f3;
text-align: center;
padding: 10px 0;
display: none;
}
input[type=checkbox]{display: none;}
input[type=checkbox]:checked ~ #menu{display: block;}
/* Responsive Styles */
@media screen and (max-width : 979px){
ul.nav
{ position: static;
display: none;}
li.nav {margin-bottom: 1px;}
ul.nav li, li.nav a {width: 100%;}
.show-menu {display:block;}
}
【问题讨论】:
-
是否需要默认显示979px及以下的菜单?
-
不,但是当在 979px 及以下查看时,我希望子菜单展开而不是隐藏
-
你能试试这个@media screen and (max-width : 979px){ li.nav > ul.hidden { display: block !important; } }
-
做到了....!!谢谢。如果你把它写成答案,那就投票吧.....再次感谢
-
不客气@AdanBurlington
标签: html css media-queries