CSS:清除浮动的最优方法

2016-02-19 23:13 6 1 收藏

今天图老师小编给大家精心推荐个CSS:清除浮动的最优方法教程,一起来看看过程究竟如何进行吧!喜欢还请点个赞哦~

【 tulaoshi.com - Web开发 】

在CSS森林群里讨论一个margin的问题中无意间发现overflow也可以用来清除浮动,嘿嘿,这个方法不单使用简单,而且FF、OP、IE7都支持,从此可以告别那又长兼容性又差的FF清浮动的方法了。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

方法真的很简单,只要为需要清浮动的标签加上overflow这个属性。

CSS代码

ul{
list-style:none;
height:auto;
margin:0;p
adding:0;
background-color:#436973;
}
li{
float:left;
width:80px;
height:80px;
background-color:#83B1DF;
}
.demo{
clear:both;
border:1px solid #FF00FF;
margin-bottom:5px;
}
.overflow{
overflow:auto;
zoom:1;
background-color:#43FF73;
}
ul{
list-style:none;
height:auto;
margin:0;
padding:0;
background-color:#436973;
}
li{
float:left;
width:80px;
height:80px;
background-color:#83B1DF;
}
.demo{
clear:both;
border:1px solid #FF00FF;
margin-bottom:5px;
}
.overflow{
overflow:auto;
zoom:1;
background-color:#43FF73;
}

HTML代码

div class="demo"
ul class="overflow"
li1/li
li2/li
li3/li
li4/li
li5/li
li6/li
li7/li
li8/li
li9/li
/ul
/div
div class="demo"
ul
li1/li
li2/li
li3/li
li4/li
li5/li
li6/li
li7/li
li8/li
li9/li
/ul
/div

其中zoom是为了IE6准备的。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

完整的Demo

注:忘了一个很重要的内容,并不是所有的overflow属性都可起来一样的效果,比如visible属性就只能对IE起作用。例子可以看这里Demo2
这样的话就有一个问题啦,如果要有高度,而且内容超出高度的时候,定义auto或hidden都可能会有一些不想要的效果出现。这里提供一个解决方案:对于IE6及以下版本的IE,可以直接定义高度;对于IE7、FF、OP,可定义min-height。

CSS代码

overflow
{
height:auto;
_height:200px;
min-height:200px;
verflow:auto;
zoom:1;
_overflow:visible;
}

闭合浮动元素:针对firefox用overflow:auto。针对ie用*height:1%或者zoom:1。个人觉得overflow:auto少用为妙,会有些莫明其妙的问题。
最好用这个方法:

.clearfix:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
/* Hides from IE-mac */
* html .clearfix {height: 1%;}
/* End hide from IE-mac */

来源:http://www.tulaoshi.com/n/20160219/1629470.html

延伸阅读
标签: Web开发
课程关键词:清除浮动Clear 还记得第二课我们做的例子的效果么?最后效果是,红色方块和蓝色方块都处于一行,我们使用Float:left,打击了块状元素的霸道即块状元素不允许其他元素和它处于同一行。我们将红色方块的CSS代码中加入了Float:left;后,红色方块终于允许蓝色方块和它处于同一行。如图: 我们换一种方法表达上面的意思,因为红色...
标签: Web开发
CSS 使用浮动会造成布局的混乱,通常清除浮动的方法是,利用一个如下样式的空 Div: div class="clear"/div.clear{clear:both;} 更为优良的 CSS 代码是: .clear:after{content:".";display:block;height:0;clear:both;visibility:hidden;}.clear{zoom:1;} 这个方法目前已经广泛使用,淘宝、口碑,都是这种用法。通...
标签: Web开发
css浮动 结论,非浮动元素可以为后面的浮动元素定位, 但是 浮动元素无法再为其后的非浮动元素定位。 No-float A + Float B + No-float C c和b 会按照A的边界进行定位, !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" HTMLHEADTITLECSS TEST/TITLE st...
标签: Web开发
按照CSS规范,浮动元素(floats)会被移出文档流,不会影响到块状盒子的布局而只会影响内联盒子(通常是文本)的排列。因此当其高度超出包含容器时,一般父容器不会自动伸长以闭合浮动元素。但是有时我们却需要这种自动闭合行为,具体如何处理呢? 有一种做法就是在父容器内再插入一个额外的标签,并令其清除浮动(clear)以撑大父...
标签: Web开发
在CSS中我们会经常要用到“清除浮动”Clear,比较典型的就是clear:both; CSS手册上是这样说明的:该属性的值指出了不允许有浮动对象的边。这个属性是用来控制float属性在文档流的物理位置的。 当属性设置float(浮动)时,其所在的物理位置已经脱离文档流了,但是大多时候我们希望文档流能识别float(浮动),或者是希望float(浮动)后面的...

经验教程

821

收藏

20
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部