我放了一个非常基本的悬停示例小提琴。什么是定位CSS悬停菜单的正确方法?
我很好奇,定位菜单的最好办法是什么。我该怎么做才能让第一个菜单正好落在第一个按钮的下面,第二个菜单正好落在第二个按钮的正下方?我不擅长CSS定位和类似的东西,所以任何帮助表示赞赏。
我放了一个非常基本的悬停示例小提琴。什么是定位CSS悬停菜单的正确方法?
我很好奇,定位菜单的最好办法是什么。我该怎么做才能让第一个菜单正好落在第一个按钮的下面,第二个菜单正好落在第二个按钮的正下方?我不擅长CSS定位和类似的东西,所以任何帮助表示赞赏。
,最好的办法是使用<ul>
而非目前设置的。
http://jsfiddle.net/elclanrs/fHmvs/1/
<ul class="menu">
<li>
<a href="#">One</a>
<ul>
<li><a href="#">One</a></li>
<li><a href="#">Two</a></li>
</ul>
</li>
<li>
<a href="#">Two</a>
<ul>
<li><a href="#">One</a></li>
<li><a href="#">Two</a></li>
</ul>
</li>
</ul>
CSS:
.menu li {
float: left;
position: relative;
}
.menu ul {
position: absolute;
display: none;
background: red;
}
.menu ul li { clear: both; }
.menu a {
display: block;
padding: .5em;
margin: .1em;
}
JQ:
$('.menu li').hover(function() {
$(this).children('ul').stop(1, 1).slideToggle();
});
使用样式无序列表,而不是DIV。使用display:block
将大部分样式贴在A标签上。
<div class="menu">
<ul>
<li><a href="...">Menu Item</a>
<ul>
<li><a href="...">Sub Item</a></li>
<li><a href="...">Sub Item</a></li>
</ul>
</li>
<li><a href="...">Menu Item</a></li>
</ul>
</div>
CSS:
.menu ul, .menu li {
padding:0;
margin:0;
list-style-type:none
}
.menu li {
display:inline-block;
position:relative;
}
.menu a {
font-family:arial;
text-decoration:none;
display:block;
background-color:#c0c0c0;
padding:3px;
color:#000000
}
/* level two */
ul ul {
position:absolute;
display:none;
}
ul ul a {
background-color:#d0d0d0;
margin-top:3px;
}
建立你的菜单为嵌套表。它在语义上更加适合,并且是解决定位问题的起点。 – bfavaretto 2012-03-14 21:08:38
看看万亿预制下拉菜单中的任何一个。看看他们的结构是怎样的?尝试复制它,然后尝试使其成为动画。 – Blender 2012-03-14 21:09:12
@Blender我很积极地做到这一点,但是堆垛机有一个非常简单的例子的诀窍,它总是为我打开灯泡,所以我想我会看到是否有人在此期间有一个简单的答案。 – Chev 2012-03-14 21:12:03