清除浮动(float)

1.定义和用法

  在w3c中给了浮动这样的定义。

  "float 属性定义元素在哪个方向浮动。以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素"。

  如果浮动非替换元素,则要指定一个明确的宽度;否则,它们会尽可能地窄。

  注释:假如在一行之上只有极少的空间可供浮动元素,那么这个元素会跳至下一行,这个过程会持续到某一行拥有足够的空间为止。

  通俗的来讲,浮动就是让默认标准文档流下的元素漂浮起来并水平排列。

  让图像右浮动:img { float:right; }

  值:

left 元素向左浮动。
right 元素向右浮动。
none 默认值。元素不浮动,并会显示在其在文本中出现的位置。
inherit 规定应该从父元素继承 float 属性的值。

2.浮动所带来的影响

  1) 行内元素浮动之后可以支持宽高;

  2) 文本会给浮动定位的元素让位(可以以此制作文本绕排的效果);

  3) 在父级没有给高度的情况下,子级浮动后父级会没有高度;

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>内容生成清除浮动</title>
<style type="text/css">
#container{
border: 1px solid #000;
padding: 20px;
background-color: #0000FF;
}
#d1,#d2,#d3{
width: 100px;
height: 100px;
line-height: 100px;
text-align: center;
border: 1px solid #000;
margin: 10px;
float: left;
}
</style>
</head>
<body>
<div id="container">
<div id="d1">1</div>
<div id="d2">2</div>
<div id="d3">3</div>
</div>
</body>
</html>

  

 如图,一般来说父级中的内容会将其高度撑起来,但图中并没有;

3.清除浮动

  如何清除浮动,这里介绍4种方法:

  1) 在父级的最后添加一个空的div,添加clear属性;   

<body>
<div id="container">
<div id="d1">1</div>
<div id="d2">2</div>
<div id="d3">3</div>
<div style="clear: both;"></div>
</div>
</body>

  这里不推荐使用这种方法,因为会在页面添加无用的标签,会使页面布局复杂化;

  2) 给父级设置overflow:hidden;(溢出隐藏)

    会触发bfc(block formatting context)--块级格式化上下文;  

<body>
<div style="overflow:hidden">
<div id="d1">1</div>
<div id="d2">2</div>
<div id="d3">3</div>
</div>
</body>

    同样也不推荐使用,因为这个属性与定位一起使用时会有副作用.

  3)使用伪元素after(推荐使用)

.clearfix:after{
content:""; /*内容为空*/
height:; /*高度为0*/
line-height:; /*行高为0*/
display:block; /*块级元素*/
visibility:hidden; /*隐藏*/
clear:both; /*行高为0*/
}
.clearfix{
zoom:; /*兼容IE678*/
}
<div class="clearfix" > 
<div id="d1">1</div>
<div id="d2">2</div>
<div id="d3">3</div>
</div>

  4) 使用双伪元素:after和before(不推荐使用,不严谨)

.clearfix:after ,clearfix:before{
content:"";
display:table;
clear:both;
}
.clearfix{
zoom:1; /*兼容IE678*/
}

