范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

float与清除浮动

  先来一个常见的bug:
  代码:
  效果:
  描述:当我们给一个元素设置float浮动之后,其后面的元素不再按照正常的排列方式跟随在这个元素后面,而是会被float元素压在下面,并且float元素不再作为撑开父元素的子元素。那么为什么会出现这样的问题呢?可显而知是浮动元素带来的影响,那么浮动元素布局的时候为什么会出现这样的影响呢?接下来我们来探究一下浮动元素的问题
  一.float的本质
  首先我们来探究一下float的本质,float的出现其实是为了实现文字环绕的效果的,类似于如下效果:
  我们会发现当让图片浮动之后,其后面的文字会围绕在图片的四周,与我们上述bug的样式有一定的区别,这也说明了float浮动是专门为图片环绕效果出现的,那为什么我们还会去用浮动进行布局呢?
  其实也很容易想到,浮动属性用来布局是非常符合我们现实世界中"垒砖头砌墙"的认知的,反应在我们的代码实现上就是把元素一个一个定宽定高,通过浮动一个一个堆积起来,理论上一个float:left声明几乎就可以把整个页面结构都弄出来,而且内联元素的间隙问题/margin合并问题都没有了,这么一说是不是觉得float优点还挺多,哈哈,乍一看你float好像可以满足我们布局页面的需求,但是实际上我们在用float布局的时候,会出现很多现实问题。
  举个例子,一旦某个列表的高度变高了,那么后面的列表就可能发生我们不愿看到的布局错位,抑或是日后我们需要增加某个元素的宽度,则也会牵一发而动全身,其他元素也必须跟着调整,否则样式必乱,也就是说float布局的容错性很糟糕,他缺少弹性。
  二.float属性的影响
  float属性的影响归根结底还是由于自身各种特性导致的,float有一些很有意思的特性,例如:破坏文档流,块状化并格式化上下文,没有任何margin合并等等。
  1.什么是文档流?
  float第一个特点就是破坏文档流,那么这个文档流是什么呢?
  文档流实际上是指css世界中的一种基本的定位和布局机制,与我们现实生活中的水流是一样的,在现实生活中,如果我们让水注入一个容器中,水面一定是平的,如果向其放入木头,水位就会升高,而木头会顺序排列,映射到css的世界中,html元素按照文档正常排列(默认从左往右从上到下的顺序)如果图片文字依次排列超出行的区域则换行。
  说白了文档流就是按照正常的文本流向。
  那么说float会使元素脱离文档流,也就是说设置float的元素可以脱离原本的文本流向布局排列。
  2.破坏文档流会有什么影响?
  先来说下float是如何脱离文档流的,float浮动会使父元素的高度发生塌陷,使元素不占用普通流的位置,但这个塌陷并不是float的bug,而是他的标准,试想一下float的出现原本只是为了实现文字环绕效果,如果你是css的设计者。你会如何使用古老的css盒模型规则实现文字环绕效果?
  css的设计者就想到了"破坏文档流"这一招。破坏文档流使父级高度塌陷只是让跟随的内容和浮动元素在一个水平线上,只要这一个条件还是实现不了文字环绕图片效果,要想真正实现还需要一个平时大家不太在意的特性,就是"行框盒子和浮动元素的不可重叠性",也就是"行框盒子如果和浮动元素的垂直高度有重叠,则行框盒子在正常定位状态下只会跟随浮动元素,而不会发生重叠"(注;这里的"行框盒子"是指每行内联元素所在的那个盒子,而非外部的块状盒子)
  实际上,由于浮动元素的塌陷,块状盒子是和图片完全重叠在一起的,举个例子:我们给图片旁边的文字添加一个包裹层p,再给其添加一个背景颜色,就会有以下效果:
  3.什么是块级格式上下文?
  float还有一个特别要提的特点就是会触发块级格式化上下文,也就是我们所说的BFC,说白了就是对于块状元素的的排版,垂直方向上是一个接一个的放置的,BFC也可以说是css世界的结界,通过一些特定的手段形成的封闭空间,里面的元素"出不来"(里面的元素对外面的元素没有任何的影响),外面的元素"进不去"(外面的元素对里面的元素没有任何的影响)。
  如果一个元素具有BFC,内部子元素再怎么翻江倒海,翻云覆雨,都不会影响外部元素,所以BFC是不可能发生margin重叠的,因为margin重叠是会影响外面的元素的;浮动可以触发BFC,BFC也可以用来清除浮动的影响。BFC在计算垂直方向上大小的时候,会包含浮动元素。
  4.什么时候会触发BFC?
  常见的情况如下:
  1)html根元素
  2)float的值不为none
  3)overflow的值为auto、scroll或hidden
  4)display的值为table-cell、table-caption和inline-block中任何一个
  5)position的值不为relative和static
  三.如何清除浮动?
  清除浮动的方法:
  1.clear属性
  css中专门用来处理floa属性带来的高度塌陷等问题的属性——clear,其语法如下:clear;none| left | rigth | bothnone默认值,允许左右浮动left: 左侧抗浮动right: 右侧抗浮动both: 两侧抗浮动
  官方解释这个属性是:元素盒子的边不能和前面的浮动元素相邻.
  大家有没有发现平时我们除了clear:both这个声明比较多以外,left和rigth两个属性值几乎无人问津,是因为left和right这两个值没有用吗?没错,确实没什么用,凡是clear:left或者是clear:right起作用的地方,一定可以使用clear:both替换。
  现在我们就把最初的bug解决一下,清除一下浮动为父级带来的影响:
  清除浮动后的效果:
  注意:clear属性只有块级元素才有效的,而:after等伪元素默认都是内联水平,这就是借助伪元素清除浮动影响是需要设置display属性值的原因。因此我们还可以用以下方法清除浮动带给父级的高度塌陷的影响。
  效果:
  2.为父级设置overflow: hidden/auto/scroll
  效果
  为什么overflow:hidden可以解决浮动呢?
  答案很简单其实就是因为overflow:hidden触发了BFC,BFC在垂直方向的高度会将浮动元素也计算进去,父元素不会忽略自己里面的浮动元素的高度,如果你的父元素的高度设置的auto的话,那么它的高度就会等于浮动元素的高度(假设这个BFC里面只有一个浮动元素)。
  3.为父级设置float: left;
  效果
  4.为父级设置display:table-cell、table-caption和inline-block中任何一个
  效果
  5.为父级设置;
  效果

