首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使绝对定位div扩展父div高度

使绝对定位div扩展父div高度
EN

Stack Overflow用户
提问于 2012-08-22 18:04:42
回答 9查看 341.2K关注 0票数 243

正如你在下面的CSS中看到的,我希望child2定位在child1之前。这是因为我目前正在开发的网站也应该在移动设备上工作,在移动设备上,child2应该在底部,因为它包含了我想要的在移动设备内容下面的导航。-为什么不是2个母版页?这是在整个divs中仅有的2个重新定位的页面,所以2个母版页对于这个微小的更改来说是多余的。

HTML:

代码语言:javascript
复制
<div id="parent">
    <div class="child1"></div>
    <div class="child2"></div>
</div>

CSS:

代码语言:javascript
复制
parent { position: relative; width: 100%; }
child1 { width: auto; margin-left: 160px; }
child2 { width: 145px; position: absolute; top: 0px; bottom: 0px; }

child2具有动态高度,因为不同的子站点可以有或多或少的导航项目。

我知道绝对定位的元素会从流中移除,因此会被其他元素忽略。

我尝试在父div上设置overflow:hidden;,但没有帮助,clearfix也是如此。

我最后的选择是使用JavaScript来相应地重新定位这两个divs,但现在我将尝试看看是否存在一种非JavaScript的方法来实现这一点。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2012-08-22 18:20:03

您自己回答了这个问题:“我知道绝对定位的元素会从流中删除,因此会被其他元素忽略。”所以你不能根据一个绝对定位的元素来设置父元素的高度。

您可以使用固定高度,也可以使用JS。

票数 173
EN

Stack Overflow用户

发布于 2015-11-19 03:09:07

有一个非常简单的方法来解决这个问题。

您只需在相对div中复制child1和child2的内容,并在父div中使用display:none。说child1_1和child2_2。把child2_2放在上面,把child1_1放在下面。

当你的jquery (或其他什么)调用绝对div时,只需用display:block和visibility:hidden设置相应的相对div (child1_1或child2_2)即可。相对子对象仍然不可见,但会使父对象的div更高。

票数 12
EN

Stack Overflow用户

发布于 2013-07-03 00:16:06

我也遇到过类似的问题。为了解决这个问题(而不是使用body、document或window来计算iframe的高度),我创建了一个包装整个页面内容的div (例如,一个带有id=“页面”的div ),然后我使用它的高度。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12070759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档