论述浮动的原理和浮动带来的影响,并列举常见的闭合浮动的方法。

1.浮动的原理
浮动是让某元素脱离标准流,漂浮在标准流之上的一种布局方式。任何元素被设置为浮动元素后,就表明它是块级元素,拥有宽高属性。
2.浮动带来的影响
1)影响它的兄弟元素的位置
一个元素设置了浮动样式后,会影响它的兄弟元素,至于如何影响,要看它的兄弟元素是块级元素还是内联元素。如果兄弟元素是块级元素,会无视这个浮动元素,即兄弟元素和浮动元素共处同行,浮动元素会覆盖兄弟元素。除非这些 div 设置了宽度,并且父元素的宽度不足以包含它们,这样兄弟元素才会被强制换行;如果兄弟元素是内联元素,则会尽可能围绕浮动元素。
2)会导致父元素高度自动清零
浮动元素脱离了普通流,导致父元素高度塌陷。
闭合浮动:使浮动元素闭合,从而减少浮动带来的影响。
3.闭合浮动的方法大体分为两类:
1)利用 clear 属性。可以通过在浮动元素末尾添加一个带有clear: both属性的空div 来闭合元素,也可以通过:after伪元素在浮动元素末尾添加一个内容为一个点并带有clear: both属性的元素来闭合元素。
①.用空div闭合浮动

.clr1{ clear:both; }
<div class="box1">
    <div class="fl">左浮动</div>
<div class="fr">右浮动</div>
  <div style="clr1">清除浮动</div>
</div>

②.用:after伪元素闭合浮动

.clr2:after{ clear:both; display:block; content:”.”; overflow:hidden; visibility:hidden; height:0; } //谷歌,火狐
.clr2{ clear:both; zoom:1; } //IE
<div class="box2 clr2">
    <div class="fl">左浮动</div>
<div class="fr">右浮动</div>
</div>

2)触发该浮动元素父元素的BFC (Block Formatting Contexts, 块级格式化上下文),使其父元素可以包含浮动元素。
①.给浮动元素的父元素添加浮动,不建议采用。
②.给浮动元素的父元素添加display: table-cells,这样会改变盒子模型,也不建议使用。
③.把浮动元素的父元素overflow属性设为hidden或auto,可以闭合浮动。另外在IE6中还需要触发hasLayout,例如为父元素设置容器宽高或设置zoom:1。

时间: 2024-08-04 14:20:40

论述浮动的原理和浮动带来的影响,并列举常见的闭合浮动的方法。的相关文章

浮动布局所带来的影响以及如何清除浮动

在页面的布局过程中浮动是个好东西,我们经常会用到浮动布局,它可以使元素共享一行,极大的方便了我们的布局过程.但是很多人可能只是会用,对浮动的原理只是一知半解,如果没有清晰的认识到浮动所带来的影响以及如何清除浮动所带来的影响,那么面对代码量庞大的页面将会变得一头雾水.所以接下来我们来深入学习一下浮动布局,相信大家把浮动这个概念掌握的很清晰的时候,以后运用起来将会更加得心应手. 一. 什么是浮动布局? CSS 的 Float(浮动),会使元素向左或向右移动,使元素共享一行,类似于给元素加了inlin

css浮动布局,浮动原理,清除(闭合)浮动方法

css浮动 1.什么是浮动:在我们布局的时用到的一种技术,能够方便我们进行布局,通过让元素浮动,我们可以使元素在水平上左右移动,再通过margin属性调整位置 2.浮动的原理:使当前元素脱离普通流,相当于浮动起来一样,浮动的框可以左右移动,直至它的外边缘遇到包含框或者另一个浮动框的边缘 3.浮动的生成:使用css属性float:left/right/none 左浮动/右浮动/不浮动(默认) 4.浮动的影响: 不会影响未浮动的块级元素布局,但是会影响内联元素的布局 浮动后的元素可以设置宽度和高度,

css清除&amp;闭合浮动

