浮动的工作原理

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

浮动元素可能引起的问题

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. what is HTTP OPTIONS verb

    The options verb is sent by browser to see if server accept cross origin request or not, this proces ...

  2. Linux SNAT/DNAT简单理解与案例分析。

      在计算机网络中,网络地址转换(Network Address Translation,缩写为NAT),也叫做网络掩蔽或者IP掩蔽(IP masquerading),是一种在IP数据包通过路由器或防 ...

  3. H2内存数据库支持存储到文件

    准备工作 1.下载JDK(本人下载的版本为JDK1.7).设置环境变量JAVA_HOME,设置PATH(%JAVA_HOME%\bin%). 2.下载并解压:h2-2014-07-13.zip 官网下 ...

  4. 自适应XAML布局经验总结 (四)区域布局设计模式

    本系列对实际项目中的XAML布局场景进行总结,给出了较优化的自适应布局解决方案,希望对大家有所帮助. 下面介绍区域布局设计模式. 7. 头尾模式 页面有时分为顶部栏,中间内容和底部栏三部分.这时可以使 ...

  5. 创建TFS备份计划失败,错误提示:TF400997

    问题描述 在一个TFS 2018 + SQL Server 2017的环境中,从TFS控制台中配置备份计划时,系统提示错误TF400997,需要授予数据库服务账户sqlservice@domain.c ...

  6. linux系统编程之信号(四):alarm和可重入函数

    一,alarm() 在将可重入函数之前我们先来了解下alarm()函数使用: #include <unistd.h> unsigned int alarm(unsigned int sec ...

  7. day 108 项目luffy &contenttype

     反向查询  反向查询 路飞学城项目  一.建模型 models from django.db import models from django.contrib.contenttypes.field ...

  8. Day6 ,周期末考试试题

    Python基础数据类型考试题 考试时间:两个半小时                      满分100分(80分以上包含80分及格) 一,基础题. 1,简述变量命名规范(3分) 2,字节和位的关系 ...

  9. C++派生类与基类对象赋值情况

    一 .普通赋值 (同名隐藏) 子类对象调用和父类相同的函数名,该父类的函数名会被隐藏,只会调用子类的函数. Class A { public: void show(); void show(int); ...

  10. ElasticSearch学习总结(二):ES介绍与架构说明

    本文主要从概念以及架构层面对Elasticsearch做一个简单的介绍,在介绍ES之前,会先对ES的"发动机"Lucene做一个简单的介绍 1. Lucene介绍 为了更深入地理解 ...