我的下拉菜单会向下推其他所有内容
My dropdown menu pushes down everything else
我希望我的子菜单在其他所有菜单上向下滑动,而不是全部向下推。我可以用position:fixed;
实现这一点,但随后子菜单的大小发生了变化。如何解决此问题并保持子菜单的宽度?
Fiddle
HTML:
<div id="nav">
<div id="meny">
<ul id="menu">
<li class="dropmenu"><a href="#">Abcde</a>
<ul class="submenu">
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
</ul>
</li>
<li class="dropmenu"><a href="#">Fghijklm</a>
<ul class="submenu">
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
</ul>
</li>
<li class="dropmenu"><a href="#">Shop</a>
<ul class="submenu">
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="content">
<p>Texting texting</p>
</div>
CSS:
#nav{
width: 956px;
margin: 0 auto;
}
#meny{
display: table;
width: 100%;
border-collapse: collapse;
border: none;
}
#menu{
display: table-row;
list-style: none;
font-family: Verdana, Arial, sans-serif;
font-size: 0.9em;
}
.dropmenu{
display: table-cell;
}
.dropmenu a {
display: block;
text-decoration: none;
text-align: center;
background-color: #ff5b2e;
color: #303030;
}
.submenu{
display: none;
list-style: none;
background: #ff5b2e;
padding: 0;
width: auto;
}
.submenu li {
width: 100%;
display: block;
}
.submenu li a {
width: 100%;
background: #ff5b2e;
color: #303030;
}
JavaScript:
$(document).ready(function() {
$('.dropmenu').hover(function() {
$(this).find('.submenu').stop().slideToggle();
});
});
要防止内容被推底,必须使用position: absolute;
但这会导致下拉菜单宽度出现问题,因为您使用的是表/表单元格结构。没有简单的方法可以用css调整下拉菜单的宽度,所以你可以用JQuery来计算它。
$(document).ready(function() {
$('.dropmenu').hover(function() {
$(this).find('.submenu').stop().slideToggle().css('width', $(this).width());
});
});
Fiddle
保持布局的快速修复程序。将以下css添加到nav
类:
height: 20px;
position: relative;
z-index: 2;
JSFiddle
您应该将子菜单定位为absolute
相关文章:
- 基于其他下拉菜单选择隐藏/显示下拉菜单
- HTML内容下推到固定背景图像下方
- Z-Index 和定位:项目在使用“Particleground”Jquery 插件时不断向下推
- 如何让 Bootstrap 3 在下拉点击时向下推送页面内容
- 如何使用其他下拉列表中未选择的选项填充下拉列表
- 单击下拉菜单隐藏其他下拉菜单
- 在选择其他下拉列表html和javascript araray的基础上,填充3个连续的下拉列表
- 删除其他下拉菜单中的选定项目
- 如何在jquery中使用其他下拉菜单来设置下拉菜单的文本和值
- 如何在从所有下拉列表中选择一个时禁用其他下拉列表
- JQuery文本编辑器-在工具栏中添加其他下拉列表
- 如何根据其他下拉列表中的选择筛选下拉结果
- 在Firefox和IE中,向按钮添加填充可以向下推其他按钮
- 文本区域,在您键入时展开并向下推送其下方的内容
- jQuery 根据其他下拉列表的选定值禁用其他下拉列表值
- 向其他用户推送通知
- jQuery根据其他下拉列表的值选择下拉值
- 我的下拉菜单会向下推其他所有内容
- 防止jQuery滑下菜单下推其他列中的元素
- Javascript -添加顶部固定条,并将所有其他元素向下推