浮动为何不能撑起父容器
2014-06-25 22:40
239 查看
浮动float属相 是我们在网页布局中最经常使用的一个属性,给我们带来很的丰富的布局样式,但是如果不对其作深入了解,可能会对我们的网页布局出现一些意想不到问题
下面我们例子来说明,上代码:
<style type="text/css">
.main { //设置父容器的属性
width: 100%;
padding: 100px 20px;
border: 1px solid green; //设置父容器的边框颜色为绿色,便于区分
}
.left {
width: 40%;
height: 300px;
border: 1px solid black; //左边浮动框边框设置为黑色
}
.right {
width: 50%;
height: 300px;
border: 1px solid red; //右边浮动框边框设置为红色
}
.fl {
float: left;
display: inline; //解决ie浏览器的双margin问题
}
.right {
float: right;
display: inline;
}
</style>
<body>
<div class="main"> //父容器
<div class="left fl"></div> //左边子容器
<div class="right fr"></div> //右边子容器
</div>
</body>
显示图片如下
原因解释: 浮动元素是脱离文档流的,所以它根本不能撑起所在父容器的高度;解决的方法有两种,第一种是加一个div,将其设置属性的clear:both即可,当然这里我们可以用伪类来解决。
为main加一个伪类
.main::after {
content: ',';
height: 0;
display: block;
visibility: hidden;
clear: both;
}
效果如图所示
这样就达到了当初预想的结果,其实如果我们到京东或者其他的网站用firefox查看可以看到clearfix这个类选择器,其实这个就是用来清楚浮动的;
另外还介绍一个用伪类可以做出其他很炫的效果的http://blog.mukispace.com/pseudo-elements-10-examples/
下面我们例子来说明,上代码:
<style type="text/css">
.main { //设置父容器的属性
width: 100%;
padding: 100px 20px;
border: 1px solid green; //设置父容器的边框颜色为绿色,便于区分
}
.left {
width: 40%;
height: 300px;
border: 1px solid black; //左边浮动框边框设置为黑色
}
.right {
width: 50%;
height: 300px;
border: 1px solid red; //右边浮动框边框设置为红色
}
.fl {
float: left;
display: inline; //解决ie浏览器的双margin问题
}
.right {
float: right;
display: inline;
}
</style>
<body>
<div class="main"> //父容器
<div class="left fl"></div> //左边子容器
<div class="right fr"></div> //右边子容器
</div>
</body>
显示图片如下
原因解释: 浮动元素是脱离文档流的,所以它根本不能撑起所在父容器的高度;解决的方法有两种,第一种是加一个div,将其设置属性的clear:both即可,当然这里我们可以用伪类来解决。
为main加一个伪类
.main::after {
content: ',';
height: 0;
display: block;
visibility: hidden;
clear: both;
}
效果如图所示
这样就达到了当初预想的结果,其实如果我们到京东或者其他的网站用firefox查看可以看到clearfix这个类选择器,其实这个就是用来清楚浮动的;
另外还介绍一个用伪类可以做出其他很炫的效果的http://blog.mukispace.com/pseudo-elements-10-examples/
相关文章推荐
- 子元素浮动父容器高度不能自适应的CSS解决方法
- 子元素浮动父容器高度不能自适应的CSS解决方法
- 解决子容器全部浮动时父容器高度不能自动撑开的方法
- div里ul li浮动之后父容器高度不能自动增加的解决方法
- 解决内部容器float浮动后不能撑开外部容器及CSS伪类:after的使用
- 子元素浮动父容器高度不能自适应的CSS解决方法
- 子元素浮动父容器高度不能自适应的CSS解决方法
- IE float浮动 子元素不能撑开父容器 解决办法
- ul li浮动之后父容器高度不能自动增加的解决方法
- css实际技巧---父div中有浮动的子div,父容器不能自适应高度,清除浮动,父容器自适应高度
- 子元素浮动父容器高度不能自适应的CSS解决方法
- 子元素浮动父容器高度不能自适应的CSS解决方法
- 解决子容器全部浮动时父容器高度(height属性)不能自动撑开的方法
- Android 来电铃声为何不能先静音再播放
- 为何gpio_to_irq不能静态使用?【转】
- PRODUCT_COPY_FILES的深入理解,为何不能在Android.mk使用
- 【CloudXNS码农提示】为何CNAME和MX不能共存?
- 构造函数为何是唯一一个不能为虚的函数
- 开发者和设计师:为何我们不能化干戈为玉帛?
- 浮动从何而来 我们为何要清除浮动 清除浮动的原理是什么