子导航隐藏在水平菜单中,自动溢出
Sub nav hidden in horizontal menu with overflow auto
我用一个子导航列表构建了一个简单的水平菜单,但我遇到了让子导航可见的麻烦。根据 overflow: auto 指令,我知道这个菜单被 .wrapper 截断了。
顺便问一下,有什么办法可以达到目的吗?
.wrapper 结构应该是这样的
----- ------
| LOGO NAV ICONS |
----- ------
左侧的徽标,旁边是带有子菜单的导航列表。右边应该有图标。
我的问题在这里表示:https://jsfiddle.net/4mor5g80/2/
任何 hints/ideas?
谢谢,
雅库布
也需要将float:left;width:100%
设置为.wrapper
,因为里面的所有元素都有float
所以,.wrapper
需要有它内容的高度并设置 overflow:visible
而不是 auto
body {
background: #fff;
}
div.wrapper {
background: #2e2e2e;
min-height: 10px;
overflow: visible;
float:left;
width:100%;
}
div.wrapper .info {float: right;}
div.wrapper .logo {
float: left;
margin-right: 2em;
min-height: 10px;
}
ul {
list-style-type: none;
margin: 0;
padding: 10px 0;
float: left;
}
ul li ul {
list-style-type: none;
margin: 0;
padding: 10px 0;
}
li {
display: inline;
padding: 10px 0;
position: relative;
}
li a {
color: white;
text-align: center;
padding: 10px 16px;
text-decoration: none;
}
li a:hover {
background-color: green;
}
.dropdown-content {
display: none;
position: absolute;
background-color: #f9f9f9;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
top: 100%;
left: 0;
}
.dropdown-content a {
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
text-align: left;
}
.dropdown-content a:hover {background-color: #f1f1f1}
ul li:hover .dropdown-content {
display: block;
}
h3 {
clear: both;
}
}
<div class="wrapper">
<p class="logo">logo</p>
<ul>
<li><a class="active" href="#home">Home</a></li>
<li><a href="#news">News</a></li>
<li>
<a href="#">Dropdown</a>
<ul class="dropdown-content">
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
<li><a href="#">Link 3</a></li>
</ul>
</li>
</ul>
<div class="info"><a href="a">Test</a></div>
</div>
<h3>Dropdown Menu inside a Navigation Bar</h3>
<p>Hover over the "Dropdown" link to see the dropdown menu.</p>
我用一个子导航列表构建了一个简单的水平菜单,但我遇到了让子导航可见的麻烦。根据 overflow: auto 指令,我知道这个菜单被 .wrapper 截断了。
顺便问一下,有什么办法可以达到目的吗?
.wrapper 结构应该是这样的
----- ------
| LOGO NAV ICONS |
----- ------
左侧的徽标,旁边是带有子菜单的导航列表。右边应该有图标。
我的问题在这里表示:https://jsfiddle.net/4mor5g80/2/ 任何 hints/ideas?
谢谢, 雅库布
也需要将float:left;width:100%
设置为.wrapper
,因为里面的所有元素都有float
所以,.wrapper
需要有它内容的高度并设置 overflow:visible
而不是 auto
body {
background: #fff;
}
div.wrapper {
background: #2e2e2e;
min-height: 10px;
overflow: visible;
float:left;
width:100%;
}
div.wrapper .info {float: right;}
div.wrapper .logo {
float: left;
margin-right: 2em;
min-height: 10px;
}
ul {
list-style-type: none;
margin: 0;
padding: 10px 0;
float: left;
}
ul li ul {
list-style-type: none;
margin: 0;
padding: 10px 0;
}
li {
display: inline;
padding: 10px 0;
position: relative;
}
li a {
color: white;
text-align: center;
padding: 10px 16px;
text-decoration: none;
}
li a:hover {
background-color: green;
}
.dropdown-content {
display: none;
position: absolute;
background-color: #f9f9f9;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
top: 100%;
left: 0;
}
.dropdown-content a {
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
text-align: left;
}
.dropdown-content a:hover {background-color: #f1f1f1}
ul li:hover .dropdown-content {
display: block;
}
h3 {
clear: both;
}
}
<div class="wrapper">
<p class="logo">logo</p>
<ul>
<li><a class="active" href="#home">Home</a></li>
<li><a href="#news">News</a></li>
<li>
<a href="#">Dropdown</a>
<ul class="dropdown-content">
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
<li><a href="#">Link 3</a></li>
</ul>
</li>
</ul>
<div class="info"><a href="a">Test</a></div>
</div>
<h3>Dropdown Menu inside a Navigation Bar</h3>
<p>Hover over the "Dropdown" link to see the dropdown menu.</p>