博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浮动与清除浮动
阅读量:6681 次
发布时间:2019-06-25

本文共 2057 字,大约阅读时间需要 6 分钟。

具体内容:

1、浮动与清除浮动是html布局中很重要的一个部分,使用十分的广泛,要完全掌握,搞清楚内部的原理。清除浮动是每一个 web前台设计师必须掌握的技能。

2、浮动会使当前标签产生向上浮的效果同时会影响到前后标签父级标签的位置及width和height 属性。

3、而且同样的代码,在各种浏览器中显示效果也有可能不相同,这样让清除浮动更难了。

4、解决浮动引起的问题有多种方法,但有些方法在浏览器兼容性方面还有问题。 如下具体问题具体分析。

5、浮动是由于使用了float属性之后,元素脱离了正常的bfc模式下的正常位置,会造成wrap塌陷,所以要清除浮动,保持父元素块与其周围的布局稳定

具体方法:

1、结尾处加空div标签 clear:both;最直观的方法。

 
Left
Right
div2
原理:添加一个空div,利用css的clear:both清除浮动,让父级div能自动获取到高度,包裹内部的子元素,也就是让子元素撑开父元素。优点:简单、代码少、浏览器支持好、不容易出现怪问题,原理简单。缺点:如果页面浮动布局多,就要增加很多空div,让人感觉很不好。增加了没有意义的div,不利于页面优化操作。建议:不推荐使用,但此方法是以前主要使用的一种清除浮动方法。

2、父级div定义 伪类:after 和 父元素添加属性:zoom:1; 

 
Left
Right
div2
原理:IE8以上和非IE浏览器才支持:after,原理和方法2有点类似,zoom(IE专有属性)可解决ie6,ie7浮动问题。添加这个属性就是为了兼容IE6,IE7。优点:浏览器支持好、不容易出现怪问题(目前:大型网站都有使用,如:腾迅,网易,新浪等等)。缺点:代码多、不少初学者不理解原理,要两句代码结合使用才能让主流浏览器都支持。 建议:推荐使用,建议定义公共类,以减少CSS代码。 就像上面一样,定义好样式,使用的时候直接添加clearfloat类。

3、父级div定义 overflow:hidden; 或者设置overflow的值为auto;但是最好保证设置的父元素宽度大于子元素宽度的和,不然就会出现滚动条。如果不用兼容ie8以下就可以不设置width||zoom;auto属性值不建议使用。

 
Left
Right
div2
原理:必须定义width或zoom:1,同时不能定义height,使用overflow:hidden时,浏览器会自动检查浮动区域的高度。优点:简单、代码少、浏览器支持好。缺点:不能和position配合使用,因为超出的尺寸的会被隐藏overflow:hidden;。 建议:只推荐没有使用position或对overflow:hidden理解比较深的朋友使用。

4、父级div 也一起浮动 ,父元素上添加属性float:left||right;

这个方法会让父元素也浮动,整体一起浮动就还是一个整体了,但是会产生新的浮动问题,所以这种方法不可取。

5、父级div定义 display:table;

 
Left
Right
div2
原理:将div属性变成表格 优点:没有优点 缺点:会产生新的未知问题。 建议:不推荐使用,只作了解。

6、父级div定义 height;

 
Left
Right
div2
原理:父级div手动定义height,就解决了父级div无法自动获取到高度的问题。 这其实并没有解决浮动的问题,只是确定了父元素的高,下边的元素接触不到浮动的元素了,也就看着像是清除了浮动。 优点:简单、代码少、容易掌握。缺点:只适合高度固定的布局,要给出精确的高度,如果高度和父级div不一样时,会产生问题。建议:不推荐使用,只建议高度固定的布局时使用。在高度确定的时候可以使用,高度自适应的话就算了吧,在无线端页面可以,可以使用rem来相对于屏幕宽度自适应,但是终究也是高度固定。

 

转载于:https://www.cnblogs.com/changyangzhe/p/5716066.html

你可能感兴趣的文章
脑洞大开——我理解的编程模式
查看>>
项目总结07:JS图片的上传预览和表单提交(FileReader()方法)
查看>>
Linux中各种进程显示和默认端口
查看>>
Java使用线程并发库模拟弹夹装弹以及发射子弹的过程
查看>>
android 利用SimpleDateFormat格式化时间不准确的问题
查看>>
盘点互联网巨头奉献的十大开源安全工具[转]
查看>>
FileUtils工具类的使用
查看>>
程序员找不女朋友的原因
查看>>
react-router中的路由钩子使用
查看>>
C#编程之“串口通讯多次接收”
查看>>
【python 文件操作】python 文件操作
查看>>
线程相关
查看>>
【C语言】20-static和extern关键字2-对变量的作用
查看>>
详解JDBC驱动的四种类型
查看>>
第十一次作业
查看>>
Android 中Webview 自适应屏幕
查看>>
ubuntu 为rabbitmq安装web插件管理界面(为了远程查看rabbitmq) 分类...
查看>>
js面试题1
查看>>
阿铭每日一题 day 4 20180114
查看>>
转载:C#中的泛型
查看>>