清除浮动20160331
clearboth清除浮动的原理
clearboth清除浮动的原理
Clearboth清除浮动是一种用来消除CSS样式中元素浮动带来的影响的一种方式。
它通过将元素的清除浮动属性设置为“both”来消除元素的浮动效果。
CSS元素浮动是指该元素的位置可以基于另一个元素的位置在文档布局中“浮动”。
元素的浮动是可以被控制的,可以以相对于父容器的位置放置,这样就可以使得元素在文档布局中的位置更加灵活更加精确。
但是元素的浮动也可能会引起一些问题,特别是当多个元素之间有相互作用的时候,该元素可能会超出想要的位置,或者当该元素被放置到父容器之外时。
而clearboth清除浮动可以解决这一问题。
clearboth 清除浮动的原理是:当元素的clearboth属性被设置为both时,该元素的位置就会与其他浮动元素形成一个完整的文档布局,而不会超出其容器或被其它元素遮盖。
它会使子容器重新受到父容器的影响并根据父容器的大小、位置等属性进行重新排版。
此外,clearboth清除浮动也可以用在行内元素中,因为行内元素也可以有float属性,使用clearboth属性也可以让行内元素继续使用浮动,而不影响其他行内元素的位置。
总而言之,clearboth清除浮动为CSS浮动元素提供了一种更加灵活的定位方式,并且能够解决单个元素浮动带来的复杂布局问题,让文档布局更加合理,更加精确。
几种常用的清除浮动方法
⼏种常⽤的清除浮动⽅法1、⽗级div定义伪类:after和zoom<style type="text/css">.div1{background:#000080;border:1px solid red;}.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px}.left{float:left;width:20%;height:200px;background:#DDD}.right{float:right;width:30%;height:80px;background:#DDD}/*清除浮动代码*/.clearfloat:after{display:block;clear:both;content:"";visibility:hidden;height:0}.clearfloat{zoom:1}</style><div class="div1 clearfloat"><div class="left">Left</div><div class="right">Right</div></div><div class="div2">div2</div>原理:IE8以上和⾮IE浏览器才⽀持:after,原理和⽅法2有点类似,zoom(IE转有属性)可解决ie6,ie7浮动问题优点:浏览器⽀持好,不容易出现怪问题(⽬前:⼤型⽹站都有使⽤,如:腾迅,⽹易,新浪等等)缺点:代码多,不少初学者不理解原理,要两句代码结合使⽤,才能让主流浏览器都⽀持建议:推荐使⽤,建议定义公共类,以减少CSS代码评分:★★★★☆2.在结尾处添加空div标签clear:both<style type="text/css">.div1{background:#000080;border:1px solid red}.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px}.left{float:left;width:20%;height:200px;background:#DDD}.right{float:right;width:30%;height:80px;background:#DDD}/*清除浮动代码*/.clearfloat{clear:both}</style><div class="div1"><div class="left">Left</div><div class="right">Right</div><div class="clearfloat"></div></div><div class="div2">div2</div>原理:添加⼀个空div,利⽤css提⾼的clear:both清除浮动,让⽗级div能⾃动获取到⾼度优点:简单,代码少,浏览器⽀持好,不容易出现怪问题缺点:不少初学者不理解原理;如果页⾯浮动布局多,就要增加很多空div,让⼈感觉很不爽建议:不推荐使⽤,但此⽅法是以前主要使⽤的⼀种清除浮动⽅法评分:★★★☆☆3.⽗级div定义height<style type="text/css">.div1{background:#000080;border:1px solid red;/*解决代码*/height:200px;}.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px}.left{float:left;width:20%;height:200px;background:#DDD}.right{float:right;width:30%;height:80px;background:#DDD}</style><div class="div1"><div class="left">Left</div><div class="right">Right</div></div><div class="div2">div2</div>原理:⽗级div⼿动定义height,就解决了⽗级div⽆法⾃动获取到⾼度的问题优点:简单,代码少,容易掌握缺点:只适合⾼度固定的布局,要给出精确的⾼度,如果⾼度和⽗级div不⼀样时,会产⽣问题建议:不推荐使⽤,只建议⾼度固定的布局时使⽤评分:★★☆☆☆4.⽗级div定义overflow:hidden<style type="text/css">.div1{background:#000080;border:1px solid red;/*解决代码*/width:98%;overflow:hidden}.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px;width:98%}.left{float:left;width:20%;height:200px;background:#DDD}.right{float:right;width:30%;height:80px;background:#DDD}</style><div class="div1"><div class="left">Left</div><div class="right">Right</div></div><div class="div2">div2</div>原理:必须定义width或zoom:1,同时不能定义height,使⽤overflow:hidden时,浏览器会⾃动检查浮动区域的⾼度优点:简单,代码少,浏览器⽀持好缺点:不能和position配合使⽤,因为超出的尺⼨的会被隐藏建议:只推荐没有使⽤position或对overflow:hidden理解⽐较深的朋友使⽤评分:★★★☆☆5.⽗级div定义overflow:auto<style type="text/css">.div1{background:#000080;border:1px solid red;/*解决代码*/width:98%;overflow:auto}.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px;width:98%}.left{float:left;width:20%;height:200px;background:#DDD}.right{float:right;width:30%;height:80px;background:#DDD}</style><div class="div1"><div class="left">Left</div><div class="right">Right</div></div><div class="div2">div2</div>原理:必须定义width或zoom:1,同时不能定义height,使⽤overflow:auto时,浏览器会⾃动检查浮动区域的⾼度优点:简单,代码少,浏览器⽀持好缺点:内部宽⾼超过⽗级div时,会出现滚动条。
清除浮动的5种方法
清除浮动的5种⽅法清除浮动⽅法.fix{*zoom:1}.fix:after{display:block; content:"clear"; height:0; clear:both; overflow:hidden; visibility:hidden;}⽅法⼀:使⽤带clear属性的空元素在浮动元素后使⽤⼀个空元素如<div class="clear"></div>,并在CSS中赋予.clear{clear:both;}属性即可清理浮动。
亦可使⽤<br class="clear" />或<hr class="clear" />来进⾏清理。
优点:简单,代码少,浏览器兼容性好。
缺点:需要添加⼤量⽆语义的html元素,代码不够优雅,后期不容易维护。
⽅法⼆:使⽤CSS的overflow属性给浮动元素的容器添加overflow:hidden;或overflow:auto;可以清除浮动,另外在 IE6 中还需要触发 hasLayout ,例如为⽗元素设置容器宽⾼或设置 zoom:1。
在添加overflow属性后,浮动元素⼜回到了容器层,把容器⾼度撑起,达到了清理浮动的效果。
⽅法三:给浮动的元素的容器添加浮动给浮动元素的容器也添加上浮动属性即可清除内部浮动,但是这样会使其整体浮动,影响布局,不推荐使⽤。
⽅法四:使⽤邻接元素处理什么都不做,给浮动元素后⾯的元素添加clear属性。
⽅法五:使⽤CSS的:after伪元素结合 :after 伪元素(注意这不是伪类,⽽是伪元素,代表⼀个元素之后最近的元素)和 IEhack ,可以完美兼容当前主流的各⼤浏览器,这⾥的 IEhack 指的是触发 hasLayout。
给浮动元素的容器添加⼀个clearfix的class,然后给这个class添加⼀个:after伪元素实现元素末尾添加⼀个看不见的块元素(Block element)清理浮动。
HTML清除浮动的其中两种方式
HTML清除浮动的其中两种⽅式⼀、清除浮动的⽅式⼀给前⾯⼀个⽗元素设置⾼度,注意:企业开发中能不写⾼度就不写⾼度<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>D131_ClearFloat</title><style>.smallbox1{width:100px;height:100px;background-color: red;boder:3px solid black;margin:5px;float:right;}.smallbox2{width:100px;height:100px;background-color: red;boder:3px solid black;margin:5px;}.smallbox3{width:100px;height:100px;background-color: red;boder:3px solid black;margin:5px;}.smallbox4{width:100px;height:100px;background-color: red;boder:3px solid black;margin:5px;}.smallbox5{width:100px;height:100px;background-color: red;boder:3px solid black;margin:5px;}.smallbox6{width:100px;height:100px;background-color: red;boder:3px solid black;margin:5px;}.bigbox1,.bigbox2{/*width:400px;*//*width:400px;*/background-color: green;border:3px black solid;}</style></head><body><div class="bigbox1"><div class="smallbox1"></div><div class="smallbox2"></div><div class="smallbox3"></div></div><div class="bigbox2"><div class="smallbox4"></div><div class="smallbox5"></div><div class="smallbox6"></div></div></body></html>⼆、清除浮动的第⼆种⽅式给后⾯的属性添加clear属性clear属性取值:none:默认取值,按照浮动元素的排序规则进⾏排序(左浮动找左浮动,右浮动找右浮动)left:不要找前⾯的左浮动元素right:不要找前⾯的右浮动元素both:不要找前⾯的左浮动和有浮动元素例如:我们不设置⼤盒⼦的宽⾼,⼩盒⼦会把⼤盒⼦撑起来,但是两个⼤盒⼦会因此⽽在⼀⾏上.smallbox1{width:100px;height: 100px;float:left;background-color: red;border:2px solid black;}.smallbox2{width:100px;height: 100px;float:left;background-color: red;border:2px solid black;}.smallbox3{width:100px;height: 100px;float:left;background-color:blue;border:2px solid black;}.smallbox4{width:100px;height: 100px;float:left;background-color: blue;border:2px solid black;}</style></head><body><div class="bigbox1"><div class="smallbox1"></div><div class="smallbox2"></div></div><div class="bigbox2"><div class="smallbox3"></div><div class="smallbox4"></div></div></body>我们使⽤clear属性在第三个⼩盒⼦上,这样就可以另起⼀⾏了(第四个就不⽤,因为我们就想让第三个挨着第四个),只需要第三个⼩盒⼦的代码修改代码.smallbox3{clear:left;width:100px;height: 100px;float:left;background-color:blue;border:2px solid black;}注意点:margin属性失效了,不失效的⽅式我们下次再说。
清除浮动的几种方法
清除浮动的几种方法在网页设计中,浮动是一种常见的布局方式,可以实现元素的左右浮动,使得页面排版更加灵活多样。
但是,浮动元素可能会导致一些布局问题,如父元素高度塌陷、重叠覆盖等。
因此,清除浮动就成为了网页设计中一个需要重点关注的问题。
本文将介绍几种清除浮动的方法,希望能够帮助大家更好地解决相关的布局难题。
一、使用clear属性清除浮动。
clear属性是一种常见的清除浮动的方法,通过在父元素中添加clear属性,可以清除浮动元素对父元素的影响。
clear属性有left、right、both三个值,分别表示清除左浮动、右浮动和两者的浮动。
例如,可以在父元素的样式表中添加clear:both,来清除浮动元素对父元素的影响。
二、使用overflow属性清除浮动。
overflow属性也是一种常见的清除浮动的方法,通过在父元素中添加overflow属性,可以清除浮动元素对父元素的影响。
可以给父元素添加overflow:hidden或overflow:auto来实现清除浮动的效果。
这种方法的好处是不需要添加额外的标签,只需在父元素的样式表中添加overflow属性即可。
三、使用after伪元素清除浮动。
在CSS3中,可以使用after伪元素来清除浮动。
通过在父元素中添加一个空的after伪元素,并设置clear:both,可以清除浮动元素对父元素的影响。
这种方法不会增加额外的标签,对页面结构影响较小,是一种比较便捷的清除浮动的方法。
四、使用clearfix类清除浮动。
clearfix类是一种常见的清除浮动的方法,通过在父元素中添加一个clearfix类,可以清除浮动元素对父元素的影响。
可以在样式表中定义clearfix类,设置clear:both,然后在需要清除浮动的父元素中添加该类即可实现清除浮动的效果。
这种方法的好处是可以在需要清除浮动的地方灵活添加和删除clearfix类,对页面布局影响较小。
总结。
清除浮动是网页设计中一个需要重点关注的问题,本文介绍了几种常见的清除浮动的方法,包括使用clear属性、overflow属性、after伪元素和clearfix类。
如何清除浏览器浮动广告
相信许多人和我一样曾为此问题所困扰,当用户们浏览网页的时候,网页总是会出现一些不明的浮动广告和浮动图片,关掉之后又会自动弹出来,甚至于根本就关不掉影响用户操作,那么有没有什么好的方法可以解决这个问题呢?
如图:
这一类牛皮藓似的广告搞得我很心烦。
学过网页制作的应该懂得源代码:
以我的360浏览器为例:
可以从源代码查看那里入手,找到对应的设置,找到联盟渠道(吐槽下,特别是百度商盟,特恶心)这些超链接,改为禁用状态,如果是精通这方面的就知道怎么做了。
(不多讲)
不懂的话,还可以用另一种更简洁的方法。
1、还是以360为例:
总之很简单,按操作就行。
2、其他的浏览器,如IE:
注意:当然,如果你选用这个方法禁用广告,因为是禁用脚本命令,那么下一次你打
开某些需要脚本的网页可能会打不开。
这个方法的确是最有效的,但是那也是要付出代价的。
如果你还是不明白,建议到相应的浏览器商店下载所属浏览器的广告拦截插件,一个小插件而已,不适用就删了,不要乱禁用自己电脑上的一些东西。
去除浮动水印的方法
去除浮动水印的方法
浮动水印是指一种随着鼠标移动而跟随移动的水印,通常出现在网页上。
虽然这种水印看起来很酷,但有时它可能会干扰用户的浏览体验。
如果您想去除浮动水印,可以通过以下方法实现:
1. 使用浏览器插件。
许多浏览器插件可以帮助您去除网页上的浮动水印。
例如,Chrome浏览器有一个名为“Kill Sticky Headers”插件,可以帮助您去除网页上的所有浮动水印。
2. 使用CSS。
如果您对CSS有一定的了解,您可以使用CSS来隐藏或删除网页上的浮动水印。
例如,可以使用以下代码隐藏浮动水印:
.floating-watermark {
display: none;
}
3. 使用开发者工具。
大多数现代浏览器都带有开发者工具,可以让您查看和编辑网页的源代码。
使用这些工具,您可以找到浮动水印的HTML代码,并将其删除或修改。
4. 联系网站管理员。
如果您无法通过自己的努力去除浮动水印,您可以尝试联系网站管理员并请求他们将其删除。
如果您认为浮动水印违反了您的版权或隐私权,您可以在必要时采取法律措施。
总之,去除浮动水印并不难,只需要一些技巧和耐心。
无论您采取何种方法,确保您的操作不会影响网页的其他部分,并且遵守网站的规定和法律法规。
清除浮动有哪几种方法
清除浮动有哪⼏种⽅法清除浮动的⽬的:为了解决⽗级元素因为⼦级浮动引起的内部⾼度为零的问题清除浮动的⽅法(最常⽤的4种):1、额外标签法(在最后⼀个浮动标签后,新加⼀个标签,给其设置clear:both;)(不推荐)原因:如果我们清除了浮动,⽗元素⾃动检测⼦盒⼦最⾼的⾼度,然后与其同⾼。
优点:通俗易懂,⽅便缺点:添加⽆意义标签,语义化差2、⽗级添加overflow属性(⽗元素添加overflow:hidden)(不推荐)-->通过触发BFC⽅式,实现清除浮动优点:代码简洁缺点:内容增多的时候容易造成不会⾃动换⾏导致内容被隐藏掉,⽆法显⽰要溢出的元素3、使⽤after伪元素清除浮动(推荐使⽤).clearfix:after {content: ".";/* 内容为⼩点,尽量加不要为空,否则旧版本的浏览器有空隙*/display: block;/* 转换为块元素*/height: 0;/* ⾼度为零*/visibility: hidden;/* 隐藏盒⼦*/clear: both;/* 清除浮动*/}.clearfix {*zoom: 1;/*兼容ie6/7*/}优点:符合闭合浮动思想,结构语义化正确缺点:ie6-7不⽀持伪元素:after,使⽤zoom:1触发hasLayout.4、使⽤before和after双伪元素清除浮动(强烈推荐使⽤).clearfix:before, .clearfix:after {content: "";display: table;}.clearfix:after {clear: both}.clearfix {*zoom: 1;/*兼容ie6/7*/}优点:代码更简洁缺点:⽤zoom:1触发hasLayout.。
浮动的清除--四种方法
浮动的清除--四种⽅法浮动的清除 -- 四种⽅法前⾔ -- ⼀个⽗亲不能被⾃⼰浮动的⼉⼦,撑出⾼度。
开胃⼩菜来看⼀个实验:现在有两个div,div⾝上没有任何属性。
每个div中都有li,这些li都是浮动的。
我们本以为这些li,会分为两排,但是,第⼆组中的第1个li,去贴靠第⼀组中的最后⼀个li了。
第⼆个div中的li,去贴第⼀个div中最后⼀个li的边了。
原因就是因为div没有⾼度,不能给⾃⼰浮动的孩⼦们,⼀个容器。
清除浮动⽅法1:给浮动的元素的祖先元素加上⾼度如果⼀个元素要浮动,那么它的祖先元素⼀定要有⾼度.⾼度的盒⼦,才能关住浮动只要浮动在⼀个有⾼度的盒⼦中,那么这个浮动就不会影响后⾯的浮动元素.所以就是清除浮动带来的影响了.清除浮动的⽅法2:clear:both;⽹页制作中,⾼度height很少出现.为什么?因为能被内容撑⾼!那么也就是说,刚才我们讲解的⽅法1,⼯作中⽤的极少.clear:both; clear就是清除,both指的是左浮动,右浮动都要清除.意思就是:清除别⼈对我的影响.这个⽅法有⼀个⾮常⼤的,并且致命的问题,margin失效了!清除浮动⽅法3:隔墙法与内墙法隔墙法该⽅法通过div.cl h16这堵墙将两个⽗类分隔,弥补了clear:both⽅法中margin⽆效的情况,可以通过设置墙的⾼度来控制间隙弊端:⽹页渲染后,两个分隔的⽗类不会有⾼度内墙法顾名思义,将墙修在了⽗类⾥⾯清除浮动⽅法4:overflow:hidden;overflow:hidden;的本意是将超出⽗类的部分隐藏⼀个⽗亲不能被⾃⼰浮动的⼉⼦,撑出⾼度。
但是,只要给⽗亲加上overflow:hidden; 那么,⽗亲就能被⼉⼦撑出⾼了。
这是⼀个偏⽅清除浮动的最后总结1)加⾼法:浮动的元素,只能被有⾼度的盒⼦关住。
也就是说,如果盒⼦内部有浮动,这个盒⼦有⾼,那么妥妥的,浮动不会互相影响。
但是,⼯作上,我们绝对不会给所有的盒⼦加⾼度,这是因为⿇烦,并且不能适应页⾯的快速变化。
前端清除浮动的方法
前端清除浮动的方法清除浮动是前端开发中常见的问题,下面列举了50种前端清除浮动的方法,并为每种方法进行详细描述。
1. 使用空 div 清除浮动在浮动元素后增加一个空的 div 标签,设置 clear:both,来清除浮动。
2. 使用clearfix 类清除浮动在父元素上定义一个类clearfix,设置 clear:both,然后将该类应用到需要清除浮动的父元素上。
3. 使用overflow: auto 清除浮动在父元素上设置 overflow: auto,使其创建一个包含块来清除浮动。
4. 使用overflow: hidden 清除浮动在父元素上设置 overflow: hidden,使其创建一个包含块来清除浮动。
5. 使用:after 伪元素清除浮动在父元素上使用:after 伪元素,设置 content: '', display:block, clear:both来清除浮动。
6. 使用:before 和:after 伪元素清除浮动在父元素上使用:before 和:after 伪元素,设置 content: '', display:table, clear:both来清除浮动。
7. 使用 clearfix 插件清除浮动可以使用一些现成的 clearfix 插件或者库来方便地清除浮动,比如 Bootstrap 提供的 .clearfix 类。
8. 使用父容器添加 overflow: hidden 清除浮动在父容器上添加 overflow: hidden,来清除浮动。
9. 使用父容器添加 display: table 清除浮动在父容器上添加 display: table,来清除浮动。
10. 使用 BFC(Block Formatting Context)清除浮动在父元素上创建 BFC,可以通过一些方式实现,如设置 float、position:absolute、display:table、display: inline-block 等。
为什么要清除浮动,什么时候清除浮动,怎样清除浮动?
为什么要清除浮动,什么时候清除浮动,怎样清除浮动?
为什么要清除浮动,什么时候该清除浮动:
情况⼀ : 当容器的⾼度未定,且容器内有浮动的元素,在这种情况下,容器的⾼度不能⾃动伸长以适应内容的⾼度,使得内容溢出到容器外⽽影响布局。
此时应该清除浮动。
情况⼆ : 当浮动元素应占据的位置被未浮动元素占据,从⽽影响布局的情况下,应该清楚浮动元素的浮动,使其占据应有位置。
情况三 : 元素浮动后,就不在整个⽂档流的管辖范围了,那么它之前所存在的⽗容器的空间就不存在了,⽽此时⽗元素就会认为⾃⼰⾥⾯没有任何内容,于是,⽗容器则没有⾼度,从⽽影响页⾯布局。
(同情况⼀)
如何清除浮动?
别着急,现在企业⾥⾯采⽤的清除浮动⽅法综合法,⼜名内墙法2.0
.元素的类名 :after{
content:”.”;
display:block;
clear:both;
height:0;
overflow:hidden;
visibility:hidden;
}
给浮动塌陷的盒⼦添加⼀个:after伪类
这种⽅法在各个⼤型项⽬上都有出现过,可谓清除浮动的万⾦油呀!。
清除浮动的方法大盘点
清除浮动的方法大盘点摘要:一、引言二、清除浮动的方法概述1.清除浮动的作用2.清除浮动的方法分类三、常见清除浮动方法详解1.使用额外DIV包裹2.使用BFC(Block Formatting Context)3.使用浮动元素父级设置清除浮动4.使用CSS清除浮动5.使用JavaScript清除浮动四、方法优缺点对比1.额外DIV包裹优点:简单易懂,兼容性较好缺点:增加HTML结构复杂度,可能导致页面加载速度变慢2.BFC优点:兼容性较好,适用于各种场景缺点:复杂度较高,不易理解3.浮动元素父级设置优点:简单易懂,兼容性较好缺点:可能导致父级元素高度塌陷4.CSS清除浮动优点:代码简洁,兼容性较好缺点:对开发者要求较高,不易初学者掌握5.JavaScript清除浮动优点:兼容性较好,可自定义触发条件缺点:复杂度较高,对开发者要求较高五、总结正文:一、引言在网页开发过程中,清除浮动是一个常见问题。
浮动元素在页面布局中具有重要作用,但有时也会给我们带来困扰。
本文将介绍多种清除浮动的方法,帮助大家解决这一问题。
二、清除浮动的方法概述1.清除浮动的作用在网页布局中,浮动元素会导致父级元素高度塌陷,影响页面布局效果。
清除浮动的目的就是防止父级元素高度塌陷,使页面布局更加完整。
2.清除浮动的方法分类本文将介绍以下五种清除浮动的方法:1) 使用额外DIV包裹2) 使用BFC(Block Formatting Context)3) 使用浮动元素父级设置清除浮动4) 使用CSS清除浮动5) 使用JavaScript清除浮动三、常见清除浮动方法详解1.使用额外DIV包裹做法:在浮动元素外面添加一个额外的DIV,设置该DIV为清除浮动。
优点:简单易懂,兼容性较好。
缺点:增加HTML结构复杂度,可能导致页面加载速度变慢。
2.使用BFC(Block Formatting Context)做法:设置父级元素为BFC,或者利用BFC的特性创建一个新的BFC。
清除浮动的五种方法
清除浮动的五种⽅法前提:⼀个⽗元素div_p,⾥⾯包含两个⼦元素div_01,div_02;外⾯还有⼀个div_add; <div class="class_p"> <div class="class_01"></div> <div class="class_02"></div></div><div class="add"></div>如果不设置div_p的⾼度,下⾯的div add会浮上去,如何解决?1,给⽗元素定⾼:.class_p{ height:300px;}2,增加额外的标签:给div_p⾥⾯再增加⼀个⼦元素(div标签)class_03设置属性.class_03 { clear:both;}即可清除浮动3,使⽤:after伪元素:给div_p增加⼀个class—clearFloat,设置它的伪类.clearFloat:after{ content:''; display:block; clear:both;}//兼容IE:.clearFloat{zoom:1;}4,利⽤overflow属性:设置⽗元素的overflow属性.class_p{ overflow:hidden; zoom:1 //设置zoom是为了兼容IE}5,⽗元素浮动:并且需要在外⾯再加⼀个div(clearFloat),<div class="class_p"><div class="class_01"></div><div class="class_02"></div></div><div class="clearFloat"></div> //额外添加的div<div class="add"></div>.class_p{ float:left;}.clearFloat:after{ content:''; display:block; clear:both;}.clearFloat{ zoom:1; //设置zoom是为了兼容IE}//感觉这样更⿇烦了,但也是⼀种解决办法。
清除浮动的四种方式及其原理理解
清除浮动的四种⽅式及其原理理解 本⽂介绍了四种清除浮动的⽅法,并尝试解释其原理。
在理解了各种清除浮动的原理之后,你会发现,很多清除浮动的⽅法本质上其实是⼀样的。
掌握这些原理,相信你可以根据场景和需求,灵活运⽤原则发展出不同的清除浮动的⽅法,⽽不再死记或拘泥于⽂中提到的⽅法。
⼀、为什么要清除浮动 在讲清除浮动的⽅法之前,我们先来了解⼀下为什么要清除浮动,清除浮动的⽬的是什么,即,要解决什么样的问题。
来看⼀个浮动的例⼦(略去了⽂字内容): <div class="topDiv"><div class="floatDiv">float left</div><div class="textDiv">...</div></div><div class="bottomDiv">...</div> 其样式为:.topDiv {width: 500px;border: 2px solid black;}.floatDiv {width: 100px;height: 100px;border: 2px dotted red;color: red;margin: 4px;float: left;}.bottomDiv {width: 500px;height: 100px;margin: 5px 0;border: 2px dotted black;}.textDiv {color: blue;border: 2px solid blue;} 在chrome中渲染的效果如下图所⽰:浮动效果这肯定不是我们想要的渲染效果,它可能存在如下问题:1. ⽂字围绕浮动元素排版,但我们可能希望⽂字(.textDiv)排列在浮动元素下⽅,或者,我们并不希望.textDiv两边有浮动元素存在。
css中清除浮动的方法
css中清除浮动的方法在网页开发中,清除浮动是一个非常重要的任务。
浮动元素可以让页面布局更加灵活,但是如果浮动没有被正确清除,会导致很多排版问题。
本文将介绍几种清除浮动的方法,并提供一些实用的技巧。
以下是需要掌握的内容:1. 什么是浮动2. 浮动元素对页面排版的影响3. 清除浮动的方法4. 清除浮动的技巧一、什么是浮动?在网页中,浮动(float)指的是一个元素沿着其容器的左侧或右侧移动,直到碰到边缘或碰到另外一个浮动元素为止。
通过浮动,我们可以实现网页中图片环绕文字等效果。
二、浮动元素对页面排版的影响浮动元素对页面排版有着深远的影响,它可以让元素脱离文档流,从而引起以下问题:1. 父元素高度塌陷当一个元素浮动之后,它将从父元素的文档流中脱离出来。
这样就会导致父元素的高度无法通过子元素自动撑开。
如果不清除浮动,就会导致父元素的高度塌陷。
2. 相邻元素重叠浮动元素在页面中移动时,有可能会出现和其他元素重叠的情况。
这种情况在多列布局中尤其常见。
三、清除浮动的方法为了解决浮动带来的问题,我们需要清除浮动。
下面是几种常见的清除浮动方法:1. clear属性clear属性是最简单、最直接的清除浮动方法。
通过设定清除属性,可以使下一个元素脱离当前浮动元素的影响,从而使页面布局更加稳定。
清除浮动的代码如下:```css.clearfix::after{content:"";clear:both;display:block;height:0;visibility:hidden;}```2. 父元素添加overflow属性在父元素中添加overflow属性也可以清除浮动。
因为父元素中的浮动子元素会影响其高度的计算,因此添加overflow属性可以强制父元素重新计算自身高度。
清除浮动的代码如下:```cssoverflow: auto;}```3. 使用BFCBFC(块级格式化上下文)可以解决浮动带来的很多问题。
清除浮动的四种方法
清除浮动的四种方法清除浮动的四种方法,分别为:1. 使用一个空的div元素来清除浮动。
在浮动元素的后面插入一个空的div,并为其添加一个样式clear:both。
这样可以确保该div被浮动元素的影响清除掉。
```html<div style="clear:both;"></div>```2. 使用clearfix类来清除浮动。
通过给包含浮动元素的父元素添加clearfix类,并为该类添加一个样式clear:both,可以清除其中的浮动。
```html<div class="clearfix"></div><style>.clearfix:after {content: "";display: table;clear: both;}</style>```3. 使用overflow属性来清除浮动。
给包含浮动元素的父元素设置overflow:hidden或overflow:auto属性,可以触发BFC(块级格式化上下文),从而清除浮动。
```html<div style="overflow:hidden;"></div>```4. 使用float属性来清除浮动。
给浮动元素的后续元素设置float属性,将其也浮动起来,可以清除之前的浮动。
```html<div style="float:left;"></div><div style="float:left;"></div><div style="float:none;"></div>```以上是四种常用的清除浮动的方法,可以根据具体需求选择使用哪种方法。
css_清除浮动的4种方式
.cc:after, .cc:before {
content: ""; display: block; clear: both; }
的方式达到效果只是变相的使用了伪类after使得页面结构更简洁也是常用的清理浮动的方式
css_清除浮动的 4种方式
浮动布局和定位布局为css中布局的常用的两种布局方式,而且兼容性会比较好。随着flex的流行,以后会Байду номын сангаас主流,新的东西好用,兼容不太 好。IE10以下不兼容flex布局。
float布局会脱离文档流,对页面的布局造成影响,比如造成父级的高度坍塌等问题。清除浮动后,便不会影响文档流。下面介绍一下现在清 除浮动的一些方式。
<style type="text/css"> li { list-style: none; height: 100px; width: 100px; float: left; background: red; margin-left: 20px; }
.cc:after { content: ''; height: 0; line-height: 0;
display: block; visibility: hidden; clear: both; } ul{ background: pink; } </style> <ul class="cc"> <li></li> <li></li> </ul>
清除浮动(clearfix和clear)的用法示例介绍-电脑资料
清除浮动(clearfix和clear)的用法示例介绍-电脑资料如何在 html 中使用 clearfix 和 clear,针对那些刚开始了解 css 的童鞋,下面通过示例为大家介绍下这两个class 的用法本文主要是讲解如何在 html 中使用 clearfix 和 clear,针对那些刚开始了解 css 的童鞋,。
关于 clearfix 和 clear 的样式在这里我就不写了。
下面就谈谈对于这两个 class 的用法,首先我们先看个例子:复制代码代码如下:我们都知道使用浮动会产生很多未知的问题,通过上面的例子我们可以发现class="demo" 的高度并没有被里面的div 给撑开,这是因为里面的 div 产生浮动而脱离了该文档,因为 demo 本身没有高度,所以我们看不到它的灰色背景。
当然只要给demo 一个高度就行了,但是这就脱离了本文的目的(有时我们希望外层div 的高度由里面的内容来决定),电脑资料《清除浮动(clearfix 和 clear)的用法示例介绍》(https://www.)。
既然是浮动产生的问题,那么只要清除浮动就可以了,相信高手们有很多清除浮动的方法,比如overflow:hidden。
下面我将介绍用clearfix 和 clear 来清除浮动。
复制代码代码如下:用 clear 清除浮动用 clearfix 清除浮动我们发现,clearfix 主要是用在浮动层的父层,而 clear 主要是用在浮动层与浮动层之间,和浮动层同一级,如果想要撑开父层的高度,clear 就要放在最后。
很难说明这两个方法哪个更好,只能说具体需求具体对待。
也许有人会问,clearfix 的样式这样写为什么会清除浮动?这些样式都有什么意义?这需要童鞋们对 css 的伪类有一定的了解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
清除浮动的各种方法总结
很多人都有研究闭合浮动元素的问题,但是解决方法却不一样,也并不是每一种方法都尽善尽美。
闭合浮动元素(或者叫清除浮动)是web标准设计中经
常会遇到的一个问题,因此,这里我想总结一下目前经常用到的几种方法,并比较一下他们的易用性和适用环境。
如果你有更好的方法不妨提出来大家一起讨论。
一、问题的提出:
最简单的一种情形就是我们把一个小的、固定宽度的div元素(比如导航、引用等)和其他元素内容一起包含在一个大的div中。
比如下面这段代码:<div id="outer">
<div id="inner"><h2>A Column</h2></div>
<h1>Main Content</h1>
<p>Lorem ipsum</p>
</div>
我们可以为“#inner”设定一个宽度值(比如说20%),但是由于div是块级元素,即使我们设定了宽度,其后面的内容也只能在下一行中显示,除非我们给它设定一个浮动属性(无论是向左浮动或者向右浮动)。
那么此时会产生我们上面提到的问题了。
如果“#inner”的宽度和高度都比“#outer”小,这不会有问题。
但是,如果“#inner”的高度超过了“#outer”,那么的底部就会超出“#outer”的底部。
这是因为我们为“#inner”设定了float属性后,它就会脱离的文本流,无论其宽度和高度怎么变化都不会使“#outer”跟随变化。
例一:未清除浮动时的布局表现
在这个例子中,最开始由于“#inner”的高度小于“#outer”所以不会有问题,但是当你点击“加长”后你会发现“#inner”的底边已经超出了“#outer”
的范围,而“#outer”没有发生改变。
这就是我们所提到的“清除浮动(闭合浮动元素)”或者是“闭合浮动”问题
二、解决办法:
(1)额外标签法
第一个,也是W3C推荐的方法就是使用额外标签的办法。
这种方法就是在内容的末尾增加一个空的标签,典型的做法就是使用类似
<br style="clear:both;" />
或者使用
<div style="clear:both;"></div>
这种办法通过增加一个HTML元素迫使外部容器撑开。
不过这个办法会增加额外的标签使HTML结构看起来不够简洁。
例二:使用空div闭合浮动元素
我发现在Internet Explorer中(无论是6还是7)<br style="clear:both" />可以清除浮动,但是不能闭合浮动元素,在Firefox中就没有这个问题,不知道是什么原因?!
(2)使用after伪类
使用after伪类和内容声明在指定的现在内容末尾添加新的内容。
经常的做法就是添加一个“点”,因为它比较小不太引人注意。
然后我们再利用它来清除浮动(闭合浮动元素),并隐藏这个内容:
#outer:after{
content:".";
height:0;
visibility:hidden;
display:block;
clear:both;
}
但奇怪的是Windows中的Internet Explorer 6及以下版本并不支持CSS 2.1中的after伪类而Mac中的Internet Explorer却可以正常使用,所以我们还要单独针对Win/IE进行处理。
在区分Win和Mac中Internet Explorer的诸多方法中,最常用就是Holly招数。
Holly招数的原理是这样的,CSS代码
/* 这段代码只有IE/Win可以看见\*/
CSS 规则
/* 结束Hack */
上面的代码中有两行注释,其中第一行结束时出现了反斜杠(\),在Mac 的Internet Explorer中会认为注释并没有结束,于是继续向下直到第一个完事的“*/”出现,这中间的所有字符都被当作是注释,而IE/Win却也只会把第一行和第三行看作是注释,中间的为有效代码。
所以这样就区分出来了不同平台上的IE了。
正是基于以上原理,在windows的IE 6上的清理浮动,可以使用如下代码:#outer {
display:inline-block;
}
/* Holly Hack Begine \*/
* html #outer {
height:1%;
}
#outer {
display:block;
}
/* End Hack */
例三:使用:after伪类清理浮动
如果你不考虑IE6/Mac用户的话你只需要写* html #outer {height:1%;}即可。
另外,似乎在Internet Explorer 7中不高display:inline-block也不好使。
因此要使用最完整的Hack招数。
3)浮动外部元素,float-in-float
这种方法很简单,就是把“#outer”元素也进行浮动(向左或者向右)。
但是这种方法带来的别外一个问题就是和“#outer”相邻的下一个元素会受到“#outer”的影响位置会产生变化,所以使用这种方法一定要小心。
有选择把页面中的所有元素都浮动起来,最后使用一个适当的有意义的元素(比如页脚)进行清理浮动,这有助于减少不必要的标记,但是过多的浮动会增加布局的难度。
例四:float-in-float
4)设置overflow为hidden或者auto
把“#outer”的属性overflow值设置为hidden或者auto同样可以清理浮动
这种方法不需要添加额外的标记。
但是使用overflow的时候一定要小心,
因为它会影响浏览器的表现。
另外,在Internet Explorer 6中单纯地设置overflow 为hidden或者auto并不能有效清除浮动(闭合浮动元素),还要指定“#outer”的一个维度,即要么给它指定一个宽度,要么指定一个高度:
#outer {
overflow:auto;
width:100%;
}
注意:如果你要在IE5/Mac上使用这种方法清除浮动(闭合浮动元素)的话,你就必须设定overflow的属性为值为hidden。
二、比较与选择
四种方法中使用哪种最好呢?首先,不推荐使用after伪类,对比其它三种
方法,holly招数有点太烦琐,不好掌握,我上面讲到的holly招数中并不仅仅是
IE/Win上有问题,当出现:hover时还会有其它问题,所以我们又加上了
inline-block等属性,也就是说这种方法存在更多的不确定性。
推荐对代码有“洁癖”并且技术较高的人使用。
那么其它三种方法其实都可以考虑。
不过使用overflow的时候,可能会对页面表现带来影响,而且这种影响是不确定的,你最好是能在多个浏览器上测试你的页面;
而对于使用额外标签清除浮动(闭合浮动元素),是W3C推荐的做法。
至于使用<br />元素还是空<div></div>可以根据自己的喜好来选(当然你也可以使用其它块级元素)。
不过要注意的是,<br />本身是有表现的,它会多出一个换行出来,所以要设定它的heigh为0,以隐藏它的表现。
所以大多数情况下使用空<div>比较合适。
float-in-float,也是一个很好的选择,把你要进行清理浮动的元素外层再加上一层<div>并设置属性fload:left即可,不过要注意相邻元素的变化。