html - 如何让父 div 成为其子项的高度?

标签 html css menu

这似乎是一个非常愚蠢的问题,但我想不通。

我已经将 UL 样式化为水平菜单,但父 div 不会调整到子元素的高度。这是一个 jsFiddle:http://jsfiddle.net/STSjm/202/

HTML

<div class="menu">
<ul>
    <li><a href="#">Menu 1</a></li>
    <li><a href="#">Menu 2</a></li>
    <li><a href="#">Menu 3</a></li>
</ul>
<div class="clear"></div>

还有 CSS:

.menu {
    background: blue;
}

.menu li{
    float: left;
    background: green;
}

.menu li a{
    background: red;
    padding: 25px 25px 25px 25px;
}

.menu li a:hover{
    background: orange;
}

.clear {
    clear: both;
}

最佳答案

这是发生了什么:

你的 <a>元素有填充,但它们是 display:inline默认情况下,它会在元素 之外添加填充,但实际上不会为其添加宽度/高度,这就是菜单未展开的原因。

要解决此问题,请设置 display:block到 anchor :

http://jsfiddle.net/STSjm/216/

此外,您不需要“清晰”的 div,添加此 CSS 应该可以解决问题:

.menu {
    float:left;
    width:100%;
}

http://jsfiddle.net/STSjm/218/

还有一些仅使用 CSS 的“clearfix”技巧可以解决这个问题,而无需添加额外的不必要的 HTML 标记。

关于html - 如何让父 div 成为其子项的高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8955337/

相关文章:

javascript - 固定标题 - 向下滚动时停止动画,停止滚动时继续

php - 扫描远程站点的 DOM

javascript - 使用 Angular 和 Bootstrap-UI 构建的 UI-Grid 在以某种方式调整窗口大小之前不会自行调整大小

android - 将一项对齐到 ActionBar 的左侧

javascript - 如何管理 Jquery 切换淡入淡出动画的排队?

html - 带空格的页面布局

javascript - JQuery Datepicker - 垂直居中日期

css - 强制菜单保持在 1 行并强制页面有 1 页没有滚动

javascript - CSS 下拉菜单 onclick

javascript - 弹出下拉项目选择