【发布时间】:2012-02-23 13:54:38
【问题描述】:
我在一个 div 元素中有两个 div 元素。这两个 div 元素都是 50% 宽,另一个浮动到左边,另一个浮动到右边。右侧浮动 div 包含一张高图片(不同高度),左侧浮动 div 包含文本。在左边的 div 中,这些文本被分成三个不同大小的行,整个左边的 div 应该和右边的 div 一样高。我怎么能只使用 CSS 来做到这一点?这是我的示例代码:
<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
body {
margin: 0;
}
.container {
width: 100%;
height: 100%;
overflow: auto;
background: #FF0;
}
.left {
float: left;
width: 50%;
background: #F0F;
}
.left .first {
height: 20%;
}
.left .second {
height: 50%;
}
.left .third {
height: 30%;
}
.right {
float: right;
width: 50%;
}
.right img {
display: block;
max-width: 100%;
}
p {
margin: 0;
}
</style>
</head>
<body>
<div class="container">
<div class="left">
<div class="first">
<p>First</p>
</div>
<div class="second">
<p>Second</p>
</div>
<div class="third">
<p>Third</p>
</div>
</div>
<div class="right">
<img src="http://upload.wikimedia.org/wikipedia/commons/3/3a/Centara_Grand_Hotel.jpg" alt="" />
</div>
</div>
</body>
</html>
【问题讨论】:
-
我真的对你的问题很感兴趣,这是一个带有你的代码的 jsFiddle (jsfiddle.net/9DyDW/5),我正在玩它,但我不知道发生了什么。问题实际上是 .left 类中的 height:100% 规则,如果将其更改为像素,它会自行解决。但是为什么 100% 不起作用让我感到震惊
-
问题是如果包含块也有一个以 % 为单位的高度,则您不能以 % 为单位指定高度,请参阅the W3 spec on this(特别是“
”位)。如果您在原始代码中设置 .container { height: 400px; },您可以看到这一点:这会使紫色框获得正确的高度。 -
我担心我不能只用百分比来完成这个。我想我必须使用 JS 来捕捉图像的高度并为 .left 容器提供相同的高度。感谢您的帮助!
标签: css html css-float row-height