我正在制作一个小菜单,并且试图弄清楚当孩子被隐藏时如何不让父 div 展开。
在下面的示例中,请注意,当您将鼠标悬停在 MENUS 上时,catItemWrapper
会显示 div。数字 1 和 3 很好,但是当您将鼠标悬停在 MENU TWO 上时,它会展开顶部 div,因为其中一个菜单项有更多文本。
我试图弄清楚如何不让catWrapper
div 与 div 一起扩展catItemWrapper
。
我不做什么?
我正在制作一个小菜单,并且试图弄清楚当孩子被隐藏时如何不让父 div 展开。
在下面的示例中,请注意,当您将鼠标悬停在 MENUS 上时,catItemWrapper
会显示 div。数字 1 和 3 很好,但是当您将鼠标悬停在 MENU TWO 上时,它会展开顶部 div,因为其中一个菜单项有更多文本。
我试图弄清楚如何不让catWrapper
div 与 div 一起扩展catItemWrapper
。
我不做什么?
允许绝对定位拉伸父元素的元素会将其从页面流中移除,从而阻止它调整父元素的大小。
将 catitemwrapper 设置为position:absolute;
. 这样做会使 catitem 上的 margin-left 显示出来,所以你应该删除它。
.catItemWrapper { position: absolute; }
position:relative
通过添加并添加新规则来更改您的 .catWrapper 规则catItemWrapper
.catWrapper {
float: left;
margin: 5px 10px 5px 10px;
position:relative;
}
.catItemWrapper{
position:absolute;
}
你想给你的子项目包装器 ( .catItemWrapper'
) 一个绝对定位。你可以在http://jsfiddle.net/vyyNW/2/看到它。这也可以通过纯 CSS 轻松完成。尝试使用类似下面的代码来获得更简单、更清晰的代码。
HTML:
<ul>
<li>
1
<ul>
<li>1.1</li>
<li>1.2</li>
</ul>
</li>
<li>
2
<ul>
<li>2.1</li>
<li>2.2</li>
</ul>
</li>
<li>
3
<ul>
<li>3.1</li>
<li>3.2</li>
</ul>
</li>
</ul>
和 CSS:
ul, li { list-style: none; margin: 0; padding: 0; }
ul li { display: inline-block; position: relative; width: 100px; }
ul ul { display: none; position: absolute; left: 0; }
ul li:hover ul { display: block; }