屏幕左侧显示的下拉菜单
Dropdown menu displayed on left of screen
我一直在尝试下拉菜单。现在我的菜单看起来和我想要的一模一样,但是我的下拉列表显示在屏幕的左侧,而不是直接在其父级下方。
示例:
.nav {
background-color: rgba(0, 0, 0, .8);
height: 56px;
line-height: 56px;
width: 100%;
position: fixed;
top: 0;
z-index: 1000;
}
ul {
text-align: center;
margin: 0;
padding: 0;
transition: .2s ease-in-out;
}
ul li {
display: inline;
transition: .2s ease-in-out;
}
ul li a {
background-color: red;
display: inline-block;
padding: 0 16px;
}
ul li ul {
text-align: left;
opacity: 0;
position: absolute;
visibility: hidden;
}
ul li:hover ul {
opacity: 1;
visibility: visible;
}
ul li ul li {
color: rgba(0, 0, 0, .8);
display: block;
}
<div class="nav">
<ul>
<li><a href="">Home</a>
</li>
<li><a href="">Page1</a>
<ul>
<li><a href="">Page 1.1</a>
</li>
<li><a href="">Page 1.2</a>
</li>
<li><a href="">Page 1.3</a>
</li>
<li><a href="">Page 1.4</a>
</li>
</ul>
</li>
<li><a href="">Page2</a>
<ul>
<li><a href="">Page 2.1</a>
</li>
<li><a href="">Page 2.2</a>
</li>
</ul>
</li>
<li><a href="">About</a>
</li>
</ul>
</div>
悬停时,ul li ul
应该在 ul li
下可见,但 ul li ul
显示在我的屏幕左侧。我已经为所有元素尝试了不同的位置,但我无法弄清楚。
预期结果:
只需将此添加到您的 CSS:
ul li {
position: relative;
}
absolute
定位元素的父元素必须具有 position
值而不是 static
(这是默认值,即使它不包含在 CSS)
编辑:此父元素必须是块元素(您的 <li>
当前是内联元素),因此您还必须添加:
ul li {
position: relative;
display: inline-block;
}
另请参阅更新的代码笔:http://codepen.io/anon/pen/zrqyJr
我一直在尝试下拉菜单。现在我的菜单看起来和我想要的一模一样,但是我的下拉列表显示在屏幕的左侧,而不是直接在其父级下方。
示例:
.nav {
background-color: rgba(0, 0, 0, .8);
height: 56px;
line-height: 56px;
width: 100%;
position: fixed;
top: 0;
z-index: 1000;
}
ul {
text-align: center;
margin: 0;
padding: 0;
transition: .2s ease-in-out;
}
ul li {
display: inline;
transition: .2s ease-in-out;
}
ul li a {
background-color: red;
display: inline-block;
padding: 0 16px;
}
ul li ul {
text-align: left;
opacity: 0;
position: absolute;
visibility: hidden;
}
ul li:hover ul {
opacity: 1;
visibility: visible;
}
ul li ul li {
color: rgba(0, 0, 0, .8);
display: block;
}
<div class="nav">
<ul>
<li><a href="">Home</a>
</li>
<li><a href="">Page1</a>
<ul>
<li><a href="">Page 1.1</a>
</li>
<li><a href="">Page 1.2</a>
</li>
<li><a href="">Page 1.3</a>
</li>
<li><a href="">Page 1.4</a>
</li>
</ul>
</li>
<li><a href="">Page2</a>
<ul>
<li><a href="">Page 2.1</a>
</li>
<li><a href="">Page 2.2</a>
</li>
</ul>
</li>
<li><a href="">About</a>
</li>
</ul>
</div>
悬停时,ul li ul
应该在 ul li
下可见,但 ul li ul
显示在我的屏幕左侧。我已经为所有元素尝试了不同的位置,但我无法弄清楚。
预期结果:
只需将此添加到您的 CSS:
ul li {
position: relative;
}
absolute
定位元素的父元素必须具有 position
值而不是 static
(这是默认值,即使它不包含在 CSS)
编辑:此父元素必须是块元素(您的 <li>
当前是内联元素),因此您还必须添加:
ul li {
position: relative;
display: inline-block;
}
另请参阅更新的代码笔:http://codepen.io/anon/pen/zrqyJr