清除浮动是一件功德无量的事情23333 这里记录一下清除浮动的多种方式

*首先要明确的是,为什么要清除浮动?

A 影响其他元素定位

父盒子高度为0,子盒子全部浮动、定位,子盒子不会撑开父盒子,下面的元素会到子盒子的下面

B 背景图片或颜色不能正常显示

由于浮动产生,如果对父级设置了CSS背景颜色或CSS背景图片,而父级不能被撑开,所以导致CSS背景不能显示。

C margin padding设置受到影响

由于浮动导致父子盒子之间设置的padding margin不能正常表达,特别是上下的padding margin。

1  给父级盒子定义高度

原理:父级div手动定义高度,就决绝了父盒子无法自动获取到高度的问题,简单有效代码少

缺点:只适合高度固定的布局。

2   结尾处加上空div标签 clear:both

原理:在浮动元素的后面加上空div元素,利用css提供的clear:both清除浮动,让父盒子自动获取高度。

缺点:如果页面浮动较多,就要写n个空标签,会扰乱代码。

3  **最佳拍档** 使用伪类 父盒子:after 和 zoom

         .clearFlo:after{
content: '';
height: 0;
display: block;
visibility: hidden;
line-height: 0;
clear: both;
} .clearFlo{
zoom: 1;
}

原理:IE8+支持,:after原理和方法2有点类似,zoom是IE专有属性,可以解决6/7浮动问题,所以这是一个比较好的解决办法,推荐使用公共雷鸣,以减少css代码

4 父盒子定义overflow:hidden

缺点:超出盒子部分会被隐藏,不推荐使用。

5 双伪元素法

        .clearfix:before, .clearfix:after{
content: ' ';
display: table;
} .clearfix:after{
clear: both;
}
.clearfix{
zoom: 1;
}

原理:通过:after伪类在浮动元素后面加上display:table的不可见内容块,并给它设置clear:both来清除浮动。

总结:

第一种方法:简单,容易掌握,但只适合高度固定的布局,不推荐使用可以了解。

第二种方法:简单,浏览器支持好,但如果页面浮动布局多,就要增加很多空div,让人感觉很麻烦,不推荐使用,可以了解。

第三种方法:浏览器支持好,建议使用。

第五种方法:浏览器支持好,建议使用。

【CSS】清除浮动的五种方式的更多相关文章

  1. css清除浮动的两种方式(clearfix和clear)

    最近总是在用浮动,这两种方式总是浮现在眼前,或者说去掉父级和同级浮动样式总在思考中.两种方式怎么写都在base.css中. 在做瑞祥之旅的过程中,还是吃了一个大亏,就是清除浮动,不管是同级还是父级,都 ...

  2. CSS清除浮动的几种方式

    浮动对页面的影响: 如果一个父盒子中有一个子盒子,并且父盒子没有设置高,子盒子在父盒子中进行了浮动,那么将来父盒子的高度为0.由于父盒子的高度为0, 下面的元素会自动补位,所以这个时候要进行浮动的清除 ...

  3. css清除浮动的几种方式,哪种最合适?

    细心的人可能发现了,写的导航条中存在一个问题,那就是使用了float之后,父级盒子的高度变为0了. 我们来写一个例子来看一下,创建一个父级div,并设置border属性,然后下边创建两个子元素span ...

  4. HTML/css清除浮动的几种方式

    浮动在HTML/CSS布局中十分常见,虽然浮动布局可以实现很多有用的排版效果,但是浮动的元素脱离了文档流,可能造成包含块高度塌陷.下方行框上移等行为.因此在使用浮动实现想要的效果后,通常还需要清除浮动 ...

  5. css清除浮动的3种方式

    前言: 当不给父元素设置宽高时,父元素的宽高会被子元素的内容撑开.但当子元素设置浮动属性(float) 后, 子元素会溢出到父元素外,父元素的宽高也不会被撑开,这称之为“高度塌陷”.可以理解为使用浮动 ...

  6. css 清除浮动的几种方式

    1.给浮动的元素的父级添加 overflow:hidden;属性 ul>不浮动 添加overflow:hidden; li>浮动 2.给浮动的元素的父级添加after伪类 ul:after ...

  7. 【css】清除浮动的几种方式

    [css]清除浮动的几种方式   因为浮动框不在普通的文档流中,所以它不占据空间.如下面的代码: .news { background-color:gray; border:1px solid bla ...

  8. css考核点整理(一)-浮动的理解和清除浮动的几种方式

    浮动的理解和清除浮动的几种方式 clear语法:clear : none | left | right | both 取值:none : 默认值.允许两边都可以有浮动对象left : 不允许左边有浮动 ...

  9. 前端老司机常用的方法CSS如何清除浮动?清除浮动的几种方式

    在前端开发过程中,我们经常会使用到浮动(float),这个我们即爱又恨的属性.爱,是因为通过浮动,我们能很方便地进行布局:恨,是因为浮动之后遗留下来太多的问题需要解决.下面本篇文章给大家介绍CSS清除 ...

随机推荐

  1. bzoj 1179 [APIO 2009]Atm(APIO水题) - Tarjan - spfa

    Input 第一行包含两个整数N.M.N表示路口的个数,M表示道路条数.接下来M行,每行两个整数,这两个整数都在1到N之间,第i+1行的两个整数表示第i条道路的起点和终点的路口编号.接下来N行,每行一 ...

  2. MFC制作OCX

    1.新建工程 注意选择显示时注册,免得后面又去手动注册 2.工程解释,一般ocx是看类视图而不是解决方案 ①.xxxApp:类似整个工程的入口,有xxxApp.h和xxxApp.cpp,工程的初始化, ...

  3. 在Android studio中到入Eclipse

    由于无法在AS中直接导入Eclipse的原始包,所以需要先把Eclipse的包导出成Gradle包,这个Gradle包可以别两个环境识别. 1.在Eclipse中导出Gradle包.选择需要从Ecli ...

  4. Python3基础 print \n换行

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  5. linux性能分析工具之火焰图

    一.环境 1.1 jello@jello:~$ uname -a Linux jello 4.4.0-98-generic #121-Ubuntu SMP Tue Oct 10 14:24:03 UT ...

  6. RabbitMQ延时任务

    概念: 消息的TTL(Time To Live)消息的TTL就是消息的存活时间.RabbitMQ可以对队列和消息分别设置TTL.对队列设置就是队列没有消费者连着的保留时间,也可以对每一个单独的消息做单 ...

  7. 【第十八章】 springboot + thymeleaf

    代码结构: 1.ThymeleafController package com.xxx.firstboot.web; import org.springframework.stereotype.Con ...

  8. BZOJ1304: [CQOI2009]叶子的染色 树形dp

    Description 给一棵m个结点的无根树,你可以选择一个度数大于1的结点作为根,然后给一些结点(根.内部结点和叶子均可)着以黑色或白色.你的着色方案应该保证根结点到每个叶子的简单路径上都至少包含 ...

  9. 将一组数组向右移动k位,末尾的要转置移动到数组开始,其中n为数组大小,0<k<n

    下面是使用a数组本身完成: package 数组元素k位右移; /** * 数组向又移动k位. 0<k<n * * @author SeeClanUkyo 将一组数组向右移动k位,末尾的要 ...

  10. Windows下搭建FTP服务器

    一.什么是ftp? FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”.用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(A ...