css元素的浮动布局之清除浮动
实现页面布局很重要的一点就是浮动,但是将元素设置浮动之后就脱离的原来的文档流了,这样的话如果想要靠浮动的元素来撑开父元素就没办法做到了,如下所示
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<style type="text/css">
.a{
background:#ff0000 ;
width: 20%;
}
.b{
background: #00ff00;
width: 60%;
}
.c{
background: #0000ff;
width: 20%;
}
.a,.b,.c{
height: 200px;
float: left;
}
.all{
border: 5px dashed black;
}
</style>
<body>
<div class="all">
<div class="a"></div>
<div class="b"></div>
<div class="c"></div>
</div>
</body>
</html>
出来的效果是这样的:
要实现把父元素撑开,有两种办法
1、给父元素添加overflow:auto;
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<style type="text/css">
.a{
background:#ff0000 ;
width: 20%;
}
.b{
background: #00ff00;
width: 60%;
}
.c{
background: #0000ff;
width: 20%;
}
.a,.b,.c{
height: 200px;
float: left;
}
.all{
border: 5px dashed black;
overflow: auto;
}
</style>
<body>
<div class="all">
<div class="a"></div>
<div class="b"></div>
<div class="c"></div>
</div>
</body>
</html>
2、直接设置父元素高度
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<style type="text/css">
.a{
background:#ff0000 ;
width: 20%;
}
.b{
background: #00ff00;
width: 60%;
}
.c{
background: #0000ff;
width: 20%;
}
.a,.b,.c{
height: 200px;
float: left;
}
.all{
border: 5px dashed black;
height:200px;
}
</style>
<body>
<div class="all">
<div class="a"></div>
<div class="b"></div>
<div class="c"></div>
</div>
</body>
</html>
效果都是一样的: