导读:

CSS 的 Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列,Float(浮动),往往是用于图像,使得文字围绕图片的效果,而它在布局时一样非常有用。不过有利也有弊,使用浮动的时候也会带来一些负面效果。为了不因浮动元素破坏整个文档的布局,所以需要清除浮动,而今清除浮动的方法众多,在此就常见的方法进行理解和记录。

基本概念

首先我们来看一下下面这种情况:父元素的边框未被撑开,子元素从下方溢出。

清除浮动前

清除浮动后

为什么会产生上面的情况呢,由于浮动的特性,导致本属于普通流中的元素浮动之后脱离了该流,包含框内部由于不存在其他普通流元素了,也就表现出所谓高度塌陷。而高度的塌陷使页面后面的布局不能正常显示,造成我们本不期望的效果,总的来说浮动带来的负作用包括:

  • 边框不能撑开
  • 背景不能显示
  • margin 设置值不能正确显示

清除方法

由于浮动带来的影响,所以清除浮动很有必要,而今清除浮动方法不少,不过个别方法也存在着兼容性的问题,接下来就常用的几种方法做下简单的介绍。

1、使用clear属性

在浮动元素下方添加空div,并给该元素写css样式:

    //代码简洁,浏览器支持好
.clearfix{ clear:both }
//增加了无意义的结构元素

2、使用overflow属性

给浮动元素的父元素定义 overflow: auto 或者 定义 overflow: hidden:

    ////代码简洁
.overflow: hidden; zoom: 1; //zoom: 1; 兼容低版IE
//不能和position配合使用,因为超出的尺寸的会被隐藏

3、为父元素指定高度

给浮动元素的父元素指定高度:

    //简单,简洁
width: * px;
//只适合高度固定的布局

4、伪元素(推荐)

给浮动元素的父元素定义 overflow: auto 或者 定义 overflow: hidden:

    .clear{ zoom: 1; }     // zoom: 1; 兼容低版IE
.clear:after{
content: '';
display: block;
clear: both;
height: 0; // 避免生成内容破坏原有布局的高度
overflow: hidden;
visibility: hidden;}

zoom 属性目前是IE的专有属性,设置该值之后,所设置的元素就会就会扩大或者缩小,高度宽度就会重新计算了,这里一旦改变该值时其实也会发生重新渲染,运用这个原理,也就解决了 IE 下子元素浮动时候父元素不随着自动扩大的问题。

写在最后

清除浮动常用的方法大概就是这几个,在不同的场景下选用最合适的方法就是最好的方法。更多内容点击查看 CSS 浮动

如果文中有什么错误,欢迎大家指正,愿与大家在交流之中共同进步,愈激烈,愈深刻。感谢。