那些年我们一起清除过的浮动   原文地址:http://www.iyunlu.com/view/css-xhtml/55.html 浮动(float),一个我们即爱又恨的属性.爱,因为通过浮动,我们能很方便地布局: 恨,浮动之后遗留下来太多的问题需要解决,特别是IE6-7(以下无特殊说明均指 windows 平台的 IE浏览器).也许很多人都有这样的疑问,浮动从何而来?我们为何要清除浮动?清除浮动的原理是什么?本文将一步一步地深入剖析其中的奥秘,让浮动使用起来更加得心应手. 一.清除浮动 还是

学习笔记:清除浮动的原理(BFC与hasLayout)

利用元素浮动来布局相信大家已经不再陌生了,但浮动会带来高度塌陷的问题(这里就不详诉了,有兴趣的朋友可以自行搜索).既然浮动会带来不好的影响,那我们就需要去解决这个问题.其实清除浮动带来的影响也就是我们常说的”清除浮动”的方法非常简单,网上随便一搜就知道了,但大部分像我这样的菜鸟都不知道背后的原理是什么.所以今天我主要是谈谈清除浮动背后的原理. 要了解清除浮动的原理,首先我们要了解BFC这个名词. BFC(Block Fomatting Context) BFC,翻译过来就是”块级格式化上下文”.

css清除浮动的原理

最近学习css发现了高度塌陷时候要清除浮动,为了理解清楚浮动原理,网上找了不少资料,发现都写的不是很清楚,而且都是一模一样的内容,我在里分享一下我对清楚浮动原理的理解, 如果你已经很了解什么是浮动和浮动的效果你可以直接跳转到三.如何清除浮动(重点)阅读 一.什么是浮动首先我们需要知道定位 元素在页面中的位置就是定位,解决问题之前我们先来了解下几种定位方式 1.普通流定位 static(默认方式)  普通流定位,又称为文档流定位,是页面元素的默认定位方式  页面中的块级元素:按照从上到下的方式逐个

清除浮动的原理剖析

常用的清除浮动的几种方法总结下: 1,手动设置一个标签(在浮动元素下方),然后对其设置clear属性 2,给浮动元素设置 :after伪类,创建块元素,设置clear属性 3,给父元素设置浮动 4,给父元素设置overflow设置非visible值(auto,hidden) 5,给父元素的display设置为table-cell 7,在ie6,7中,设置zoom或者width,height来触发haslayout,使父元素包含浮动元素 原理剖析: 1,2方法之所以可以成功,是因为了clear属性

浮动的影响及如何清除浮动带来的影响

什么叫浮动:浮动会使当前标签脱离文档流,产生上浮的效果,同时还会影响周边元素(前后标签)及父级元素的位置和width,height属性.下面用一个小例子来看一看浮动的全过程:1.首先我们新建一个网页,在网页中用div元素创建三个小的正方形,为了区别分别给他们不同的ID值和背景颜色,代码如下 1 <style> 2 div{ 3 width:100px; 4 height:100px; 5 } 6 #green{ 7 background:green; 8 } 9 #blue{ 10 backg

清除浮动(带来的影响) clear与margin重叠

[CSS][清除浮动(带来的影响) clear与margin重叠] 1.用clear清除浮动(在浮动元素的底加入div且设置clear:both;),会发生margin重叠显现 2.用BFC清除浮动(在浮动元素的父元素上加入overflow: hidden;),则会把整个元素包起来,从而不会发生margin重叠现象 (PS:只有普通文档流中块框的垂直外边距才会发生外边距叠加.行内框.浮动框或绝对定位框之间的外边距不会叠加.) 第一个是使用了"clear:both"但是它会与margin

清除浮动(闭合浮动)的方法

一.在元素后面添加元素清除浮动 添加空的标签来清除浮动:<div style="clear:both | left | right | none“></div>.出现位置要紧挨着浮动元素.缺点 带来多于标签 添加br标签来清除浮动:<br style="clear:left | right | all"> 出现位置要紧挨着浮动元素,缺点:带来多于的标签 使用伪类元素:after为在其元素后面,.clearfix:after{content: