我不是CSS专家,特别是在定位方面,但我希望这个问题能够很容易地解决。
以下是我简化后的HTML:
<body>
<div style="height:100%;width:100%;">
<div id="map" style="bottom:250px;height:100%;overflow:hidden;position:absolute;width:100%;">
<!-- The controls div does not render correctly. -->
<div id="controls" style="left:10px;position:absolute;top:10px;">
</div>
<!-- The legend and logos divs do render correctly. -->
<div id="legend" style="bottom:45px;left:10px;position:absolute;">
</div>
<div id="logos" style="bottom:5px;left:10px;position:absolute;">
</div>
</div>
<div id="search" style="bottom:0;height:250px;position:absolute;width:100%;">
</div>
</div>
</body>
“控制”div没有正确渲染。实际上,它根本不显示。如果我删除“top:10px;”样式,并将其替换为“bottom:400px;”,则会正确呈现。然而,这不是我想要的,因为如果用户调整浏览器窗口大小,“地图”div的高度会被调整。我也不想使用JavaScript来定位div。
“图例”和“标志”div都正确呈现。
我在Firefox中进行测试。
#controls
div 可能已经被渲染,但是您的父级元素上有overflow:hidden
,所以它被绘制在父级元素之外,因此不会显示。此外,如果父级 div#map
在页面顶部向上延伸了250px
(如果您的 CSS 被正确渲染),那么控件也将超出屏幕。 - sholsingerbottom:250px
并且将div#map
上的position:relative
改为相对定位,那么内部的 div 应该就会在你想要的位置了。 - sholsinger