CSS 清除浮动的几种方法的更多相关文章

  1. [Web 前端] 018 css 清除浮动的四种方法

    清除浮动的四种方法 加 clear: ...(见例1) 父级上增加属性 overflow:hidden(见例2.1) 在最后一个子元素的后面加一个空的 div,给它一个样式属性 clear: both ...

  2. 活学活用,CSS清除浮动的4种方法

    清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近. CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受. 1.结尾处加空div标签 ...

  3. css清除浮动的几种方法整理

    四种清除浮动方法如下: 1.使用空标签清除浮动.空标签可以是div标签,也可以是P 标签.这种方式是在需要清除浮动的父级元素内部的所有浮动元素后添加这样一个标签 清除浮动,并为其定义CSS代码:cle ...

  4. css清除浮动的8种方法以及优缺点

    浮动会使当前标签产生上浮的效果,同时会影响到前后的标签.父级标签的位置及width height 属性.而且同样的代码,在各种浏览器中效果可能不同,这样让清除浮动更难了.清除浮动引起的问题有很多的方法 ...

  5. CSS 清除浮动的4种方法

    此为未清除浮动源代码,运行代码无法查看到父级元素浅黄色背景.<style type=”text/css”> <!– *{margin:0;padding:0;} body{font: ...

  6. CSS 清除浮动的四种方法

    在实际项目中,我们经常会用到float属性来对页面进行布局.当使用float时,意味着该元素已经脱离了文档流,相当于浮于文档之上,不占据空间.但是针对兄弟元素为文字内容时,会占据一定空间,从而产生文字 ...

  7. css清除浮动的几种方法

    推荐几种好用的清除浮动方法: 方法1: .clearfix:after { content:"."; display:block; height:; clear:both; vis ...

  8. CSS读书笔记(3)---清除浮动的几种方法

    浮动元素容易造成页面错位现象.下面说说关于清除浮动的几种方法. 首先.先创建一个浮动导致错位的页面. <!DOCTYPE html> <html lang="en" ...

  9. [css]浮动-清除浮动的3种方法

    清除浮动的方法: 内墙法 注: 这是个奇淫技巧,没什么原理可言,记住即可 这个技巧又使得父box重新可以被子box撑开高度了. 隔墙法-适用于2个box之间上下排列 由于2个box高度依旧是0, 彼此 ...

随机推荐

  1. JS 数组 学习笔记

    什么是数组 数组(array)是按次序排列的一组值.每个值的位置都有编号(从0开始),整个数组用方括号表示.本质上数组属于一种特殊的,由Array构造出来的对象,typeof运算符返回数组的类型是 o ...

  2. elasticsearch 基础 —— 处理冲突及乐观并发控制

    处理冲突 当我们使用 index API 更新文档 ,可以一次性读取原始文档,做我们的修改,然后重新索引 整个文档 . 最近的索引请求将获胜:无论最后哪一个文档被索引,都将被唯一存储在 Elastic ...

  3. 脚本_根据 md5 校验码,检测文件是否被修改

    #!bin/bash#功能:根据 md5 校验码,检测文件是否被修改#作者:liusingbon#本示例脚本检测的是/etc 目录下所有的 conf 结尾的文件,根据实际情况,您可以修改为其他目录或文 ...

  4. Kvm--03 kvm克隆,桥接网络,热添加

    目录 1.Kvm克隆 1). 完整克隆 2). 链接克隆 2.kvm虚拟机的桥接网络 3.在线热添加网卡,cpu 1). 热添加网卡 2). 热添加内存 3). 热添加cpu参数 1.Kvm克隆 1) ...

  5. $NOI2014$ 购票(斜率优化 点分治)

    \(NOI2014\)购票 哇终于可以碰电脑了赶快切些火题找找感觉. 拿到这道题的时候发现简单的斜率优化推一推可以秒掉平方做法,然后一条链也可以做. 然后呢... 卧槽这个在一棵树上怎么办啊. 大力\ ...

  6. mac终端方式修改host

    打开终端 cd /      #进入根目录 ls      #查看根目录下列表,确定有需要打开的目录 cd etc   #进入配置文件目录 ls sudo vim hosts      #用vim打开 ...

  7. Spring---基础配置

    1.@Scope 1.1.描述了Spring容器如何新建Bean的实例: 1.2.@Scope(value="") value值有: 1.2.1.singleton 一个Sprin ...

  8. 【FTP】FTP(文件传输协议)工作原理(SFTP)

    目前在网络上,如果你想把文件和其他人共享.最方便的办法莫过于将文件放FTP服务器上,然后其他人通过FTP客户端程序来下载所需要的文件. 1.FTP架构 如同其他的很多通讯协议,FTP通讯协议也采用客户 ...

  9. Struts2基础-3 -继承ActionSupport接口创建Action控制器+javaBean接收请求参数+ 默认Action配置处理请求错误 + 使用ActionContext访问ServletAPI

    1.目录结构及导入的jar包 2.web.xml 配置 <?xml version="1.0" encoding="UTF-8"?> <web ...

  10. Hive数据如何同步到MaxCompute之实践讲解

    摘要:本次分享主要介绍 Hive数据如何迁移到MaxCompute.MMA(MaxCompute Migration Assist)是一款MaxCompute数据迁移工具,本文将为大家介绍MMA工具的 ...