妙味课堂LOGO

图片滚动效果

另类的清除浮动方式:绝对定位、固定定位

发表人 leo | 文章分类 XHTML+CSS | 发表日期 10-01-2010

标签:, ,

10

网上流传的清除浮动有三种方式:
一:使用空标签清除浮动。
二:使用overflow属性。
三:使用after伪对象清楚浮动。

但是今天下午和王宁同学讨论CSS问题的时候,意外的发现了另一种清除浮动的可能:
父级是 绝对定位,或者是 固定定位

测试代码:
<style>
#box { width: 300px; padding: 10px; border: 1px solid #ccc;  }
#left { width: 100px; height: 100px; border: 1px solid #ccc; float: left; }
#right { width: 180px; height: 200px; border: 1px solid #ccc; float: right; }
</style>

<div id=”box”>
<div id=”left”>左侧浮动层</div>
<div id=”right”>右侧浮动层</div>
</div>

效果:

1

给父级 #box 加上固定定位、或是绝对定位:
position: absolute; /* position: fixed; */

效果:

2

最终css:

<style>
#box { width: 300px; padding: 10px; border: 1px solid #ccc; position: absolute; /* position: fixed; */ }
#left { width: 100px; height: 100px; border: 1px solid #ccc; float: left; }
#right { width: 180px; height: 200px; border: 1px solid #ccc; float: right; }
</style>

注:在 ie6、ie7、ie8、Firefox/3.5.7、Safari/4.0.4、Opera/9.50 下测试通过。

在很多时候,用 js 来调用某个层出现,无论是弹出层,亦或是鼠标移入出现层,父级都有可能是绝对定位,相比较另外三种清除浮动的优劣,这种方式近乎于无缺陷。

此外,absolute 和 fixed 这二种定位形式也可以让 内嵌元素 转换成 块级 元素

测试代码:

<span style=”border: 1px solid red; width: 100px; height: 200px; position: absolute;”>span</span>

或是:

<span style=”border: 1px solid red; width: 100px; height: 200px; position: fixed;”>span</span>


感谢王宁同学,如果没有和你一起讨论,还发现不了这个秘密(^_^)

评论数 (10)

强烈支持刘老师!~~向刘老师学习!~~做笔记 哈哈

呵呵,这是和一个学员一起讨论出来的结果,感谢大家!

好久没来了,来看看,支持!刘老师加油,期待更精彩的CSS文章.

不错·来这里学习了,
可以友情连接么?
我已经把贵站连接弄好了。
我的网站名称是:海南网站优化
网址是:http://www.taoboke.com

很强很另类

欢迎来访,感谢留言!

菜鸟级,原理是什么呢?为什么不加就是有那么点,加了,就变大了呢?

回复一米:

“菜鸟级,原理是什么呢?为什么……”——我们没有翻阅W3C文档或者深究浏览器对CSS代码的解析过程,我们只是发现了某些CSS样式设置的可能,并且能够将它应用在实际案例中。

对于CSS初学者而言,了解这些并且可以灵活应用,这就算是已经入门了。学以致用——我们更关注在工作中碰到的实际问题,并提出解决方案。

想要弄明白每一种版本的浏览器对每一句CSS代码都是如何解析渲染出来的,还是留给时间与精力都相当之充沛的同学去深究吧。

果然很有收获啊,不错的方法!

谢谢支持~~

发表评论