美文网首页
CSS浮动与清除浮动

CSS浮动与清除浮动

作者: 张延伟 | 来源:发表于2016-04-25 21:06 被阅读193次

一、CSS浮动

1、三个固定宽度与高度的框,当把框 1 向右浮动时,它脱离文档流并且向右移动,直到它的右边缘碰到包含框的右边缘。

2、文字围绕图片效果,当设置图片左浮动时,紧邻图片的行内元素将依次排开,与图片形成环绕效果。

3、浮动引发的问题

我们不定义框的宽度,然后再对1进行右浮动,我们看到内容多宽,容器就多宽,即:未定宽度的元素设定了浮动,元素的宽度会随内容变化,我们看到对1进行浮动之后,框2就受到影响,但框3并没有受到影响,设定了浮动的元素会对相邻元素即紧随其后的元素产生影响,使我们的布局变乱。

当父级元素包含的元素设置浮动时,我们发现父容器并没有把浮动的子元素包围起来,俗称塌陷。

二、如何清除浮动

     1、利用 clear属性,清除浮动

     2、使父容器形成BFC。

2.1 利用 clear属性,清除浮动

clear属性:clear 属性规定元素的哪一侧不允许其他浮动元素。

对紧邻浮动后的元素进行清除浮动,对其后元素设置clear属性

解决父级元素塌陷的问题:①添加空的div,设置clear属性

clear:left属性只是消除其左侧div浮动对它自己造成的影响,而不会改变左侧div甚至于父容器的表现,当子元素中有浮动和普通文档流元素,设置相应普通文档流元素clear属性就可以清除浮动;当子元素全是浮动元素时,我们在最后添加了一个非浮动的div,由于它有clear:left属性,所以它会按照左侧div不浮动来定位自己,也就是定位到下一行,而父容器看到有一个非浮动、普通流的子元素元素,会将其包围,这样造成了顺便也把三个浮动元素也包裹起来的效果,高度不再塌陷。

②clearfix技巧

“clearfix”技巧是基于在父元素上使用“:before”和“:after”两个伪类。使用这些伪类,我们可以在浮动元素的父容器前面和后面创建隐藏元素。“:before”伪类是用来防止子元素顶部的外边距塌陷,使用“display: table”创建一个匿名的“table-cell”元素。这也确保在IE6和IE7下具有一致性。“:after”伪类是用来防止子元素的底部的外边距塌陷,以及用来清除元素的浮动。

为容器设置了一个类名“group”。在需要清除浮动的容器上添加这个类名“group”。

2.2使父容器形成BFC

BFC有三个特性

BFC会阻止垂直外边距(margin-top、margin-bottom)叠加

BFC不会重叠浮动元素

BFC可以包含浮动

我们可以利用BFC的第三条特性来“清浮动”,这里其实说清浮动已经不再合适,应该说包含浮动。也就是说只要父容器形成BFC就可以,简单看看如何形成BFC

float为left|right

overflow为hidden|auto|scroll

display为table-cell|table-caption|inline-block

position为absolute|fixed

我们可以对父容器添加这些属性来形成BFC达到“清浮动”效果

相关文章

  • CSS浮动与清除浮动

    一、CSS浮动 1、三个固定宽度与高度的框,当把框 1 向右浮动时,它脱离文档流并且向右移动,直到它的右边缘碰到包...

  • css浮动与清除浮动

    css浮动(float:none | left | right)在网页布局中我们经常使用的属性,也是经常会出现Bu...

  • CSS 浮动与清除浮动

    一、浮动 1、浮动的元素会脱标,漂浮在标准文档流之上。2、只能向左或向右浮动。3、不管是块级元素还是行内元素,一旦...

  • 清除浮动

    一、清除浮动 or 闭合浮动 ? 清除浮动:清除对应的单词是 clear,对应CSS中的属性是 clear:lef...

  • 如何理解css浮动以及清除浮动

    偶然间在博客园看到一篇非常棒的讲解浮动与清除浮动原理的文章 This is CSS清除浮动 link.

  • CSS 中的浮动

    浮动的定义: 元素脱离文档流 举栗子: 修改 CSS 代码,清除浮动: 浮动的影响: 父元素高度塌陷 清除浮动: ...

  • 一篇文章带你了解CSS clear both清除浮动

    一、前言 CSS clear both清除产生浮动 ,使用了css float浮动会产生css浮动,这个时候就需要...

  • CSS浮动续

    CSS清除浮动案例 CSS版心居中显示案例 清除浮动的四种用法: 1. 使用空标记清除浮动,隔墙法,增加标签 2....

  • CSS clear both清除浮动

    原文地址:CSS clear both清除浮动 DIV+CSS clear both清除产生浮动我们知道有时使用了...

  • CSS浮动.清除浮动

    给父级元素设置高度 在底部添加一个空元素,清除浮动 父级div定义 overflow:hidden或者auto 为...

网友评论

      本文标题:CSS浮动与清除浮动

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