清除浮动有哪几种方式?再说说各自优缺点

2020-05-22 16:12发布

5条回答
哼哼哼哼哼
2楼 · 2020-05-22 16:16

①给父元素单独定义高度
  优点:简单快速、代码少。
  缺点:无法进行响应式布局。

②在标签结尾处加空div标签


  优点:简单快速、代码少,兼容性较高。
  缺点:增加空标签,不利于页面优化。

③父级定义overflow:hidden
  优点:简单快速、代码少,兼容性较高。
  缺点:超出部分被隐藏了,在布局的时候要注意。

④父级定义class="clearfix",使用after伪类和zoom
  .clearfix:after{content:"";display:block;clear:both;height:0;overflow:hidden;visibility:hidden;}
  .clearfix{zoom:1;}
  优点:写法固定,没有多余结构,兼容性高。
  缺点:代码多。


敦敦宁
3楼 · 2020-05-22 16:43

   一、额外标签法(在最后一个浮动元素的后面新加一个标签如

,并在其CSS样式中设置clear: both;)

优点:简单,通俗易懂,写少量代码,兼容性好
缺点:额外增加无语义html元素,代码语义化差,后期维护成本大

   二、给父级设置高度

优点:简单,写少量代码,容易掌握
缺点:不够灵活,只适用于高度固定的布局

   三、触发父BFC(如给父元素设置overflow:hidden,特别注意的是:在IE6中还需要触发hasLayout,例如给父元素设置zoom:1。原理是触发父级BFC后,父元素在计算高度时,浮动的子元素也会参与计算)

优点:简单,代码简洁
缺点:设置overflow:hidden容易造成不会自动换行导致超出的尺寸被隐藏掉,无法显示要溢出的元素

   四、使用after伪元素常见的方法如下

复制代码

"."0-height: 0-size: 0
    zoom: 1


王可夫斯基
4楼 · 2020-05-22 19:26

一、额外标签法(在最后一个浮动元素的后面新加一个标签如

,并在其CSS样式中设置clear: both;)

优点:简单,通俗易懂,写少量代码,兼容性好
缺点:额外增加无语义html元素,代码语义化差,后期维护成本大

二、给父级设置高度

优点:简单,写少量代码,容易掌握
缺点:不够灵活,只适用于高度固定的布局

三、触发父BFC(如给父元素设置overflow:hidden,特别注意的是:在IE6中还需要触发hasLayout,例如给父元素设置zoom:1。原理是触发父级BFC后,父元素在计算高度时,浮动的子元素也会参与计算)

优点:简单,代码简洁
缺点:设置overflow:hidden容易造成不会自动换行导致超出的尺寸被隐藏掉,无法显示要溢出的元素

四、使用after伪元素常见的方法如下

复制代码

"."0-height: 0-size: 0
    zoom: 1


小猴子
5楼 · 2020-05-25 09:10

①给父元素单独定义高度
  优点:简单快速、代码少。
  缺点:无法进行响应式布局。

②在标签结尾处加空div标签


  优点:简单快速、代码少,兼容性较高。
  缺点:增加空标签,不利于页面优化。


③父级定义overflow:hidden
  优点:简单快速、代码少,兼容性较高。
  缺点:超出部分被隐藏了,在布局的时候要注意。

④父级定义class="clearfix",使用after伪类和zoom
  .clearfix:after{content:"";display:block;clear:both;height:0;overflow:hidden;visibility:hidden;}
  .clearfix{zoom:1;}
  优点:写法固定,没有多余结构,兼容性高。
  缺点:代码多。



HUANG
6楼 · 2020-05-29 00:30

1.额外标签法(在最后一个浮动标签后,新加一个标签,给其设置clear:both;)(不推荐)    

 如果我们清除了浮动,父元素自动检测子盒子最高的高度,然后与其同高。

优点:通俗易懂,方便

缺点:添加无意义标签,语义化差

不建议使用

2.父级添加overflow属性(父元素添加overflow:hidden)(不推荐)

通过触发BFC方式,实现清除浮动

