我有一个固定位置的div(顶部面板),它还包含最右边的设置菜单(目前通过浮动)。
将鼠标悬停在设置图像上时,我想在图像下方显示一个菜单。 我希望菜单与图像一样对齐。
<div id="panel" style="position:fixed">
<panel-entry 1>
<panel-entry 2>
<panel-entry n>
<div id="settings" style="float:right/snapped to the right side>
<img src=settings>
<ul>
<li>setting 1</li>
<li>setting 2</li>
<li>setting n</li>
</ul>
</div>
</div>
任何使用jQuery的想法都非常感激,随意重新安排任何HTML。
答案 0 :(得分:1)
不需要jQuery,只需给你的#panel
宽度:
#panel {
position: fixed;
width: 100%;
}
#settings {
float: right;
}
请参阅DEMO。
答案 1 :(得分:1)
除了您的示例不是HTML ,我无论如何都会纠正概念方法。这样的任务不需要jQuery,这可以完全用CSS完成。
您希望#panel
首先包含一个<ul>
,其中包含<li>
s,这将是您的<panel-entry>
,应将其设为inline-block
。
#settings
应该是其中之一,可能是特殊的class
或id
(我们现在会保留设置)。您可以position: absolute
将此right: 0
改为float
,或者background-image
。不要使用图像元素,而是使用<ul>
。
在此元素中,您将有一个子菜单:即另一个display: none
position:absolute
,right: 0
,top: X
和#panel
,所以X与您的:hover
不重叠。
接下来,您要在li#settings
的{{1}}上显示该元素。
<div id="panel">
<ul>
<li>Panel entry 1</li>
<li>Panel entry 2</li>
<li>Panel entry n</li>
<li id="settings">
<ul>
<li>setting 1</li>
<li>setting 2</li>
<li>setting n</li>
</ul>
</li>
</ul>
</div>
#panel {
position: fixed;
top: 0;
width: 100%;
}
#panel > ul > li {
display: inline-block;
}
#panel > ul > li > ul {
display: none;
position: absolute;
top: {X};
right: 0;
}
li#settings {
background: url({youricon}) no-repeat top center;
position: absolute;
right: 0;
min-width: {youricon-x};
min-height: {youricon-y};
}
li#settings:hover > ul{
display: block;
}