CSS container doesn't stretch to accommodate floats

非 Y 不嫁゛ 提交于 2019-12-19 05:05:10

问题


<html>

<head>

<style type="text/css">

  .container {
      width: 900px;
      border: 2px solid #333333;
      padding-top: 30px;
      padding-bottom: 30px;
  }

  .container_left {
      border: 2px solid #FF00FF;
      width: 650px;
      float: left;
  }

  .container_right {
      border: 2px solid #0000FF;
      width: 225px;
      float: right;
  }

</style>
</head>

<body>

    <div class="container">
        <div class="container_left">
        <div>LEFT CONTAINER</div>
        <div>LEFT CONTAINER</div>
        <div>LEFT CONTAINER</div>
        </div>

        <div class="container_right">
        <div>RIGHT CONTAINER</div>
        <div>RIGHT CONTAINER</div>
        <div>RIGHT CONTAINER</div>
        </div>
    </div>

</body>
</html>

The result is:

I want a result like this:


回答1:


Add overflow: hidden; to the .container selector. This will force the container to acknowledge that it has children.




回答2:


Give the container a

overflow: auto

or

overflow: hidden

see this page on quirksmode.org for details on the issue.




回答3:


A quick fix is to add overflow: hidden to your .container.

This is not the best solution per say, merely the quickest fix. Your best solution would be to implement and apply clearfix as it doesn't have issues with printing due to overflow.

In the event you use overflow: auto or overflow: hidden and a user attempts to print the page, content that does not fit on the printed page will be clipped because:

  1. scroll-bars do not print
  2. hidden content does not display



回答4:


One option is to put in a <div style="clear: both;"></div> just before closing the container div.

<div class="container">

    <div class="container_left">
    <div>LEFT CONTAINER</div>
    <div>LEFT CONTAINER</div>
    <div>LEFT CONTAINER</div>
    </div>

    <div class="container_right">
    <div>RIGHT CONTAINER</div>
    <div>RIGHT CONTAINER</div>
    <div>RIGHT CONTAINER</div>
    </div>

    <div style="clear: both;"></div>

</div>



回答5:


to the outer div you might want to use the clearfix css, explained here: http://www.positioniseverything.net/easyclearing.html




回答6:


.clear:after {
    content: ".";
    display: block;
    height: 0;
    clear: both;
    visibility: hidden;
}
* html .clear { height: 1%; }
*:first-child+html .clear { min-height: 1px; }

Apply .clear to your parent element.




回答7:


This might be of help "Clearing a float container"



来源:https://stackoverflow.com/questions/2021283/css-container-doesnt-stretch-to-accommodate-floats

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!