我有<div>
,其中有一些<img>
。每个<img>
都在其自己的<div>
内。问题是外部div不会自动获取内容的高度,即使我将其高度设置为auto。同样要显示内部div内联我将它们设置为float: left
。但是,如果我删除浮动,外部div表现正常,并采取内容的高度。但我需要imgs内联。任何人都可以帮助我吗?
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>
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;
}
答案 0 :(得分:61)
See the Demo here 。只需将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;
}
答案 1 :(得分:15)
添加以下内容:
CSS:
.clearer { clear: both; }
HTML:
<div id="gallery">
....
<div class="clearer"></div>
</div>
答案 2 :(得分: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; }
在主容器中调用它:
<div class="clearfix" id="gallery">
...
</div>
答案 3 :(得分:1)
这样只需在#gallery
overflow:hidden;
即可
<强> demo 强>
<强> 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;
overflow:hidden;
}
答案 4 :(得分:1)
将此添加到您的css文件中:
.clear{
clear:both;
}
现在,在关闭每个div
之前,添加以下语句:
<div class="clear"></div>
答案 5 :(得分:1)
只需添加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;
}
答案 6 :(得分:1)
一种方法:将.gal-foto
设置为display: inline-block
或者你可以清除#gallery
,添加这些
#gallery:after{
content: " ";
display: table;
clear: both;
}