清除浮动的简要介绍

  最近在总结一些以前了解的知识,对于css来说,清除浮动是一个知识点。

  那我们来看看浮动是什么。当然我们要先提一提常规文档流(额,这篇文章主要参考《CSS权威指南》,但书中没解释常规文档流,那就我自己按理解来解释一下了)。

  常规文档流:就是除去浮动元素(float)、绝对定位(position:absolute)后的所有元素,按照它们在html文档中出现的顺序及其自身的属性(块级元素,行内元素等)生成的排版。

  浮动的特点:好吧,就是有了float属性的元素会脱离常规文档流,尽量的跑到父元素的顶部,据说CSS设计float属性的主要目的,是为了实现文本绕排图片的效果,然而,这个属性居然也成了创建多栏布局最简单的方式(@《CSS权威指南》);并且,既然浮动元素脱离了文档流,其父元素也就看不到它了,因而也不会包围它,导致父元素盒模型不能被撑开,这样就会造成许多布局上的问题。

  好了,既然已经了解了什么是浮动,那我们就来说一下三种清除浮动的方法:

  1.子元素计算高度,为父元素设定高度,适合一些高度固定的地方(。。。这个方法还是不要用了,实在是不太实用)。

  2.这个方法很简单,缺点是不太直观,即为父元素应用overflow:hidden,以强制它包围浮动元素(触发BFC,BFC这个概念先不说了)。

  3.让父元素也浮动起来(同样也是触发BFC)。

  4.给父元素的最后添加一个非浮动的子元素,然后清除该子元素,一般也有两种方式实现它:

  a.在父元素标记中的最后添加一个子元素,并给它应用clear属性,e.g.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>float的清除</title>
<style>
.floatDiv {
    float: left;
}
.clear {
    clear: both;
}
</style>
</head>
<body>
  <div>
    <div class="floatDiv">
         我是浮动元素
    <div>

    <div class="clear">
  <div>

</body>            

  这样,浮动的元素被父元素包围住了,但会添加一个纯表现性元素,显得不太符合语义化的要求,当然,还有更好的b方法。

  b.直接给父元素添加一个类,给它加上一点点修饰,e.g.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>float的清除</title>
<style>
.floatDiv {
    float: left;
}
.clearfix:after {
  content: ".";
  display: block;
  height: 0;
  visibility: hidden;
  clear: both;
}
</style>
</head>
<body>

  <div class="clearfix">
    <div class="floatDiv">
      我是浮动元素
    <div>
  <div>

</body>      

  像这样给父元素的最后加上一个伪元素:一个很小的句点,作为非浮动元素,同时设置其height,visibility属性确保它在页面上不可见,然后clear:both使得它可以清除左、右两边的浮动元素。

  好了,关于浮动先说到这。

清除浮动的简要介绍

时间: 2024-11-10 07:11:16

清除浮动的简要介绍的相关文章

CSS清除浮动方法

