说说自己对清除浮动的理解吧

先随便说几句

每次做页面的时候面对浮动真的是简直了,总是会出现要清除浮动的局面,如果说只是给“现代”浏览器做适配来清除浮动那还好,问题是天杀的最近在做的是学校系网啊。。。站群系统和学校一些电脑之老让我怀疑只适配ie9以上加webkit、Gecko是不行的。。


为什么要清除浮动?

只要百度一下清除浮动就会很多告诉你为什么要清除浮动,专业说法说是浮动会让元素脱离当前文档流喔。。反正我自己的理解是浮动能够让这一块东西从布上分离开来,原本的位置就空啦。举个栗子:

  <div class="container">
    <div class="div1 "></div>
    <div class="div2 "></div>
    <div class="div3 "></div>
  </div>

上面那串玩意加上适当的样式,就会变成这个样子


蓝色是div1 绿色div2 红色是container。。div3?就是那一小块粉红色。。别以为div3就那么小。。实际上它是width=红色height=蓝色的神兽。之所以会如图所示是因为它跑到1,2下面去了。之所以会跑到下面去是因为蓝色向左浮动绿色向右浮动。。这样这两个小鬼原本占的空间就腾出来啦,大只粉就能上位啦。
这就是为啥要清除浮动啦。。

哦!对啦,所谓清除浮动其实是清除浮动对周遭环境的影响。。不能出现同个样式里有clear:bothfloat:left;虽然我试过。。。。

怎么清除浮动?

非常非常传统的就是写个clearfix样式。。。如下:

.clearfix {
    clear:both;

写完之后再在你浮动的元素下面写个div然后给它这个元素。。
比如刚才那个栗子代码改成:

<div class="container">
    <div class="div1 "></div>
    <div class="div2 "></div>
    <div class="clearfix"></div>
    <div class="div3 "></div>
  </div>

然后就噔噔噔噔!!!!!不上图了,反正是解决了。不过这种方法我不喜欢,不够优雅(逼格)分分钟要搞很多空的div!!
然后就有了神奇的::after啦~~这小子我就说明了,反正就是在用上它的元素(如.div1::after)结尾时做些什么用的。这样的话你给每个装有浮动元素的容器后面写上个

容器id/class/tag::after {
    content: '';
    height: 0;
    display: block;
    visibility: hidden;
    clear: both;
  }

你可以每个单个写。。我这种懒根子直接在我做的那个系网的css上面来个div,ul::after。。bootstrap好像是.container::after
但是这种方法也是有bug的。。就是上面那个栗子,用了你也发现没用。。因为div3是跟div1和div2在同一个容器内的。。div1,div2自己本身的after是不会有用的。。那怎么办?要们用传统方法加个div什么的要么改成:

  <div class="container">
    <div class="little-container">
      <div class="div1 "></div>
      <div class="div2 "></div>
    </div>
     <div class="div3 "></div>
  </div>

哦对了,这串东西是在div::after blablabla后才有用
然后还是噔噔噔。。其实就是div1,div2的after是没用的。。很好理解他们自己就是浮动元素了。。不能自己清除影响的。。靠别人要么就加div小弟去解决,要么就是给个容器它俩让容器老大解决。

其实我感觉啊。。要清除浮动最多的就是横向导航了,每个li小子都float:left了。这种只要给ul一个::after就好了,轮播图同理。

还有一种就是在页面主体部分会出现的左右浮动吧。。这种在切图分析的时候最好就是左右浮动的元素外面有个容器,要么就是这一行左右浮动的元素下面跟着的也是浮动元素,大家都浮动人人平等。

对了::after只在ie8+才()支持啊。。这就是为什么这次搞得我烦死了。。
后面想了想只能上老办法了。。而且老办法还不同一点。。请看

  .clearfix {
    zoom: 1;
    clear: both;
    height: 0;
  }

ie7、6下测试过是有用滴(关于这个我遇到了很有趣的现象,一开始我故意不清除浮动,在ie6,7下会有Bug,可是后来再试多几次就没有啦OMG...什么原因还不清楚,等我搞出来了再说) ie8呢,我去翻w3c那里发现他的after是支持的但是我实际操作的时候发现还是不行。。也不知道为啥,一样,待我研究研究,我目前的解决方式是在浮动元素容器后追加

  <!--[if lte IE 8]>
    <div class="clearfix"></div>
    <![endif]-->

万事大吉咯~~


最后再说两句

我写这些的原因呢,其实不在指导别人什么,我还不够格,更多是记录自己今天学到什么,也希望能得到别人的指点(不然我就只写自己博客就好啦)。我文笔不好写东西跟说话一样不经大脑想到什么就什么。。。我只是个在努力学习的大学狗而已。。有错别字提醒我。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容

  • 本文以div元素布局为例。教程开始:首先要知道,div是块级元素(div与span),在页面中独占一行,自上而下排...
    TW妖妖阅读 384评论 0 1
  • 本文为转载文章,转载地址:经验分享:CSS浮动(float 写在前面的话: 如果读者理解CSS盒子模型,但对于浮动...
    翻炒吧蛋滚饭阅读 1,038评论 1 14
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,705评论 1 92
  • CSS浮动 首先div是块级元素,在页面中独占一行,自 上而下排列。 以上可以看出,即使div1de宽度很小,页...
    xf0128阅读 382评论 0 1
  • 对于刚刚入门学习前端的渣渣来说,对于css浮动甚是不解,故找来优秀并通俗易解的文章来记录。 教程开始: 首先要知道...
    呆呆滴木木菇凉阅读 327评论 0 1