优点:代码简洁

缺点:内容增多的时候容易造成不会自动换行导致内容被隐藏掉,无法显示要溢出的元素

3.使用after伪元素清除浮动(推荐使用)

优点:符合闭合浮动思想,结构语义化正确

缺点:ie6-7不支持伪元素:after,使用zoom:1触发hasLayout.

推荐使用

4.使用before和after双伪元素清除浮动

优点:代码更简洁

缺点:用zoom:1触发hasLayout.

推荐使用




相关问题推荐

  • 回答 120

    相对前几年来说,要高上不少了,毕竟入行的人也是越来越多了,基础的工作对应想要参与的人群基数越来越大,但是对于高端人才的需求还是很多,人才还是相对稀缺性的。所以,想要学web或者其他技术也一样,别等,别观望。web前端就业方向特别多包括web前端开发...

  • 回答 25

    相对定位和绝对定位是定位的两种表现形式,区别如下:一、主体不同1、相对定位:是设置为相对定位的元素框会偏移某个距离。2、绝对定位:absolute 脱离文档流,通过 top,bottom,left,right 定位。二、特点不同1、相对定位:在使用相对定位时,无论是否进行移...

  • 抓包是什么意思?2020-04-01 17:36
    回答 7
    已采纳

    抓包(packet capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。抓包可以通过抓包工具来查看网络数据包内容。通过对抓获的数据包进行分析,可以得到有用的信息。目前流行的...

  • 回答 89

    常用的前端框架有Bootstrap框架、React框架、Vue框架、Angular框架、Foundation框架等等

  • 回答 65
    已采纳

    前端是目的就业前景非常不错的一个计算机技术,但是自学的话还是有一定难度的,网络上自学是碎片化的,同时互联网技术跟新换代快,自己的话比较吃力也学习不到最新的技术。

  • SSR 是什么意思?2020-03-20 18:56
    回答 6

    SSR就是一台服务器,可以利用 SSR 在远程的服务器上配置 SSR,使其能够成为 SSR 节点,这样本地电脑或者其它设备利用 SSR 节点实现 VPN 或者远程上网及游戏加速等方面。ShadowsocksR(简称 SSR)是 Shadowsocks 分支,在 Shadowsocks 的基础上增加了一些数据...

  • 回答 52
    已采纳

    计算机培训方向比较多,建议找适合自己的方向选择培训编程类:JAVA、WEB、Python、C/C++、C#等测试类:软件测试运维类:云计算、网络安全设计类:UI设计、3D建模等

  • 回答 11

    1、代码判断xAxis: {type: 'time',splitLine: {show: false},interval: 3600, // 设置x轴时间间隔axisLabel: {formatter: function(value, index) {return liangTools.unix2hm(value)}}},首先要把xAxis 显示类型设置成time,然后设置对应X轴......

  • 回答 8

    HTML5 + CSS + JavaScript 开发 跨平台重用代码 

  • 回答 4

    采用rem单位自动响应,并提供独有栅格化系统快速定义宽高、边距节省css代码量,同时总结各大型移动端网页,提供一套ui颜色搭配规范,尺寸规范,字体规范等。

  • 回答 10

    iView UI、ioni、SUI

  • 回答 6

     jQTouch 

  • 回答 4

    如果只是普通的移动端用vue react 或者dva 如果是要编译成小程序什么的或者混生 就用uni-app(对应vue语法)taro(对应react) 或者纯原生 这个没有限制的,自己怎么舒服怎么来

  • 回答 4

    因为可以运用在网页和小程序的开饭中,而且开源,用着便宜,企业都很喜欢

  • 回答 10

    一、Visual Studio Code下载地址:https://code.visualstudio.com/微软在2015年4月30日Build 开发者大会上正式宣布了 Visual Studio Code 项目:一个运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代 Web 和云应用的跨平台源代码编辑器。Visual Stud...

  • 回答 9

    jQuery自带淡入淡出效果 https://www.w3school.com.cn/jquery/jquery_fade.asp 看看这个 

没有解决我的问题,去提问