CSS 下拉导航
Posted
技术标签:
【中文标题】CSS 下拉导航【英文标题】:CSS drop down navigation 【发布时间】:2015-09-08 04:51:53 【问题描述】:我确定这是我缺少的一些简单的东西...我的下拉菜单正在主导航中打开,并扩大了它。这是我正在处理的页面的链接。问题在于应用按钮下方的导航。
http://membershq.incentiveusa.com/AwardPages/GoalUp_Test2/index_test3.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 >
<li><a href="#">About Us</a>
<ul>
<li><a href="about.html">Who We Are</a></li>
<li><a href="news.html">News</a></li>
</ul></li>
<li><a href="HowItWorks.html">How It Works</a></li>
<li><a href="FactsStats.html">Facts</a></li>
<li><a href="ParentingTools.html">Tools</a></li>
<li><a href="testimonials.html">Testimonials</a></li>
<li><a href="news.html">News</a></li>
<li><a href="awards.html">Brand Name Awards</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
这是 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: 10000;
text-align:center;
/*Create a horizontal list with spacing*/
.navigation li
display:inline-block;
margin-right: 0px;
background-color:#0f9bde;
/*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;
z-index: 10001;
/*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;
z-index: 10001;
/*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;
【问题讨论】:
【参考方案1】:你必须添加一个 position:absolute 到选择器.navigation li ul
.navigation
margin-right: auto;
margin-left: auto;
width: 100%;
background-color: #0f9cde;
position: absolute;
display: block;
margin-bottom: 15px;
z-index: 1000;
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: 10000;
text-align:center;
/*Create a horizontal list with spacing*/
.navigation li
display:inline-block;
margin-right: 0px;
background-color:#0f9bde;
/*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;
z-index: 10001;
/*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;
z-index: 10001;
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;
<div class="container-fluid">
<div class="section-title2 text-center">
<div class="navigation">
<ul >
<li><a href="#">About Us</a>
<ul>
<li><a href="about.html">Who We Are</a></li>
<li><a href="news.html">News</a></li>
</ul></li>
<li><a href="HowItWorks.html">How It Works</a></li>
<li><a href="FactsStats.html">Facts</a></li>
<li><a href="ParentingTools.html">Tools</a></li>
<li><a href="testimonials.html">Testimonials</a></li>
<li><a href="news.html">News</a></li>
<li><a href="awards.html">Brand Name Awards</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div></div></div>
【讨论】:
请注意,为了正确显示 sn-p,我删除了一些代码,但它在原始代码上也应该可以正常工作。 不客气。请不要忘记接受答案。 我对子导航的位置也有疑问。它不是在桌面版的顶层正下方排队,在移动版中它是浮动到左侧。有什么想法吗? 将#menu ul min-width: 100%;
添加到您的移动样式,将#menu ul min-width: 189px; /*matches parent link min-width*/
添加到您的桌面样式。
也仅将.navigation li ul position: absolute;
应用于您的桌面样式。如果您这样做,您可以忽略我之前关于将min-width:100%;
应用于您的移动样式的评论。以上是关于CSS 下拉导航的主要内容,如果未能解决你的问题,请参考以下文章