所以当我将鼠标悬停在我的用户名div上时会出现一个下拉框。但是这个框并不总是像宽度可变的用户名div一样宽,所以它看起来很奇怪。我可以通过将下拉框的位置更改为relative
来解决此问题。但是当框出现时,整个页面向下移动。有没有办法将位置保持为absolute
但仍包含在包装器中?这里是要展示的jsFiddle。谢谢你的阅读。
<div id = "wrapper" style = "border:1px solid red;">
<div id = "username">hover over me</div>
<div id = "accBox">
<ul>
<li>sign out</li>
<li>my profile</li>
<li>new account</li>
<ul>
</div>
</div>
#username{
color:grey;
cursor:default;
}
#accBox{
border:1px solid grey;
display:none;
position:absolute;
background-color:#fff;
}
#accBox ul{
font-family:Arial, Helvetica, sans-serif;
padding:0px;
margin:0px;
}
#accBox li{
list-style:none;
margin: 0px;
padding:6px;
overflow:hidden;
font-size:13px;
cursor:pointer;
text-align:left;
}
#accBox li:hover{
background-color: #DAD6D6;
}
答案 0 :(得分:2)
答案 1 :(得分:1)
首先,您需要在父position: relative
上设置div
,以便它包含您的absolute
下拉列表:
<div style = "border:1px solid red;position: relative;">
接下来,您可以在下拉列表中设置left: 0; right: 0
,使其占据宽度:
#accBox{
border:1px solid grey;
display:none;
position:absolute;
background-color:#fff;
left: 0;
right: 0;
}