css 清楚浮动的8种方式
css清除浮动大全,共8种方法。
浮动会使当前标签产生向上浮的效果,同一时候会影响到前后标签、父级标签的位置及 width height 属性。并且相同的代码,在各种浏览器中显示效果也有可能不相同,这样让清除浮动更难了。解决浮动引起的问题有多种方法,但有些方法在浏览器兼容性方面还有问题。
以下总结8种清除浮动的方法(測试已通过 ie chrome firefox opera,后面三种方法仅仅做了解就能够了):
1,父级div定义 height
代码例如以下:
<style type="text/css">
.div1{background:#000080;border:1px solid red;/*解决代码*/height:200px;}
.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px}
.left{float:left;width:20%;height:200px;background:#DDD}
.right{float:right;width:30%;height:80px;background:#DDD}
</style>
<div class="div1">
<div class="left">Left</div>
<div class="right">Right</div>
</div>
<div class="div2">
div2
</div>
原理:父级div手动定义height。就攻克了父级div无法自己主动获取到高度的问题。
长处:简单、代码少、easy掌握
缺点:仅仅适合高度固定的布局。要给出精确的高度,假设高度和父级div不一样时,会产生问题
建议:不推荐使用。仅仅建议高度固定的布局时使用
2,结尾处加空div标签 clear:both
代码例如以下:
<style type="text/css">
.div1{background:#000080;border:1px solid red}
.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px}
.left{float:left;width:20%;height:200px;background:#DDD}
.right{float:right;width:30%;height:80px;background:#DDD}
/*清除浮动代码*/
.clearfloat{clear:both}
</style>
<div class="div1">
<div class="left">Left</div>
<div class="right">Right</div>
<div class="clearfloat"></div>
</div>
<div class="div2">
div2
</div>
原理:加入一个空div,利用css提高的clear:both清除浮动,让父级div能自己主动获取到高度
长处:简单、代码少、浏览器支持好、不easy出现怪问题
缺点:不少刚開始学习的人不理解原理。假设页面浮动布局多,就要添加非常多空div。让人感觉非常不好
建议:不推荐使用。但此方法是曾经主要使用的一种清除浮动方法
3,父级div定义 伪类:after 和 zoom
代码例如以下:
<style type="text/css">
.div1{background:#000080;border:1px solid red;}
.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px}
.left{float:left;width:20%;height:200px;background:#DDD}
.right{float:right;width:30%;height:80px;background:#DDD}
/*清除浮动代码*/
.clearfloat:after{display:block;clear:both;content:"";visibility:hidden;height:0}
.clearfloat{zoom:1}
</style>
<div class="div1 clearfloat">
<div class="left">Left</div>
<div class="right">Right</div>
</div>
<div class="div2">
div2
</div>
原理:IE8以上和非IE浏览器才支持:after,原理和方法2有点类似,zoom(IE转有属性)可解决ie6,ie7浮动问题
长处:浏览器支持好、不easy出现怪问题(眼下:大型站点都有使用。如:腾迅。网易,新浪等等)
缺点:代码多、不少刚開始学习的人不理解原理,要两句代码结合使用才干让主流浏览器都支持。
建议:推荐使用,建议定义公共类,以降低CSS代码。
4,父级div定义 overflow:hidden
代码例如以下:
<style type="text/css">
.div1{background:#000080;border:1px solid red;/*解决代码*/width:98%;overflow:hidden}
.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px;width:98%}
.left{float:left;width:20%;height:200px;background:#DDD}
.right{float:right;width:30%;height:80px;background:#DDD}
</style>
<div class="div1">
<div class="left">Left</div>
<div class="right">Right</div>
</div>
<div class="div2">
div2
</div>
原理:必须定义width或zoom:1,同一时候不能定义height,使用overflow:hidden时。浏览器会自己主动检查浮动区域的高度
长处:简单、代码少、浏览器支持好
缺点:不能和position配合使用。由于超出的尺寸的会被隐藏。
建议:仅仅推荐没有使用position或对overflow:hidden理解比較深的朋友使用。
5,父级div定义 overflow:auto
代码例如以下:
<style type="text/css">
.div1{background:#000080;border:1px solid red;/*解决代码*/width:98%;overflow:auto}
.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px;width:98%}
.left{float:left;width:20%;height:200px;background:#DDD}
.right{float:right;width:30%;height:80px;background:#DDD}
</style>
<div class="div1">
<div class="left">Left</div>
<div class="right">Right</div>
</div>
<div class="div2">
div2
</div>
原理:必须定义width或zoom:1,同一时候不能定义height,使用overflow:auto时。浏览器会自己主动检查浮动区域的高度
长处:简单、代码少、浏览器支持好
缺点:内部宽高超过父级div时,会出现滚动栏。
建议:不推荐使用,假设你须要出现滚动栏或者确保你的代码不会出现滚动栏就使用吧。
6。父级div 也一起浮动
代码例如以下:
<style type="text/css">
.div1{background:#000080;border:1px solid red;/*解决代码*/width:98%;margin-bottom:10px;float:left}
.div2{background:#800080;border:1px solid red;height:100px;width:98%;/*解决代码*/clear:both}
.left{float:left;width:20%;height:200px;background:#DDD}
.right{float:right;width:30%;height:80px;background:#DDD}
</style>
<div class="div1">
<div class="left">Left</div>
<div class="right">Right</div>
</div>
<div class="div2">
div2
</div>
原理:全部代码一起浮动,就变成了一个总体
长处:没有长处
缺点:会产生新的浮动问题。
建议:不推荐使用。仅仅作了解。
7,父级div定义 display:table
代码例如以下:
<style type="text/css">
.div1{background:#000080;border:1px solid red;/*解决代码*/width:98%;display:table;margin-bottom:10px;}
.div2{background:#800080;border:1px solid red;height:100px;width:98%;}
.left{float:left;width:20%;height:200px;background:#DDD}
.right{float:right;width:30%;height:80px;background:#DDD}
</style>
<div class="div1">
<div class="left">Left</div>
<div class="right">Right</div>
</div>
<div class="div2">
div2
</div>
原理:将div属性变成表格
长处:没有长处
缺点:会产生新的未知问题。
建议:不推荐使用,仅仅作了解。
8。结尾处加 br标签 clear:both
代码例如以下:
<style type="text/css">
.div1{background:#000080;border:1px solid red;margin-bottom:10px;zoom:1}
.div2{background:#800080;border:1px solid red;height:100px}
.left{float:left;width:20%;height:200px;background:#DDD}
.right{float:right;width:30%;height:80px;background:#DDD}
.clearfloat{clear:both}
</style>
<div class="div1">
<div class="left">Left</div>
<div class="right">Right</div>
<br class="clearfloat" />
</div>
<div class="div2">
div2
</div>
原理:父级div定义zoom:1来解决IE浮动问题,结尾处加 br标签 clear:both
建议:不推荐使用,仅仅作了解。
清除浮动是每个 web前台设计师必须掌握的机能。
css清除浮动大全。共8种方法。
浮动会使当前标签产生向上浮的效果,同一时候会影响到前后标签、父级标签的位置及 width height 属性。
并且相同的代码。在各种浏览器中显示效果也有可能不相同。这样让清除浮动更难了。
解决浮动引起的问题有多种方法,但有些方法在浏览器兼容性方面还有问题。
以下总结8种清除浮动的方法(測试已通过 ie chrome firefox opera,后面三种方法仅仅做了解就能够了):
1。父级div定义 height
代码例如以下:
<style type="text/css">
.div1{background:#000080;border:1px solid red;/*解决代码*/height:200px;}
.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px}
.left{float:left;width:20%;height:200px;background:#DDD}
.right{float:right;width:30%;height:80px;background:#DDD}
</style>
<div class="div1">
<div class="left">Left</div>
<div class="right">Right</div>
</div>
<div class="div2">
div2
</div>
原理:父级div手动定义height。就攻克了父级div无法自己主动获取到高度的问题。
长处:简单、代码少、easy掌握
缺点:仅仅适合高度固定的布局,要给出精确的高度,假设高度和父级div不一样时,会产生问题
建议:不推荐使用。仅仅建议高度固定的布局时使用
2。结尾处加空div标签 clear:both
代码例如以下:
<style type="text/css">
.div1{background:#000080;border:1px solid red}
.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px}
.left{float:left;width:20%;height:200px;background:#DDD}
.right{float:right;width:30%;height:80px;background:#DDD}
/*清除浮动代码*/
.clearfloat{clear:both}
</style>
<div class="div1">
<div class="left">Left</div>
<div class="right">Right</div>
<div class="clearfloat"></div>
</div>
<div class="div2">
div2
</div>
原理:加入一个空div,利用css提高的clear:both清除浮动。让父级div能自己主动获取到高度
长处:简单、代码少、浏览器支持好、不easy出现怪问题
缺点:不少刚開始学习的人不理解原理;假设页面浮动布局多,就要添加非常多空div。让人感觉非常不好
建议:不推荐使用,但此方法是曾经主要使用的一种清除浮动方法
3。父级div定义 伪类:after 和 zoom
代码例如以下:
<style type="text/css">
.div1{background:#000080;border:1px solid red;}
.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px}
.left{float:left;width:20%;height:200px;background:#DDD}
.right{float:right;width:30%;height:80px;background:#DDD}
/*清除浮动代码*/
.clearfloat:after{display:block;clear:both;content:"";visibility:hidden;height:0}
.clearfloat{zoom:1}
</style>
<div class="div1 clearfloat">
<div class="left">Left</div>
<div class="right">Right</div>
</div>
<div class="div2">
div2
</div>
原理:IE8以上和非IE浏览器才支持:after。原理和方法2有点类似,zoom(IE转有属性)可解决ie6,ie7浮动问题
长处:浏览器支持好、不easy出现怪问题(眼下:大型站点都有使用,如:腾迅。网易,新浪等等)
缺点:代码多、不少刚開始学习的人不理解原理,要两句代码结合使用才干让主流浏览器都支持。
建议:推荐使用,建议定义公共类,以降低CSS代码。
4,父级div定义 overflow:hidden
代码例如以下:
<style type="text/css">
.div1{background:#000080;border:1px solid red;/*解决代码*/width:98%;overflow:hidden}
.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px;width:98%}
.left{float:left;width:20%;height:200px;background:#DDD}
.right{float:right;width:30%;height:80px;background:#DDD}
</style>
<div class="div1">
<div class="left">Left</div>
<div class="right">Right</div>
</div>
<div class="div2">
div2
</div>
原理:必须定义width或zoom:1。同一时候不能定义height,使用overflow:hidden时,浏览器会自己主动检查浮动区域的高度
长处:简单、代码少、浏览器支持好
缺点:不能和position配合使用。由于超出的尺寸的会被隐藏。
建议:仅仅推荐没有使用position或对overflow:hidden理解比較深的朋友使用。
5,父级div定义 overflow:auto
代码例如以下:
<style type="text/css">
.div1{background:#000080;border:1px solid red;/*解决代码*/width:98%;overflow:auto}
.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px;width:98%}
.left{float:left;width:20%;height:200px;background:#DDD}
.right{float:right;width:30%;height:80px;background:#DDD}
</style>
<div class="div1">
<div class="left">Left</div>
<div class="right">Right</div>
</div>
<div class="div2">
div2
</div>
原理:必须定义width或zoom:1,同一时候不能定义height。使用overflow:auto时,浏览器会自己主动检查浮动区域的高度
长处:简单、代码少、浏览器支持好
缺点:内部宽高超过父级div时,会出现滚动栏。
建议:不推荐使用,假设你须要出现滚动栏或者确保你的代码不会出现滚动栏就使用吧。
6,父级div 也一起浮动
代码例如以下:
<style type="text/css">
.div1{background:#000080;border:1px solid red;/*解决代码*/width:98%;margin-bottom:10px;float:left}
.div2{background:#800080;border:1px solid red;height:100px;width:98%;/*解决代码*/clear:both}
.left{float:left;width:20%;height:200px;background:#DDD}
.right{float:right;width:30%;height:80px;background:#DDD}
</style>
<div class="div1">
<div class="left">Left</div>
<div class="right">Right</div>
</div>
<div class="div2">
div2
</div>
原理:全部代码一起浮动。就变成了一个总体
长处:没有长处
缺点:会产生新的浮动问题。
建议:不推荐使用。仅仅作了解。
7,父级div定义 display:table
代码例如以下:
<style type="text/css">
.div1{background:#000080;border:1px solid red;/*解决代码*/width:98%;display:table;margin-bottom:10px;}
.div2{background:#800080;border:1px solid red;height:100px;width:98%;}
.left{float:left;width:20%;height:200px;background:#DDD}
.right{float:right;width:30%;height:80px;background:#DDD}
</style>
<div class="div1">
<div class="left">Left</div>
<div class="right">Right</div>
</div>
<div class="div2">
div2
</div>
原理:将div属性变成表格
长处:没有长处
缺点:会产生新的未知问题。
建议:不推荐使用。仅仅作了解。
8,结尾处加 br标签 clear:both
代码例如以下:
<style type="text/css">
.div1{background:#000080;border:1px solid red;margin-bottom:10px;zoom:1}
.div2{background:#800080;border:1px solid red;height:100px}
.left{float:left;width:20%;height:200px;background:#DDD}
.right{float:right;width:30%;height:80px;background:#DDD}
.clearfloat{clear:both}
</style>
<div class="div1">
<div class="left">Left</div>
<div class="right">Right</div>
<br class="clearfloat" />
</div>
<div class="div2">
div2
</div>
原理:父级div定义zoom:1来解决IE浮动问题,结尾处加 br标签 clear:both
css 清楚浮动的8种方式的更多相关文章
- css清除浮动的两种方式(clearfix和clear)
最近总是在用浮动,这两种方式总是浮现在眼前,或者说去掉父级和同级浮动样式总在思考中.两种方式怎么写都在base.css中. 在做瑞祥之旅的过程中,还是吃了一个大亏,就是清除浮动,不管是同级还是父级,都 ...
- css清除浮动的几种方式,哪种最合适?
细心的人可能发现了,写的导航条中存在一个问题,那就是使用了float之后,父级盒子的高度变为0了. 我们来写一个例子来看一下,创建一个父级div,并设置border属性,然后下边创建两个子元素span ...
- HTML/css清除浮动的几种方式
浮动在HTML/CSS布局中十分常见,虽然浮动布局可以实现很多有用的排版效果,但是浮动的元素脱离了文档流,可能造成包含块高度塌陷.下方行框上移等行为.因此在使用浮动实现想要的效果后,通常还需要清除浮动 ...
- CSS清除浮动的几种方式
浮动对页面的影响: 如果一个父盒子中有一个子盒子,并且父盒子没有设置高,子盒子在父盒子中进行了浮动,那么将来父盒子的高度为0.由于父盒子的高度为0, 下面的元素会自动补位,所以这个时候要进行浮动的清除 ...
- css清除浮动的3种方式
前言: 当不给父元素设置宽高时,父元素的宽高会被子元素的内容撑开.但当子元素设置浮动属性(float) 后, 子元素会溢出到父元素外,父元素的宽高也不会被撑开,这称之为“高度塌陷”.可以理解为使用浮动 ...
- css 清楚浮动的几种方式
方法一: 使用clear属性的空元素 <div style="clear:both;"></div> 方法二:使用overflow属性 给浮动的元素容器添加 ...
- css 清除浮动的几种方式
1.给浮动的元素的父级添加 overflow:hidden;属性 ul>不浮动 添加overflow:hidden; li>浮动 2.给浮动的元素的父级添加after伪类 ul:after ...
- 【css】清除浮动的几种方式
[css]清除浮动的几种方式 因为浮动框不在普通的文档流中,所以它不占据空间.如下面的代码: .news { background-color:gray; border:1px solid bla ...
- css考核点整理(一)-浮动的理解和清除浮动的几种方式
浮动的理解和清除浮动的几种方式 clear语法:clear : none | left | right | both 取值:none : 默认值.允许两边都可以有浮动对象left : 不允许左边有浮动 ...
随机推荐
- Matlab pchiptx
function v = pchiptx(x,y,u) %PCHIPTX Textbook piecewise cubic Hermite interpolation. % v = pchiptx(x ...
- HDU 3966 Aragorn's Story 树链剖分+BIT区间修改/单点询问
Aragorn's Story Description Our protagonist is the handsome human prince Aragorn comes from The Lord ...
- tensorflow入门教程和底层机制简单解说——本质就是图计算,自动寻找依赖,想想spark机制就明白了
简介 本章的目的是让你了解和运行 TensorFlow! 在开始之前, 让我们先看一段使用 Python API 撰写的 TensorFlow 示例代码, 让你对将要学习的内容有初步的印象. 这段很短 ...
- linux centos下载地址
Centos下载地址 http://r.aminglinux.com
- DataView和DefaultView的理解
DefaultView 的作用(对DataSet查询出的来数据进行排序)(这个老哥的太长了) DefaultView:默认视图.datatable.DefaultView获取整个表的视图(就像sql查 ...
- 分库分表中间件Sharding-JDBC
数据库分库分表从互联网时代开启至今,一直是热门话题.在NoSQL横行的今天,关系型数据库凭借其稳定.查询灵活.兼容等特性,仍被大多数公司作为首选数据库.因此,合理采用分库分表技术应对海量数据和高并发对 ...
- ADO.NET之断开数据连接的数据库操作
在ADO.NET对数据库操作时有两种方式一种时与数据库实时连接,第二种时断开连接的操作. 断开连接的操作使用SqlDataAdapter来实现,我们要把数据库中的表数据加载到winform中的data ...
- ASM磁盘组中的AU与条带
一.AU与条带(AU和条带就是一个分配单位,数据会被以一定单位分割,存储在多个磁盘中.分割单位的大小由AU.条带来决定. ASM有两种条带: 1.不可调粗粒度: 相当于ASM没有条带,或者说AU就是条 ...
- CSS3-----transform 转换
transforn 可以转换元素,其中主要属性有:rotate() / skew() / scale() / translate()以下4种. transform:rotate():旋转:其中“de ...
- oralce模糊查询之含有通配符
oracle中通配符有 '_'和'%'当like '_ww%'时,会把'_'和'%'当作通配符使用导致查不出含有'_'和'%'的数据.这时用到转译字符 like '\_ww\%' escape '\ ...