javascript - 为什么这个 DIV 渲染没有维度?

标签 javascript html css

http://clifgriffin.com/blockade2/

好的,我有一个用作菜单链接列表的无序列表。在每个 li 中都有一个设置为绝对定位的 div,bottom: 0。想法是将鼠标悬停在 li 中的链接上,jQuery 会设置高度动画以显示隐藏的菜单 div。

这是一个简单的概念,但我显然很困惑。

我遇到的问题是,当我将包含下拉菜单的 div 放入 li 时,它不会占用任何尺寸(根据 Firefox 和 Chrome 的计算样式信息)。如果我将它放在页面上的其他任何位置,它会完美呈现。你可以从链接中看到我的意思。顶部的灰色菜单应该在 li 中呈现,但实际上没有。

<div class="ram">
    <div class="gray_middle">
            <ul>
                    <li><a href="">Guest Services</a></li> 
                    <li><a href="">Concierge / Local Attractions</a></li>
                    <li><a href="">East Restaurant</a></li>
                    <li><a href="">Aquarium Lounge</a></li>
                    <li><a href="">Health Club</a></li>
                    <li><a href="">Sandcampers Program</a></li>
                    <li><a href="">Treasure Chest Gift Shop</a></li>
            </ul>
    </div>
    <div class="gray_bottom">
            <img src="images/top_menu_slidedown_gray_bottom.png" />
    </div>

有一些 javascript 应该找到菜单 div 的高度并将包含 li 的 id 设置为等于高度,以便以后可以引用它。没关系...关键是,当div在li中时,它的计算高度为0。当它在外面时,它是正确的。

有什么想法吗?

这让我非常疯狂。对于如此简单的事情,我从来没有遇到过这么多问题。

提前致谢, 悬崖

附言我在目的地添加了一些 HTML 注释,以便您能更好地理解我的意思。

最佳答案

绝对定位元素位于容器的“外部”,无法真正确定其大小。

相对定位的元素会影响容器大小(和内容流),但随后它们会移动到其他地方。

此外,对于绝对定位和相对定位的元素,您应该始终给出明确的 X,Y 位置。这避免了一些渲染差异,跨浏览器。

无论如何,我做了以下 CSS 更改,该子菜单似乎在 FF 3.6.4 上呈现正常:

  1. <li id="49">添加:height: 230px; overflow: hidden; .

  2. div.subMenu添加:top: 17px;并删除:bottom:0; .

  3. gray_middle添加:height:160px; top:0;并删除:padding-top:20px; .

关于javascript - 为什么这个 DIV 渲染没有维度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3115697/

相关文章:

javascript - 带有强制转换的 Javascript 中的虚假值

javascript - Kendo 网格聚合仅适用于当前页面

html - iPhone 上 Unicode 复选标记 2714 的颜色没有改变

javascript - 即使在任何新的 div 附加到其父级之后,仍将 div 保留为其父级的最后一个子级

javascript - Canvas Spark 线

javascript - 为什么 innerTEXT 不适用于节点?

javascript - d3 树 - parent 有相同的 child

html - 设计具有 3D 效果的 table

jquery - 在与特定类链接后添加 HTML 内容

javascript - 如何随机翻转div