HTML结构 1 <div class="wrap"> 2 <div class="div1">1</div> 3 <div class="div2">2</div> 4 <div class="div3">3</div> 5 </div> CSS样式 1 .wrap{margin:10px;padding20px;border:5

css中clearfix清除浮动的用法及其原理示例介绍

clearfix的定义: .clearfix:after {}{ content: "."; /**//*内容为“.”就是一个英文的句号而已.也可以不写.*/ display: block; /**//*加入的这个元素转换为块级元素.*/ clear: both; /**//*清除左右两边浮动.*/ visibility: hidden; /**//*可见度设为隐藏.注意它和display:none;是有区别的.visibility:hidden;仍然占据空间,只是看不到而已:*/ l

CSS清除浮动技巧

一般浮动是什么情况呢?一般是一个盒子里使用了CSS float浮动属性,导致父级对象盒子不能被撑开,这样CSS float浮动就产生了. 本来两个黑色对象盒子是在红色盒子内,因为对两个黑色盒子使用了float浮动,所以两个黑色盒子产生了浮动,导致红色盒子不能撑开,这样浮动就产生了. 简单地说,浮动是因为使用了float:left或float:right或两者都是有了而产生的浮动. 二.浮动产生负作用 1.背景不能显示由于浮动产生,如果对父级设置了(CSS background背景)CSS背景颜色

清除浮动方法解析

清除浮动方法解析 清除浮动带来的额外影响 如果对于浮动不熟悉的同学,可以看看介绍float的文章.传送门:CSS float 我们知道,在一个父元素内如果遇到某个浮动元素,此时父元素的高度会发生塌陷.针对父元素高度塌陷的问题,现在已经有了很多的解决方案.针对每一个方案,我们来进行深度的剖析. 添加空块级元素 这种方法比较容易,但是要注意的是这个空元素必须是一个块级元素,不能是行内元素或者是行内块元素.缺点就是多了一些没有意义的标签.代码如下. //HTML <div class="cont

清除浮动塌陷的4种经典套路

原文地址;http://www.cnblogs.com/chedabang/p/5973601.html "自古深情留不住,总是套路得人心."这些日子,各个朋友圈随时可以见到这句话的身影.的确人们常说:"多一点真诚,少一点套路.",但是最终现象写实也是那么残酷和无奈. 同样在前端攻城狮的道路,我们都是真诚尽心尽力的去学习进取.奈何先是各大浏览器厂商的大战不断,导致我们这群学习的人苦不堪言,一片水生火热呀.不得不想进各种hack方法解决.(没错,这里就是吐槽的IE6!

清除浮动的方法-那些年我们一起清除过的浮动

浮动(float),一个我们即爱又恨的属性.爱,因为通过浮动,我们能很方便地布局: 恨,浮动之后遗留下来太多的问题需要解决,特别是IE6-7(以下无特殊说明均指 windows 平台的 IE浏览器).也许很多人都有这样的疑问,浮动从何而来?我们为何要清除浮动?清除浮动的原理是什么?本文将一步一步地深入剖析其中的奥秘,让浮动使用起来更加得心应手.一.清除浮动 还是 闭合浮动 (Enclosing float or Clearing float)?很多人都已经习惯称之为清除浮动,以前我也一直这么叫着

css清除浮动各方法与原理

说到清除浮动的方法,我想网络上应该有不下7,8的方法,介绍这些方法之前,想下为什么清除浮动? 再次回到float这个属性,浮动元素(floats)会被移出文档流,不会影响到块状盒子的布局而只会影响内联盒子(通常是文本)的排列. 这就产生了一个问题:浮动元素所在父元素不会自动伸长以便闭合浮动元素,任其“红杏出墙”,这显然不符合我们的“伦理观”,所以要“抓回来”施以家法:那么如何抓呢? 提起css,提起(x)html,首先进入脑海的是楚楚动人的页面吗?不,首先应该是这楚楚动人的页面的背后的“楚楚冻人

利用伪对象选择器E:after实现清除浮动效果

利用伪对象选择器E:after实现清除浮动效果:关于清除浮动已经是老生畅谈的问题,文章实在是太多了,几乎已经被谈烂了.这当然是因为浮动是不居中必须要用到的技巧,那么清除浮动自然也是必须的,但是本章节还是要啰嗦一下,再次介绍一下清除浮动的方法的一种,因为它会用到之前比较少见的伪对象选择器,希望能够引起大家的注意.先看一段代码实例: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> &

css清除浮动代码实例演示

css清除浮动代码实例演示:在页面中如果采用了浮动,那么清除浮动则是必须要进行的操作,否则可能引起一些意想不到的后果.本章节不会对浮动或者清除浮动的原理做介绍,只是分享一下清除浮动的几段代码,因为有些朋友可能需要的就是一个代码实例,关于浮动或者清除清除浮动的相关内容可以参阅相关阅读.一.使用overflow清除浮动: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <met