我有一堆div,一个接一个,每个都有一个图像。当我将min-height
设置为高于图像高度的值时,一切正常:
但是,如果我将图像设置为50px而图像为100 + px,则图像类似于"级联"
如何强制div至少与其中的图像一样高?
CSS
body {
background: #cccccc;
margin: 0px;
}
a {
text-decoration: none;
color: #333333;
}
a:hover {
text-decoration: underline;
}
.reply {
min-height: 50px;
padding: 10px;
background-color: #eeeeee;
font-size: 14px;
margin: 10px;
}
.post {
padding-top: 10px;
/*background-color: #ff0000;*/
}
.postimage {
float: left;
padding-right: 10px;
}
.postcomment {
}
HTML
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="main.css" />
</head>
<body>
<div class="reply">
One
<div class="post">
<img class="postimage" src="http://i1.minus.com/jfdkd7lABbSp8.png" />
</div>
</div>
<div class="reply">
Two
<div class="post">
<img class="postimage" src="http://i1.minus.com/jfdkd7lABbSp8.png" />
</div>
</div>
<div class="reply">
Three
<div class="post">
<img class="postimage" src="http://i1.minus.com/jfdkd7lABbSp8.png" />
</div>
</div>
<div class="reply">
Four
<div class="post">
<img class="postimage" src="http://i1.minus.com/jfdkd7lABbSp8.png" />
</div>
</div>
</body>
</html>
答案 0 :(得分:3)
将clear: left
添加到您的div。
看到了吗?
.postimage {
float: left;
padding-right: 10px;
}
浮动div的内容时,div不会垂直拉伸以容纳。
所以,加上这个:
.reply {
min-height: 50px;
padding: 10px;
background-color: #eeeeee;
font-size: 14px;
margin: 10px;
clear: left;
}
将解决问题。
替代解决方案
我倾向于使用的另一个解决方案是使用overflow
hack,而不是清除:
.reply {
min-height: 50px;
padding: 10px;
background-color: #eeeeee;
font-size: 14px;
margin: 10px;
width: 100%;
overflow: hidden;
}
你会希望这会隐藏div下面的图像部分,但它有不同的结果:overflow: hidden
不会隐藏内容,而是使div伸展以包含整个图像。
注意:要使此方法适用于较旧的浏览器,必须指定宽度(请注意我在上面的css中添加了该宽度)。