【问题标题】:CSS navigation menu not nesting in mobile versionCSS导航菜单不嵌套在移动版本中
【发布时间】:2015-06-30 14:03:23
【问题描述】:

所以我在玩我的下拉菜单项的定位。当我让它们在桌面版本中正确显示时,它们位于移动版本的顶级按钮之上,而不是向下推。当我将它们正确嵌套在移动版本中时,它们在桌面版本中位于蓝色背景中。这是我网站的链接:http://membershq.incentiveusa.com/AwardPages/GoalUp_Test2/index_test2.html

这是 HTML:

        <div class="container-fluid">
         <div class="section-title2 text-center">        
                <div class="navigation">
                    <label for="show-menu" class="show-menu">Show Menu</label>
<input type="checkbox" id="show-menu" role="button">
<ul id="menu">
    <li><a href="about.html">About Us</a>
    <ul>

    <li><a href="news.html">News</a></li>
    </ul></li>
    <li><a href="HowItWorks.html">How It Works</a>
    <ul>
    <li><a href="FactsStats.html">Facts</a></li>
    <li><a href="ParentingTools.html">Tools</a></li>
    </ul>
    </li>

    <li><a href="testimonials.html">Testimonials</a></li>

    <li><a href="awards.html">Brand Name Awards</a></li>
    <li><a href="contact.html">Contact</a></li>
</ul>

</div></div></div>

这是 CSS:

.navigation{
margin-right: auto;
margin-left: auto;
width: 100%;
background-color: #0f9cde;
position: absolute;
display: block;
margin-bottom: 15px;
z-index: 1000;
top: 735px;
margin-left: -15px;
}
/*Strip the ul of padding and list styling*/
.navigation ul{
list-style-type: none;
margin: 0 auto;
padding: 0;
position: relative;
z-index: 1000;
text-align:center;



}

/*Create a horizontal list with spacing*/
.navigation li{
display:inline-block;
margin-right: 0px;
background-color:#0f9bde;
vertical-align: top;
}

/*Style for menu links*/
.navigation li a {

min-width: 189px;
height: 50px;
text-align: center;
line-height: 50px;
font-family: 'Maven Pro', sans-serif;
font-size:18px;
color: #fff;
width:100%;
background-color: #0f9cde;
text-decoration: none;
display:block;

}

/*Hover state for top level links*/
.navigation li:hover a {
color: #f7a800;
text-decoration: underline;
}

/*Style for dropdown links*/
.navigation li:hover ul a {
background: #f7a800;
color: #ffffff;
height: 40px;
line-height: 40px;

}

/*Hover state for dropdown links*/
.navigation li:hover ul a:hover {
background: #fff;
color: #f7a800;
}

/*Hide dropdown links until they are needed*/
.navigation li ul{
display: none;
position: absolute;
}

/*Make dropdown links vertical*/
.navigation li ul li {
display: block;
float: none;
}

/*Prevent text wrapping*/
.navigation li ul li a {
width: auto;
min-width: 100px;
padding: 0 20px;
}

.navigation ul li:hover ul{
display:block;
}

/*Display the dropdown on hover*/
.navigation ul li a:hover  {
display: block;

}



/*Style 'show menu' label button and hide it by default*/
.show-menu {
font-family:'Maven Pro', sans-serif;
text-decoration: none;
color: #fff;
background: #f7a800;
text-align: center;
padding: 10px 0;
display: none;
}

/*Hide checkbox*/
input[type=checkbox]{
display: none;
-webkit-appearance: none;
}

/*Show menu when invisible checkbox is checked*/
input[type=checkbox]:checked ~ #menu{
display: block;
}

#menu ul {min-width: 189px; }

/*Responsive Styles*/

@media screen and (max-width : 975px){
/*Make dropdown links appear inline*/
.navigation ul {
    position: static;
    display: none;
}
/*Create vertical spacing*/
.navigation li {
    margin-bottom: 1px;
}
/*Make all menu links full width*/
.navigation ul li, li a {
    width: 100%;
}
.navigation li ul li {
    width: 100%;
}
#menu ul {min-width: 100%;}
/*Display 'show menu' link*/
.show-menu {
    display:block;
}
}

【问题讨论】:

  • 有什么问题?你想达到什么目的?
  • 我希望下拉菜单项像现在一样出现在桌面版本中,但在移动版本中,下拉项目与顶级项目嵌套并下拉其下方的项目....希望这是有道理的?
  • 问题似乎是由于单击父节点触发页面请求,您实际上无法导航到菜单中的子节点?
  • CSS drop down navigation的可能重复

标签: html css


【解决方案1】:

您可以只使用媒体查询来改变移动设备上的行为。试试这个:

@media (max-width: 480px) {
   #menu ul {
       position: static;
   }
}

到目前为止,子 ul 仍然定位为绝对,并将覆盖菜单的其余部分。如果您将其设置为静态,它会“下推”菜单项兄弟。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-22
    • 1970-01-01
    • 2014-07-05
    • 1970-01-01
    • 1970-01-01
    • 2018-03-16
    • 2018-09-02
    • 1970-01-01
    相关资源
    最近更新 更多