美文网首页
清除浮动的办法

清除浮动的办法

作者: 胡道道 | 来源:发表于2017-03-26 22:29 被阅读0次

<h2>浮动到底是什么?</h2>

<p>浮动核心就一句话:<strong>浮动元素会脱离文档流并向左/向右浮动,直到碰到父元素或者另一个浮动元素</strong>。请默念3次!</p>

<p>浮动最初设计的目的并没那么多事儿,就只是用来实现文字环绕效果而已,如下所示:
</p><div class="image-package">

<img src="https://img.haomeiwen.com/i1158202/27ac63a8ae142d04.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240">文字环绕效果</div>

</div>

<h2>为什么要清除浮动</h2>
浮动:元素使用浮动之后会脱离文档流,左右移动直到浮动元素的外边缘碰到到他的父元素的边框或者碰到另一个浮动元素的边框,浮动的这个性质会影响网页的布局,例如:
造成父元素的高度塌陷
[图片上传中。。。(1)]
当包含左列和右列的父元素的高度小于浮动的子元素时,父元素的高度没有被撑开。

影响块级元素中的文本



对于黄色div来说,浮动的粉色div是不影响他的布局的,黄色div就像不存在粉色div一样呈现自己的布局,但是对于黄色div中的文字来说受到了浮动元素的影响。

因为浮动会造成以上之类的布局问题,所以在使用float之后,我们要清除浮动。
清除浮动的几种方法
父元素也设置float:left。



这种方式比较简单,但是作为父容器来说设置了float同样会影响他相邻元素的布局,所以这种方法并不可取。

浮动元素后面加一个任何标签然后样式设置clear:both;
<div id="content"> <div class="left">左列,设置float:left</div> <div class="right">右列,设置float:left</div> <div class="clear"></div></div>

content{ width:1000px; background:#ddd; border:3px solid red; } .left{ float:left; width:300px; height:60px; background:pink; } .right{ float:left; width:300px; height:60px; background:yellow; } .clear{ clear:both; }

效果图:



这种方式同样是比较简单,但是缺点是增加了许多无意义的标签,不利于维护。

浮动元素后面加一个<br clear="all" />
该方法与上一个浮动元素后面加一个任何标签然后样式设置clear:both类似,也产生无语义化的标签。

包裹浮动元素的父元素使用overflow:hidden和overflow:auto

content{ width:1000px; background:#ddd; border:3px solid red; overflow:hidden; //overflow:auto; *zoom:1;//IE6中出发hasLayout }


这种方法的优点是不存在语义化的问题,缺点是一些情况下可能会产生滚动条或者内容被隐藏了。

使用after伪元素

content:after{ content:""; display:block; clear:both; }

IE6中不支持after,可以使用

content{ *zoom:1;//出发hasLayout }


这是目前采取的最常用的一种方法,相比以上有缺陷的几种做法,使用伪元素after比较保险。

相关文章

  • 布局浮动的问题

    浮动的问题 什么是浮动?浮动(float)的副作用清除浮动两种清除浮动的办法如下:

  • 清除浮动的办法

    浮动到底是什么? 浮动核心就一句话: 浮动元素会脱离文档流并向左/向右浮动,直到碰到父元素或者另一个浮动元素 。请...

  • 高度塌陷、清除浮动、元素垂直居中

    高度塌陷: 定义:父元素没有设置高度,子元素设置了浮动(float)属性解决办法:清除浮动(仅清除浮动的负面影响,...

  • CSS浮动和清除浮动的办法

    1. 什么是浮动 浮动就是使用 css当中的float 属性对一个元素进行设置,使其脱离文档流,移动到其父容器的左...

  • 11.22 前端学习

    清除浮动 clear:left清除左浮动clear:right清除右浮动clear:both清除对它影响最大的浮动...

  • 前端06

    清除浮动 clear:left清除左浮动clear:right清除右浮动clear:both清除对它影响最大的浮动...

  • 06 前端学习

    清除浮动 clear:left清除左浮动clear:right清除右浮动clear:both清除对它影响最大的浮动...

  • 技术知识点整理

    清除浮动 BFC清除浮动浮动的父级末尾插入块级元素清除浮动 BFC(Block Formatting Contex...

  • 清除浮动

    未清除浮动前 清除浮动后

  • css清除浮动

    前端开发中浮动处处可见,本文探讨浮动的成因以及如何更加有效的清除浮动。 1、浮动与清除浮动 2、清除浮动 基本cs...

网友评论

      本文标题:清除浮动的办法

      本文链接:https://www.haomeiwen.com/subject/tjrmittx.html