浮动的工作原理

浮动元素脱离文档流,不占据空间。浮动元素碰到包含它的边框或者浮动元素的边框则停留。

浮动元素可能引起的问题

1.父元素的高度无法被撑开,影响与父级元素同级的元素

2.与浮动元素同级的非浮动元素会跟随其后

3.若非第一个元素浮动,则该元素之前的元素也需要浮动,否则会影响页面的显示结构

清除浮动有什么解决办法?

一般来说有三种办法。

1.使用空标签清除浮动

在所有浮动标签后面添加一个空标签并定义CSS属性  clear:both

对比图:div未被撑开

加个空标签就可以,弊端是增加了无语义标签

<style type="text/css">
html,body,div{ margin: 0;padding: 0;}
.box{border: 1px solid #333;}
p{border: 1px dotted #333;}
.box img{float: left;}
.box p{float: left;}
.cb{clear: both;}
</style>
</head> <body> <div class="box">
<img src="1.jpg" width="50px" height="50px">
<p>one</p>
<!--在这里增加 <div class="cb"></div> -->
</div>
</body>

当然了,如果浮动元素的后边元素你不需要浮动,可以顺便给它加个clear:both ,这样也不错。

2.使用overflow

给包含浮动元素的父元素标签添加CSS属性,overflow:hidden or auto; zoom:1  ,其中zoom:1用于兼容IE6,目的是为了触发hasLayout

3.使用after伪对象清除浮动。

但该方法只适用于非IE浏览器,还要注意的是使用的时候要记得为需要清除浮动元素的伪对象设置height:0; 否则该对象会比实际高出若干像素。

<head>
<style>
html,body,div{ margin: 0;padding: 0;}
.box{border: 1px solid #333;}
p{border: 1px dotted #333;}
.box img{float: left;}
.box p{float: left;}
.cb{clear: both;} .clearfix{display: inline-block; /*zoom:1;*/ } /* for IE ; or use zoom:1 to trigger the hasLayout; */ .clearfix:after{content: "."; display: block; height: 0; visibility: hidden;clear: both;}
</style>
</head> <body> <div class="box clearfix">
<img src="1.jpg" width="50px" height="50px">
<p>one</p>
</div>
</body>

4.就是给浮动元素的父元素也浮动起来,但这整体又浮动了所以不推荐~

5.还有一种就是直接给浮动的元素添加属性  display:table;

FF Chrome等支持,IE6/IE7测试显示不支持~ 所以还得触发hasLayout ,加上zoom:1  或者 display:inline-block 吧

谈谈CSS的浮动问题的更多相关文章

  1. 谈谈一些有趣的CSS题目(四)-- 从倒影说起,谈谈 CSS 继承 inherit

    开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...

  2. css清除浮动深度解析

    首先引入一个新的概念"包裹". float:left会使得该属性的作用容器包裹住其内部元素:那么还有么有其他属性能够产生类似于浮动这种包裹性? 答案是有的:像"浮动&qu ...

  3. css清除浮动大全共8种方法

    原文链接http://www.jb51.net/css/173023.html 清除浮动是每一个 web前台设计师必须掌握的机能.css清除浮动大全,共8种方法. 浮动会使当前标签产生向上浮的效果,同 ...

  4. CSS清除浮动技巧

    一般浮动是什么情况呢?一般是一个盒子里使用了CSS float浮动属性,导致父级对象盒子不能被撑开,这样CSS float浮动就产生了. 本来两个黑色对象盒子是在红色盒子内,因为对两个黑色盒子使用了f ...

  5. 从倒影说起,谈谈 CSS 继承 inherit(转)

    从倒影说起,谈谈 CSS 继承 inherit 给定一张有如下背景图的 div: 制作如下的倒影效果: 方法很多,但是我们当然要寻找最快最便捷的方法,至少得是无论图片怎么变化,div 大小怎么变化,我 ...

  6. DIV+CSS 清除浮动方法总结

    DIV+CSS 清除浮动是页面布局中常见的问题,相信各位高手也都有自己的方法,今天在这里对常见的几种方法进行总结(PS:谈不上是原创,这里是我自己做的归纳总结,也是我自己内化的过程),希望对您能够有所 ...

  7. CSS清除浮动八种方法

    在各种浏览器中显示效果也有可能不相同,这样让清除浮动更难了,下面总结8种清除浮动的方法,测试已通过 ie chrome firefox opera,需要的朋友可以参考下 清除浮动是每一个 web前台设 ...

  8. css清除浮动的方法汇总

    这是在其他地方看到的一篇文章,汇总的不错,摘过来做个记录. 引用地址 : http://www.cnblogs.com/ForEvErNoME/p/3383539.html ------------- ...

  9. 更简洁的 CSS 清理浮动方式

    CSS清理浮动有很多种方式,像使用 br 标签自带的 clear 属,使用元素的 overflow,使用空标签来设置 clear:both 等等.但考虑到兼容问题和语义化的问题,一般我们都会使用如下代 ...

随机推荐

  1. Unity核心对象模型

    总结的Unity引擎部分的核心对象模型类图,供大家学习时参考,根基类为Object,下一层包括核心基类GameObject,及其他作为资源的Mesh,Material,Shader,Texture,S ...

  2. 曲演杂坛--使用ALTER TABLE修改字段类型的吐血教训

    --===================================================================== 事件起因:开发发现有表插入数据失败,查看后发现INT类型 ...

  3. hbase启动异常的慢

    hbase启动慢 hbase启动非常慢,要几个小时,查看日志,发现有如下异常信息: 2016-12-02 22:39:09,365 ERROR [RS_LOG_REPLAY_OPS-db-dn001: ...

  4. C#内存释放(垃圾回收)

    今天写了个很小的程序,程序的功能仅仅是截图,但是如果长时间开启并截图的时候,程序会变的很大,从刚开始的运行在任务管理器中只有十几K大小,运行一段时间后在任务管理器中看到程序可以达到1G或2G甚至更大: ...

  5. Asp.net MVC5 返回json数据忽略序列化属性

    在属性上添加 [ScriptIgnore] 特性,命名空间是System.Web.Script.Serialization

  6. ASP.NET Core 2 学习笔记(七)路由

    ASP.NET Core通过路由(Routing)设定,将定义的URL规则找到相对应行为:当使用者Request的URL满足特定规则条件时,则自动对应到相符合的行为处理.从ASP.NET就已经存在的架 ...

  7. HTTP服务介绍

    摘自 https://mp.weixin.qq.com/s?__biz=MzI4NDM5NzE4Ng==&mid=2247484093&idx=1&sn=3d87e9772ff ...

  8. 程序媛计划——python初级课时1~2

    在命令行中运行py文件:python 文件路径/文件名 python变量必须赋值后才能使用,因为py变量只有赋值后才会被创建. py可以同时给多个变量赋值:a,b,c = 10,20,'dfjkdj' ...

  9. 雨天的尾巴(bzoj3307)(线段树合并+树上差分)

    \(N\)个点,形成一个树状结构.有\(M\)次发放,每次选择两个点\(x,y\) 对于\(x\)到\(y\)的路径上(含\(x,y\))每个点发一袋\(Z\)类型的物品.完成 所有发放后,每个点存放 ...

  10. 小型Http服务器

    HTTP又叫做超文本传输协议,现如今用的最多的版本是1.1版本.HTTP有如下的特点: 支持客户/服务器模式(C/S或B/S) 简单快速:基于请求和响应,请求只需传送请求方法和请求路径 灵活:HTTP ...