CSS清除浮动的几种方式

浮动对页面的影响:

    如果一个父盒子中有一个子盒子,并且父盒子没有设置高,子盒子在父盒子中进行了浮动,那么将来父盒子的高度为0.由于父盒子的高度为0,

    下面的元素会自动补位,所以这个时候要进行浮动的清除(不要在浮动元素上清除浮动),不然浮动会造成父元素高度坍塌,同时浮动会脱离文档流,对整个页面布局有很大的影响

方式一:使用overflow属性来清除浮动

    .ovh{

      overflow:hidden;

     }

    先找到浮动盒子的父元素,再在父元素中添加一个属性:overflow:hidden,就是清除这个父元素中的子元素浮动对页面的影响.

    注意:一般情况下也不会使用这种方式,因为overflow:hidden有一个特点,离开了这个元素所在的区域以后会被隐藏(overflow:hidden会将超出的部分隐藏起来).

方式二:使用额外标签法

    .clear{

      clear:both;

     }

    在浮动的盒子之下再放一个标签,在这个标签中使用clear:both,来清除浮动对页面的影响.

      a.内部标签:会将这个浮动盒子的父盒子高度重新撑开.(内墙法)

      b.外部标签:会将这个浮动盒子的影响清除,但是不会撑开父盒子(外墙法)

    注意:一般情况下不会使用这一种方式来清除浮动。因为这种清除浮动的方式会增加页面的标签,造成结构的混乱.

方法三:使用伪元素来清除浮动

    .clearfix:after{

      centent:"";//设置内容为空

      height:0;//高度为0

      line-height:0;//行高为0

      display:block;//将文本转为块级元素

      visibility:hidden;//将元素隐藏

      clear:both//清除浮动

     }

    .clearfix{

      zoom:1;为了兼容IE

    }

方法四:使用双伪元素清除浮动

    .clearfix:before,.clearfix:after {

content: "";

display: block;

clear: both;

}

.clearfix {

zoom: 1;

}

方法五:给浮动元素的祖先元素加高度(一般为父元素)

      我们知道了高度塌陷是应为给浮动元素的父级高度是自适应导致的,那么我们给它的设置适当的高度就可以解决这个问题了。

      缺点:在浮动元素高度不确定的时候不适用

方法六:父元素浮动

      当父元素浮动的时候,无需为子元素的浮动清除浮动,布局时经常用到

      缺点:消除了塌陷现象,但由于其父元素也发生了浮动故,其后元素若处于正常文档流,会被跌在底下,

         另外,需要给每个浮动元素父级添加浮动,浮动多了容易出现问题

方法七:父元素处于绝对定位

      缺点:与上一个方法同理,由于绝对定位已脱离正常文档流,故出现相同情况,解决办法可以使用以上办法结合,灵活多变

还有一些其他方法,在这就不多描述,以上差不多就是比较常用的清除浮动的方法。

  推荐: 

    在网页主要布局时使用:after伪元素方法并作为主要清理浮动方式;在小模块如ul里使用overflow:hidden;(留意可能产生的隐藏溢出元素问题);

    如果本身就是浮动元素则可自动清除内部浮动,无需格外处理;

    最后可以使用相对完美的:after伪元素方法清理浮动,文档结构更加清晰。

时间: 2024-10-13 16:41:25

CSS清除浮动的几种方式的相关文章

CSS 清除浮动的几种方式

第一种方式: 因为浮动框不在普通的文档流中,所以它不占据空间.如下面的代码: .news { background-color:gray; border:1px solid black; } .news img { float:left; } .news p { float:right; } <div class="news"> <img src="/img/news-pic.jgp" alt="my pic" /> &l

css清除浮动的两种方式(clearfix和clear)

最近总是在用浮动,这两种方式总是浮现在眼前,或者说去掉父级和同级浮动样式总在思考中.两种方式怎么写都在base.css中. 在做瑞祥之旅的过程中,还是吃了一个大亏,就是清除浮动,不管是同级还是父级,都没清除浮动,导致经常会有div包不住子级的东西(经常一审查height=0).现利用两例子来巩固下. <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"

css清除浮动的几种方式,哪种最合适?

细心的人可能发现了,写的导航条中存在一个问题,那就是使用了float之后,父级盒子的高度变为0了. 我们来写一个例子来看一下,创建一个父级div,并设置border属性,然后下边创建两个子元素span,并设置浮动.具体代码如下所示: 由上图可以看出,在给span添加了float之后,父级元素div的高度就变成了0.我们有以下几种方式来解决这个问题 (1)给父级元素单独定义高度(height) 原理:如果父级元素没有定义高度,父元素的高度完全由子元素撑开时,父级div手动定义height,就解决了

css清除浮动的三种方式

1.父级元素结束之前加入空div,div的样式中有“clear:both” 2.父级元素设置样式"overflow:hidden".原因:“为什么加入overflow:hidden即可清除浮动呢?那是因为overflow:hidden属性相当于是让父级紧贴内容,这样即可紧贴其对象内内容(包括使用float的div盒子),从而实现了清除浮动.Css overflow:hidden清除浮动方法DIVCSS5推荐使用.” 3.父级元素设置class样式"clearfix"

【css】清除浮动的几种方式

[css]清除浮动的几种方式 因为浮动框不在普通的文档流中,所以它不占据空间.如下面的代码: 1 .news { 2 background-color:gray; 3 border:1px solid black; 4 } 5 .news img { 6 float:left; 7 } 8 .news p { 9 float:right; 10 } 11 <divclass="news"> 12 <imgsrc="/img/news-pic.jgp"

css清除浮动的几种方法以及对应规范说明

css清除浮动的几种方法以及对应规范说明 1.{clear:both;}设置了clear 属性的元素,其上边框位置会紧贴浮动元素的 margin-bottom 边界位置渲染,使包含浮动元素的容器高度正常.所以适用于浮动元素后面容器之内有个非浮动元素,或是额外添加一个新的空元素. 2..after- clear-float :after{content:""; display:block; clear:both;}利用伪类添加新元素,原理同上,所以只适用于父容器最后一级子元素是浮动的,即

html 清除浮动的几种方式

清除浮动的几种方式? 答:1,父级 div 定义 height 原理:父级 div 手动定义height,就解决了父级 div 无法自动获取到高度的问题. 简单.代码少.容易掌握 ,但 只适合高度固定的布局. 2,结尾处加空 div 标签 clear:both 原理:在浮动元素的后面添加一个空 div 兄弟元素,利用 css 提高的 clear:both 清除浮动,让父级 div 能自动获 取到高度 ,如果页面浮动布局多,就要增加很多空 div,让人感觉很不好 . 3,父级 div 定义 伪类:

【转】浅谈 CSS 清除浮动的 6 种方法

转载:浅谈 CSS 清除浮动的 6 种方法 在开发网页的时候经常需要用到各种浮动,此时便需要及时的清除浮动,否则将会导致布局出现问题 引出问题: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <style> .outer{ border: 1px solid black;

清除浮动的四种方式及其原理理解

清除浮动的四种方式及其原理理解 本文介绍了四种清除浮动的方法,并尝试解释其原理.在理解了各种清除浮动的原理之后,你会发现,很多清除浮动的方法本质上其实是一样的.掌握这些原理,相信你可以根据场景和需求,灵活运用原则发展出不同的清除浮动的方法,而不再死记或拘泥于文中提到的方法. 一.为什么要清除浮动 在讲清除浮动的方法之前,我们先来了解一下为什么要清除浮动,清除浮动的目的是什么,即,要解决什么样的问题.来看一个浮动的例子(略去了文字内容): <div class="topDiv"&g