如何清除浮动(float)所带来的影响的更多相关文章

  1. 【转】css清除浮动float的三种方法总结,为什么清浮动?浮动会有那些影响?

    摘要: css清除浮动float的三种方法总结,为什么清浮动?浮动会有那些影响?     一.抛一块问题砖(display: block)先看现象: 分析HTML代码结构: <div class ...

  2. css清除浮动float的几种方法

    摘要: css清除浮动float的三种方法总结,为什么清浮动?浮动会有那些影响?     一.抛一块问题砖(display: block)先看现象: 这里我没有给最外层的DIV.outer 设置高度, ...

  3. css清除浮动float

    css清除浮动float 1.分析HTML代码 <div class="outer"> <div class="div1">1</ ...

  4. 更优雅的清除浮动float方法

    上篇文章是利用 :after 方法清除浮动float(作用于浮动元素的父元素上). ; } //为了兼容性,因为ie6/7不能使用伪类,所以加上此行代码. .outer:after {;;visibi ...

  5. css清除浮动float的三种方法总结,为什么清浮动?浮动会有那些影响?一起来$('.float')

    一.抛一块问题砖(display: block)先看现象: 分析HTML代码结构: <div class="outer">     <div class=&quo ...

  6. css清除浮动float的三种方法总结

    原文地址: http://my.oschina.net/leipeng/blog/221125 张大神的解析: http://www.zhangxinxu.com/wordpress/2010/01/ ...

  7. css清除浮动float方法

    转载:http://www.cnblogs.com/ForEvErNoME/p/3383539.html 什么是CSS清除浮动? 在非IE浏览器(如Firefox)下,当容器的高度为auto,且容器的 ...

  8. 清除浮动float (:after方法)

    1. 什么时候需要清除浮动?清除浮动有哪些方法? (1)对元素进行了浮动(float)后,该元素就会脱离文档流,浮动在文档之上.在CSS中,任何元素都可以浮动.浮动元素会生成一个块级框,而不论它本身是 ...

  9. CSS清除浮动float方法总结

    使用浮动造成的BUG: 使用浮动前:(子节点是将父节点撑开了) 代码如下 <div class="box"> <div class="d1"& ...

随机推荐

  1. python爬虫学习之查询IP地址对应的归属地

    话不多说,直接上代码吧. import requests def getIpAddr(url): response = requests.get(url) response.encoding=resp ...

  2. Xftp5软件使用详解

    一.首先运行Xftp5,然后导航栏上面有个小加号,点击进去. 二.接着出现如下界面,在这里填写名称(这个随意填写),主机填写要连接的主机的IP地址,然后协议的话,Linux系统一般选择SFTP协议,端 ...

  3. 【病毒分析】对一个vbs脚本病毒的分析

    [病毒分析]对一个vbs脚本病毒的分析 本文来源:i春秋社区-分享你的技术,为安全加点温度 一.前言 病毒课老师丢给我们一份加密过的vbs脚本病毒的代码去尝试分析,这里把分析过程发出来,供大家参考,如 ...

  4. 程序员工作 996 生病 ICU ?

    阅读本文大概需要 2 分钟. 说实话,一般平时这个点我已经睡着了,今天准备好的文章也会准时在凌晨推送给大家.睡前看篇关于强制 996 加班的消息,里面有句口号还挺溜,上班996,下班ICU,为此还特意 ...

  5. Spring中EmptyResultDataAccessException异常产生的原理及处理方法

    Spring中EmptyResultDataAccessException异常产生的原理及处理方法 Spring中使用JdbcTemplate的queryForObject方法,当查不到数据时会抛出如 ...

  6. 一些能体现个人水平的SQL语句[总结篇]

    作为一名小小的开发人员,刚入门的时候觉得很难,过了一段时间之后,发现很简单,很快就可以搞定很bug了.然而这并不能说明你就已经很牛掰了,只能说,你不了解其他太多的东西.应该说,数据库有几个共同的命令, ...

  7. openjtag 的硬件连接踩坑历程

    这个事情踩了不少坑,这个要记录一下: 1 代码的下载和编译按照下面的来:https://github.com/pulp-platform/pulp-debug-bridge 注意点: A 要最好使用p ...

  8. .NET Core 如何调用 WebService

    0.使用背景 因为现在的项目都是基于 .NET Core 的,但是某些需要调用第三方的 WebService 服务,故有了此文章.其基本思路是通过微软提供的 Svcutil 工具生成代理类,然后通过 ...

  9. MySQL(2)---Explain

    Explain 什么是explain 使用explain关键字,可以模拟优化器执行SQL语句查询,从而知道MySQL如果处理你的SQL语句,分析语句的性能瓶颈. explain 分析sql语句 使用e ...

  10. mysql 开发进阶篇系列 20 MySQL Server(innodb_lock_wait_timeout,innodb_support_xa,innodb _log_*)

    1. innodb_lock_wait_timeout mysql 可以自动监测行锁导致的死锁并进行相应的处理,但是对于表锁导致的死锁不能自动监测,所以该参数主要用于,出现类似情况的时候等待指定的时间 ...