之前学习css过程中遇到css浮动的问题,现在将css清除浮动方法整合如下:
浮动没清除时代码跟效果:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>给盒子设置height清除浮动</title>
<style>
*{
margin: 0;
padding: 0;
}
ul{
list-style: none;
}
/*div不设置高*/
div{
border: 1px solid red;
}
li{
float: left;
width: 80px;
height: 30px;
background: green;
}
</style>
</head>
<body>
<div class="box1">
<ul>
<li>html</li>
<li>css</li>
<li>js</li>
<li>框架</li>
</ul>
</div>
<div class="box2">
<ul>
<li>英语</li>
<li>数学</li>
<li>化学</li>
<li>生物</li>
</ul>
</div>
</body>
</html>
1.下面给div添加高度,清除浮动:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>给盒子设置height清除浮动</title>
<style>
*{
margin: 0;
padding: 0;
}
ul{
list-style: none;
}
div{
/*给div增加高度清除浮动*/
height: 100px;
border: 1px solid red;
}
li{
float: left;
width: 80px;
height: 30px;
background: green;
}
</style>
</head>
<body>
<div class="box1">
<ul>
<li>html</li>
<li>css</li>
<li>js</li>
<li>框架</li>
</ul>
</div>
<div class="box2">
<ul>
<li>英语</li>
<li>数学</li>
<li>化学</li>
<li>生物</li>
</ul>
</div>
</body>
</html>
2.使用clear:both;属性清除浮动:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>给盒子设置height清除浮动</title>
<style>
*{
margin: 0;
padding: 0;
}
ul{
list-style: none;
}
div{
border: 1px solid red;
}
li{
float: left;
width: 80px;
height: 30px;
background: green;
}
.box2{
clear: both;
/*这种方法margin失效*/
/*margin-top: 10px;*/
}
</style>
</head>
<body>
<div class="box1">
<ul>
<li>html</li>
<li>css</li>
<li>js</li>
<li>框架</li>
</ul>
</div>
<!-- 给后面的盒子增加clear:both属性清除浮动 -->
<div class="box2">
<ul>
<li>英语</li>
<li>数学</li>
<li>化学</li>
<li>生物</li>
</ul>
</div>
</body>
</html>
注意:此方法的缺陷是margin属性失效。
3.使用隔墙法清除浮动:即是在两盒子之间增加一个盒子
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>给盒子设置height清除浮动</title>
<style>
*{
margin: 0;
padding: 0;
}
ul{
list-style: none;
}
div{
border: 1px solid red;
}
li{
float: left;
width: 80px;
height: 30px;
background: green;
}
.cl{
clear: both;
}
.h1{
height: 10px;
/*IE6的hack:用于处理IE6的微型盒子兼容性问题*/
_font-size:0;
}
</style>
</head>
<body>
<div class="box1">
<ul>
<li>html</li>
<li>css</li>
<li>js</li>
<li>框架</li>
</ul>
</div>
<!-- 增加一个div如一堵墙,此方法margin也失效,但可以给div增加一个高来替代margin的作用-->
<div class="cl h1"></div>
<div class="box2">
<ul>
<li>英语</li>
<li>数学</li>
<li>化学</li>
<li>生物</li>
</ul>
</div>
</body>
</html>
注意:此方法margin也失效,但可以通过增加“墙”的高度来达到margin的效果。且此方法父元素不能被儿子元素撑出高
4.内墙法清除浮动:即是将“墙”移到上一个div内部
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>给盒子设置height清除浮动</title>
<style>
*{
margin: 0;
padding: 0;
}
ul{
list-style: none;
}
div{
border: 1px solid red;
}
li{
float: left;
width: 80px;
height: 30px;
background: green;
}
.cl{
clear: both;
}
.h1{
height: 10px;
}
</style>
</head>
<body>
<div class="box1">
<ul>
<li>html</li>
<li>css</li>
<li>js</li>
<li>框架</li>
</ul>
</div>
<!-- 增加一个div如一堵墙,此方法margin也失效,但可以给div增加一个高来替代margin的作用-->
<div class="cl h1"></div>
<div class="box2">
<ul>
<li>英语</li>
<li>数学</li>
<li>化学</li>
<li>生物</li>
</ul>
</div>
</body>
</html>
注意:此方法跟“隔墙法”类似,但该方法能撑出高。
5.给父元素增加overflow:hidden;属性来清除浮动:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>给盒子设置height清除浮动</title>
<style>
*{
margin: 0;
padding: 0;
}
ul{
list-style: none;
}
div{
border: 1px solid red;
overflow: hidden;
/*IE6不兼容overflow:hidden;属性,使用_zoom解决此问题*/
_zoom:1;
}
li{
float: left;
width: 80px;
height: 30px;
background: green;
}
/*此方法margin生效*/
.box2{
margin-top: 10px;
}
</style>
</head>
<body>
<div class="box1">
<ul>
<li>html</li>
<li>css</li>
<li>js</li>
<li>框架</li>
</ul>
</div>
<div class="box2">
<ul>
<li>英语</li>
<li>数学</li>
<li>化学</li>
<li>生物</li>
</ul>
</div>
</body>
</html>
注意:该方法IE6不兼容,需用_zoom:1;属性使IE6兼容,并且该方法margin生效。
以上是清除浮动的方法,仅供参考~!