html - position 和 float 在 CSS 下拉菜单中导致无法解释的行为

标签 html css position css-float

我找到了 code for a dropdown here on stackoverflow并正在玩它。

请看下面的jsfiddle -

http://jsfiddle.net/ArF8q/

当我从 -

中删除 position:relative
.menu ul li {
    display: block;
    position: relative;
    float: left;
}

并删除 float:none -

.menu li:hover li {
    float: none;
    font-size: 11px;
}

.menu 我得到 .menu2,它以水平方式显示下拉菜单。

我无法理解为什么。我假设简单地删除 float:none 会使 li 并排出现,但我们也必须删除 position:relative达到那个效果。这是为什么?

最佳答案

第二个ul位于绝对位置并位于第一个 li 内相对定位的元素。这导致 ul不依赖于 body 元素,而是依赖于 li元素。因此它不能长于 li 的宽度。元素,以便此 ul 中的所有内容元素的位置尽可能在 li 的宽度内元素。

因此问题不在二级li元素,但第一级。

您可以使用 >选择器在第一级之间做出区别li和第二级。

关于html - position 和 float 在 CSS 下拉菜单中导致无法解释的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24217476/

相关文章:

css - 将带有背景图像的 div 设置为 100% 高度

html - CSS 拉伸(stretch)或适合背景图像

html - 如何使字体很棒以在实时网站上显示

javascript - jQuery fadeTo() 不会因 appendTo() 完成而褪色

html - 在django中截断html文本

javascript - 在屏幕宽度 860px 下隐藏文本

php - 从 PHP 中的一个波斯字符串中删除一些特殊的 HTML

html - 使标题的图标在右侧 HTML/CSS 上对齐

excel - 通过 .Copy() 创建一个新的 Excel 工作表并将其 move 到最后一个位置

html - 如何定位子容器,使它们恰好位于彼此之上?