Div即使有内容也没有高度

Ben*_*abo 35 html css

我有<div>一些其中有一些<img>.每个人<img>都在自己的内心<div>.问题是外部div不会自动获取内容的高度,即使我将其高度设置为auto.同时为了显示内部div内联我将它们设置为float: left.但是,如果我删除浮动,外部div表现正常,并采取内容的高度.但我需要imgs内联.谁能帮我?

的jsfiddle

HTML:

<div id="gallery">
    <div class="gal-foto">
        <img src="http://farm3.staticflickr.com/2819/10183644713_c1f49eb81f_b.jpg" class="gal-img">
    </div>
    <div class="gal-foto">
        <img src="http://farm4.staticflickr.com/3694/10183642403_0c26d59769_b.jpg" class="gal-img">
    </div>
    <div class="gal-foto">
        <img src="http://farm4.staticflickr.com/3764/10183532675_0ce4a0e877_b.jpg" class="gal-img">
    </div>
    <div class="gal-foto">
        <img src="http://farm6.staticflickr.com/5331/10183598286_9ab37e273c_b.jpg" class="gal-img">
    </div>
    <div class="gal-foto">
        <img src="http://farm6.staticflickr.com/5334/10183535585_04b18fa7da_b.jpg" class="gal-img">
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

#gallery {
    border: 1px solid;
    border-radius: 10px 10px 10px 10px;
    box-shadow: 0 0 15px rgba(50, 50, 50, 0.7) inset;
    height: auto;
    margin-top: 20px;
    padding: 15px;
}
.gal-foto {
    float: left;
    margin: 3px;
    position: relative;
}
.gal-img {
    display: block;
    max-height: 150px;
    max-width: 150px;
}
Run Code Online (Sandbox Code Playgroud)

Vik*_*dke 62

在这里查看演示.只需添加overflow: auto;到主容器中即可.

#gallery {
    border: 1px solid;
    border-radius: 10px 10px 10px 10px;
    box-shadow: 0 0 15px rgba(50, 50, 50, 0.7) inset;
    height: auto;
    margin-top: 20px;
    padding: 15px;
    overflow: auto;
}
Run Code Online (Sandbox Code Playgroud)

  • 作为进一步的改进,如果它只是应该调整以适应内容的高度,你可以专门设置`overflow-y:auto`,而不仅仅是`overflow`.这样,如果您有网格系统中的内容,或者您​​不希望发生水平溢出的其他方案,您可以使用`overflow-x`执行不同的操作. (5认同)
  • 但为什么???? (3认同)
  • `overflow: auto` 对我有用,而 `clear: Both` 没有。 (2认同)

Ben*_*kay 15

http://jsfiddle.net/WVL9a/

添加以下内容:

CSS:

.clearer { clear: both; }
Run Code Online (Sandbox Code Playgroud)

HTML:

<div id="gallery">
    ....
    <div class="clearer"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

  • 我从来没有理解明确修复问题,请你解释然后我会投票:)谢谢 (9认同)

Tep*_*orn 5

将clearfix类添加到主容器中:

.clearfix:before,
.clearfix:after {
   content: '\0020';
   display: block;
   overflow: hidden;
   visibility: hidden;
   width: 0;
   height: 0;
}
.clearfix:after { clear: both; }
.clearfix { zoom: 1; }
Run Code Online (Sandbox Code Playgroud)

在主容器中调用它:

<div class="clearfix" id="gallery">
...
</div>
Run Code Online (Sandbox Code Playgroud)