我正在尝试使用浮动div做一些事情,我认为这是最简单的,但我似乎完全无法达到我想要的效果。我希望有一个固定宽度浮动div并且它周围的所有div尽可能水平扩展,而不会重叠浮动div。也就是说,在浮动div旁边,它们应该填充它旁边的可用空间,在浮动div下面,它们应该占据容器的整个宽度。
我已经尝试了我能想到的position
,display
,width
和right
属性的所有组合,但没有任何东西能给我我想要的东西。我认为我需要将.fill
div设置为display: inline-block;
,然后使用width
或right
属性管理它们的宽度,但我尝试的任何内容都不会给我可用宽度。
请注意,我事先不知道哪个div将在浮动div旁边,因为所有div的高度都是可变的,因此我无法为.fill
div设置显式宽度。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html version="-//W3C//DTD XHTML 1.1//EN" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:s
chemaLocation="http://www.w3.org/1999/xhtml http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd">
<head>
<title>float test</title>
<style type="text/css">
html, body, div {
margin: 0;
border: 0;
padding: 0;
}
#container {
position: relative;
width: 100%;
overflow: hidden;
}
#right {
width: 20em;
height: 40em;
margin: 0 0 0 1em;
float: right;
background-color: #88f;
opacity: .5;
}
.fill {
height: 3em;
margin: 1em;
background-color: #f88;
opacity: .5;
}
</style>
</head>
<body>
<div id="container">
<div id="right"></div>
<div id="left">
<div class="fill"></div><div class="fill"></div><div class="fill"></div><div class="fill"></div>
<div class="fill"></div><div class="fill"></div><div class="fill"></div><div class="fill"></div>
<div class="fill"></div><div class="fill"></div><div class="fill"></div><div class="fill"></div>
<div class="fill"></div><div class="fill"></div><div class="fill"></div><div class="fill"></div>
</div>
</div>
</body>
</html>
答案 0 :(得分:3)
将overflow: hidden;
添加到.fill