我创建了一个只有一个级别的css悬停菜单。
HTML
<div id="menu">
<ul>
<li id="item1">item1
<div id="content1"> </div>
</li>
<li id="item2">item2
<div id="content2"> </div>
</li>
<li id="item3">item3
<div id="content3"> </div>
</li>
</ul>
</div>
CSS
html, body {
margin: 0;
height: 100%;
width: 100%;
}
#menu {
width: 0%;
padding-left: 16px;
height: 100%;
background-color: red;
}
#menu:hover {
width: 20%;
}
#content1, #content2, #content3 {
width: 300%;
height: 1000%;
margin-left: 100%;
background-color: green;
visibility: hidden;
left:16px;
}
#item1:hover #content1, #item2:hover #content2, #item3:hover #content3 {
visibility: visible;
}
ul {
list-style: none;
padding: 0;
margin: 0;
height: 100%;
width: 100%;
}
#item1, #item2, #item3 {
width: 100%;
height: 10%;
display:none;
}
#menu:hover #item1, #menu:hover #item2, #menu:hover #item3 {
display:block;
}
菜单最初是隐藏的,但是当您将鼠标悬停在菜单上时会显示。当您将鼠标悬停在菜单项上时,将显示内容框。我的问题是:我希望所有的内容框(绿色背景)显示在相同的位置(顶部:0相对于正文;左边:/ 宽度#menu /)而不是相对于他们父母(#item1,2,3)。所有元素都应保持动态宽度和高度。
这可以用css吗?如果不能,我可以使用jquery或js吗?
干杯!
答案 0 :(得分:0)
我使用position:absolute
来解决您的问题。绝对定位的项目将其参考点计算为具有position:relative
样式的最近父项。我更新了你的小提琴,你可以看到我的意思:http://jsfiddle.net/6Bv6C/13/