将父<div>扩展到其子级的高度

Ste*_*orn 295 html css

我有一个与此类似的页面结构:

<body>
  <div id="parent">
    <div id="childRightCol">
      /*Content*/
    </div>
    <div id="childLeftCol">
      /*Content*/
    </div>
  </div>
</body>
Run Code Online (Sandbox Code Playgroud)

当内心的增加时,我希望父母div能够扩大.heightdivheight

编辑:
一个问题是,如果width子内容的内容扩展width到浏览器窗口之外,我当前的CSS会在父项上放置一个水平滚动条div.我希望滚动条位于页面级别.目前我的父div设置为overflow: auto;

你能帮我解决这个问题吗?

Dr *_*ack 516

为父母试试这个,它对我有用.

overflow:auto; 
Run Code Online (Sandbox Code Playgroud)

更新:

另一个有效的解决方案:

家长:

display: table;
Run Code Online (Sandbox Code Playgroud)

孩子:

display: table-row;
Run Code Online (Sandbox Code Playgroud)

  • `overflow:auto`表示浏览器应决定应用哪个值.什么真的_does_技巧是**溢出:覆盖`**. (63认同)
  • 另一个答案是http://stackoverflow.com/questions/450903/make-css-div-width-equal-to-contents,它建议设置`display:inline-block`.这对我很有用. (17认同)
  • Waaaait.放松.有一件事是声称在Webkit之外不支持`overlay`.另一个完全不同的是它根本不存在.请[RTFM首先](http://help.dottoro.com/lcrmdnar.php).;) (15认同)
  • @jmendeth不存在名为"overlay"的溢出值.如果子div被浮动则工作正在声明`overflow:hidden`. (14认同)
  • 如果它仅在Webkit上,那么它只有20%存在:P为该链接干杯,之前从未见过这个网站.它是否得到很好的维护和更新?你发誓吗? (5认同)
  • `overflow`对我不起作用 (4认同)
  • 显示:table完美地为我工作. (2认同)

ben*_*wey 26

添加一个clear:both.假设您的列是浮动的.根据您的身高指定父级的方式,您可能需要溢出:auto;

<body>
<div id="parent">
    <div id="childRightCol">
    <div>
    <div id="childLeftCol">
    <div>
    <div id="clear" style="clear:both;"></div>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)

  • 这也假设父级没有指定高度. (3认同)

noi*_*isy 15

正如Jens在评论中所说

另一个答案是如何使div不大于其内容?...它建议设置display:inline-block.这对我很有用. - Jens Jun 2于5:41

在所有浏览器中,这对我来说效果更好.


Jaa*_*cra 7

使用 min-height 代替设置 height 属性。

  • 你是冠军,这解决了我在 IE 中遇到的问题:))) (3认同)

小智 5

添加

clear:both; 
Run Code Online (Sandbox Code Playgroud)

到父div的css中,或者在父div的底部添加一个执行clear:both;的div

这是正确的答案,因为overflow:auto; 可能适用于简单的网页布局,但会弄乱开始使用负边距等的元素


小智 5

尝试付出max-content父母的身高。

.parent{
   height: max-content;
}
Run Code Online (Sandbox Code Playgroud)

https://jsfiddle.net/FreeS/so4L83wu/5/