【发布时间】:2011-10-25 10:28:37
【问题描述】:
我正在尝试完成一些非典型的 div 行为,所以我不确定这是否可行。
我有三个水平相邻的 div:A、B 和 C(从左到右)。当浏览器调整大小时,或者用户的浏览器窗口太小,我希望 div B 低于 div A,而不是 div C 低于 div A 的典型行为。
此代码演示了典型行为:
<!DOCTYPE HTML>
<html>
<head>
<title>
Title
</title>
<style type="text/css">
.box {
display: inline-block;
margin: 4px;
background: #ccc;
width: 200px;
}
</style>
</head>
<body>
<div class="box" style="height: 200px;">div a</div>
<div class="box" style="height: 300px;">div b</div>
<div class="box" style="height: 500px;">div c</div>
</body>
</html>
当我将 div A 和 B 放在一个表格单元格中,将 div C 放在另一个表格单元格中时,我可以让 div B 低于 div A。唯一的问题是包含两个 div 的左侧表格单元格确实不会折叠到两个 div 的宽度,因此 div A 和 B 与 div C 之间仍然存在间隙。这段代码显示了这种行为:
<!DOCTYPE HTML>
<html>
<head>
<title>
Title
</title>
<style type="text/css">
.box {
display: inline-block;
margin: 4px;
background: #ccc;
width: 200px;
}
</style>
</head>
<body>
<div style="display: table;">
<div style="display: table-row;">
<div style="display: table-cell;">
<div class="box" style="height: 200px;">div a</div>
<div class="box" style="height: 300px;">div b</div>
</div>
<div style="display: table-cell;">
<div class="box" style="height: 500px;">div c</div>
</div>
</div>
</div>
</body>
</html>
有没有办法让左边的表格单元格占用两个堆叠 div 的宽度,或者可能有其他方法来完成这个,它根本不涉及表格。基本上,一旦B低于A,我只需要找到一种方法让div C坐在A和B旁边。我试图找到一个css解决方案并避免使用javascript解决方案,例如计算A的宽度和 B 并将其与左侧表格单元格的宽度进行比较。
编辑 在上面的示例中,宽度为 200px,但在实际实现中,200px 是可变宽度,具体取决于用户提交的内容。我正在寻找一种可以处理可变宽度列的解决方案。
【问题讨论】:
标签: css html css-float word-wrap