这段代码有什么问题?
当我添加的div后面的背景消失float: left,以#text和#text2.但是当我删除它时float: left,一切看起来都很好.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<style type="text/css">
#first{
width: 200px;
background-color: #345752;
}
#left_b{
background:transparent url('img/left.png');
background-position: left top;
background-repeat: repeat-y;
min-height: 30px;
}
#right_b{
background:transparent url('img/right.png');
background-position: right top;
background-repeat: repeat-y;
}
#text{
float: left;
width: 50px;
height: 30px;
}
#text2{
float: left;
width: 70px;
height: 30px;
}
</style>
</head>
<body>
<div id = "first">
<div id = "left_b">
<div id = "right_b">
<div id = "text">text 1</div>
<div id = "text2">text 2</div>
</div>
</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
容器div #right_b正在折叠,因为它的子项是浮动的.您可以使用"Clear-Fix"技术解决此问题.您可能需要查看以下Stack Overflow帖子以获取一些解决方案:
一种流行的解决方案是添加overflow: hidden到您的容器div #right_b:
#right_b {
background:transparent url('img/right.png');
background-position: right top;
background-repeat: repeat-y;
overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)
另一个常见的是<div style="clear: both;"> </div>在关闭容器div之前添加一个:
<div id="first">
<div id="left_b">
<div id="right_b">
<div id="text">text 1</div>
<div id="text2">text 2</div>
<div style="clear: both;"> </div>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)