本文章介绍了关于超简单的关于在css中如何快速的清除浮动,有需要学习的同学可参考一下
代码如下
复制代码
<style>
.container {
border: 3px solid #000;
width: 600px;
background-color: #eee;
margin-bottom:50px;
}
.floatedbox {
float: left;
border: 3px solid #bbb;
width: 125px;
height: 125px;
background-color: #fff;
margin-right: 1em;
padding: 0 10px;
}
</style>
</head>
<body>
<div class="container">
<div class="floatedbox">
<p>
floated box
</p>
</div>
<h3>Container 1</h3>
<p>
(<em>without</em>
easy clearing)
</p>
</div>
</body>
</html>
去网上查了一下,这就是著名的浮动问题。我们需要做的就是将浮动效果给清除。
咋个解决方法
网上有好多解决办法,但是普遍是在这三类中:
在浮动的div外层,增加含有clear:both样式定义的div元素
使用overflow:auto,但是这个传说中会引起一些很杯具的效果
使用after伪元素进行处理,同时对于IE使用hack
首先第二种,既然传说中会杯具,那么我肯定不用。而第一种,对于我这种有类似html洁癖的人也肯定不会使用,平白无故增加一个div标签,实在感觉有些划不来,还有些恶心。
所以我彩after伪元素来处理,具体处理后的代码如下:
代码如下
复制代码
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>简易浮动清除</title>
<style>
.container {
border: 3px solid #000;
width: 600px;
background-color: #eee;
margin-bottom:50px;
}
.floatedbox {
float: left;
border: 3px solid #bbb;
width: 125px;
height: 125px;
background-color: #fff;
margin-right: 1em;
padding: 0 10px;
}
.clearfix:after{
content:".";
display:block;
height:0;
clear:both;
visibility:hidden;
}
* html .clearfix{height:1%;}
</style>
</head>
<body>
<div class="container">
<div class="floatedbox">
<p>
floated box
</p>
</div>
<h3>Container 1</h3>
<p>
(<em>without</em>
easy clearing)
</p>
</div>
<div class="container">
<div class="floatedbox">
<p>
floated box
</p>
</div>
<h3>Container 1</h3>
<p>
(<em>without</em>
easy clearing)
</p>
<div style="clear:both;"></div>
</div>
<div class="clearfix container">
<div class="floatedbox">
<p>
floated box
</p>
</div>
<h3>Container 1</h3>
<p>
(<em>without</em>
easy clearing)
</p>
</div>
</body>
</html>
问题得以解决。网上还有人说在div标签后面加上一个“点”感觉不爽,而且还要使用visibility来隐藏。所以建议使用如下代码替代:
代码如下
复制代码
.clearfix:after{content:"";display:block;height:0;clear:both;}
这样我们的问题就解决了。