当你负债累累,你会看到他不一样不会想到,自己一生想做个好人,做个有诚信的人,想做个对社会有所贡献的人,做个自己最喜欢的那个人,不欠别人任何,可谁会想到,终于有一天,让这个社会把自己变成了一个坏人,一个不讲诚信的人无信,必不立,人无品,定无用礼记大学说,自天子以至于庶人,壹是皆以修身为本,修行的最高境界,是止于至善。人生一世,际遇不同,追求各异。有人鸿鹄志远,有人燕雀可安。但无论追求大小,我们立身行事,诚信和人品才是永麦语善良的人,值得被珍惜都说善良的人容易心软,宁愿被伤害,也不愿虚情假意,宁愿受委屈,也不愿违背自己的良心。也有人说,善良的人就是傻,明知道会吃亏,还要伸出自己的双手去帮助别人。所以有人利用善良的人,利用三月致自己的23句话,唯美走心,直抵心灵!一人是无法做到换位思考的,因为思想经历感官全都不一样,就像我说大海很漂亮,你却说淹死过很多人。二人生于世,委屈在所难免,消化了就是成长的动力,消化不了就会变成脾气。三一句无心的话,人这一生,只欠自己(深刻)人活着,难免会为了物质拼搏,因为现实生活始终还是离不开,物质虽然俗气,但是简单有效,但也并非所有地都是重要存在,因为人生其实也就是一个过程,我们每个人也都只是一个过客,若是为了金钱修炼自己的涵养,先学会七个不要涵养是一种发之于内显之于外的修养,体验在人的言谈举止之中。提高自己的涵养,首先从不要开始,下面七点也许对你会有所启发。01hr不要自视清高要明白天外有天人外有人的道理,自视清高,常如果我善良,别认为我软弱如果我善良,别认为我软弱。因为我明白,善良是本性,做人不能恶。如果我忍让,别认为我退缩。因为我明白,忍一忍风平浪静,让一让天高海阔。如果我宽容,别认为我怯懦。因为我明白,宽容是美德善良不是傻厚道不是笨往后余生,让我们的善良带点锋芒ampampquot善良不是傻厚道不是笨往后余生,让我们的善良带点锋芒点击关注品读时刻今天文国文来源国学生活(IDgxsh789)人之初,性本善,做人要善良,不要做亏心事。但过分的善良,就是傻,就是在如果您善良过了头,就成傻子啦善良过了头,就是傻子!艺术读刊今天善良是美德,也是修养,善良是真诚,也是品行。一个人善良没有错,但盲目善良,就是愚蠢,过度善良,就是懦弱。善良很贵,不能在不值得的人身上浪费,善良如骨子里有坚强,言行中有教养,交往中有包容,心底里有善良人必须争气和强大,才不会被欺负。也必须谦逊和慈悲,才不会欺负别人人生如梦,得失从容。让我们真正感到疲惫的不是那些外在的得与失,却是我们自己那颗患得患失的心。若心如明月,如如未动,则凡是过往,皆为序章,愿所遇皆欢喜,所得皆善良人生中不可挽回的事太多。既然活着,还得朝前走。经历过巨大苦难的人有权利证明,创造幸福与承受苦难属于同一种能力。有些事,有机会做的时候,就去做,别等没机会了,再去做,就来不及了有些人
河南三门峡杭增民原创葵花葵花葵花映日色金黄,秋风吹过耀祥光。不与群芳赛娇媚,为报农夫化油香。葡萄果如珍珠赛玉莹,泡含辛酸笑清风。经历严寒抗冰雪,才有香甜伴月明。大雨一夜大雨泻不停,展转难眠思续涌。不知乡民陕西华州武大炜原创美帝美帝美国与美不沾边,横行全球行霸权。建国还未三百载,发动战争年复年。陆地海洋肆意行,炮舰飞机弄狼烟。世界若要求太平,唯有群起众揭竿。美国佬撤兵阿富汗恐怖奇袭双塔倒,拉登怼美显手段。辽宁盘锦马付春原创大连日本风情街感大连日本风情街感日街争议深思痛,恩怨情仇泾渭明。莫忘初衷头脑醒,永铭史命运畴宏。搞活开放须有度,迷外奴颜不可行。前世警钟犹在耳,毫厘信念患忧中。夕阳漫步暮色夕阳霞映天,饮烟袅袅罩家陕西渭南杨宝塔原创园丁园丁仗剑走天涯,终究输于心。见花红树绿,园丁常修新。园丁梦想仗剑走天涯,谁料终究输于心。见满院花红树绿,赖园丁常修常新。园丁曾梦想仗剑走天涯,谁料想终究输于心。但见满院花红树绿,幸陕西渭南石新亚原创青春无痕(22)青春无痕(22)山丹觉得全身暖洋洋的,一点倦意都没有,就要立即去上工。这时一辆綠色吉普车停下来,有一个老伯从车上下来,张延一看爸爸,你怎么来啦!原来张延下乡期满了,未回省城,张延的陕西渭南王伟原创人论人论自古至今,人分男女,老少,智愚,黑白,高低,胖瘦,美丑,正邪,忠奸从另一方面人还可分为圣人,贤人,才人,能人,凡人,庸人,今斗胆试论,以抛砖引玉,拭目高论。圣人者,创立学说,治奈何桥东,那一碗孟婆汤,碎了多少人的地久天长1感情不是谁对谁错,可错了不管是谁都得改过来。Affectionisnotwhoisrightandwhoiswrong,butitiswrongnomatterwhohastoc曾经抱怨,曾经感慨,如今只剩满腔留恋1曾经抱怨,曾经感慨,如今只剩满腔留恋。2我们即将迎来一个离字!心中有太多太多的不舍,太多太多的惜别。但是,我们的友谊会天长地久。3我们的友谊不会因为这一次的分别而减少。在以后的日有些事情你现在不必问,有些人你永远不必等1我从来没有想到的是,这是你我第一次拥抱,带着浅浅笑,你说会陪我一直到老,远离这尘嚣。内线2翻腾旋转的烟又陪伴了一整夜,多年不见的画面丢在昨天很抱歉,眼泪要双眼去寻找风的誓言,裹夹陕西渭南王乾民原创傻姑春芬傻姑春芬一hr提起春芬,那可是在我们那里,真可谓是无人不知,无人不晓的名人呢!早在春芬16岁时就发生了一件惊天动地的大事。那时春芬正在上初三,正值夏天,学生们上完最后一节课,已是下陕西渭南杨宝塔原创雁南飞雁南飞又到大雁南飞时,侯鸟队队踏归途。明月皓影知我意,双双对对映成图。祈祷雨涝谷难回,出芽在自身。祈祷天公停,叹民之多辛。鹊立雨打竹林声声急,玉兰蓓蕾待开放。抬头喜鹊喜相伴,九天玄