使用zoom、overflow解决IE6、IE7、FF下嵌套容器清除浮动问题
转自:
http://blog.csdn.net/xiongyuefei/archive/2008/10/17/3093033.aspx
我们经常遇到一个容器外面套一个边框,边框高度随容器高度变化,但是当边框内容器设置了浮动属性后,外框就不跟随变化,这时就需要清除浮动。给外边框容器加上overflow:auto的属性,可以解决IE7和FF下的清除浮动问题,但是IE6下不生效,我们需要使用IE的一个私有属性zoom使IE5.5+的浏览器达到外框跟随变化的效果。
需要注意的几个细节问题,例如我们建立一个样式为text的容器,宽200象素,高度自适应,外面包一个样式为content的10象素的外框。(如图1)
图1
代码如下:
以下是引用片段:
1 2 3 4 5 6 7 8 9 | <style type= "text/css" > .content{ border : 10px solid #F00 ;} .text{ width : 200px ; height : 300px ; background : #000 ;} </style> <body bgcolor= "#FFFFFF" > <div class= "content" > <div class= "text" ></div> </div> </body> |
如果我们为text容器设置了左浮动的属性,并将content容器定义了200象素的宽,就需要为content容器增加overflow:auto属性,以清除text容器的浮动。否则FF下则会出现问题。(如图2)
图2
代码如下:
以下是引用片段:
1 2 3 4 5 6 7 8 9 | <style type= "text/css" > .content{ border : 10px solid #F00 ; width : 200px ; overflow : auto ;} .text{ width : 200px ; height : 300px ; background : #000 ; float : left ;} </style> <body bgcolor= "#FFFFFF" > <div class= "content" > <div class= "text" ></div> </div> </body> |
除此之外还有一种比较特殊的情况,如果在不设定content宽度的情况下,仅仅使用overflow:auto,在IE5.5+下是无法实现清除浮动的效果的。为此我们需要使用一个IE的私有属性zoom来使IE下达到所需效果。
代码如下:
以下是引用片段:
1 2 3 4 5 6 7 8 9 | <style type= "text/css" > .content{ border : 10px solid #F00 ; overflow : auto ; zoom: 1 ;} .text{ width : 200px ; height : 300px ; background : #000 ; float : left ;} </style> <body bgcolor= "#FFFFFF" > <div class= "content" > <div class= "text" ></div> </div> </body> |
使用链接样式模拟图片热区
如果为一副不规则图片添加区域链接,很多朋友都会考虑使用Dreamweaver的热区功能,其实如果需要添加链接的区域是规则的矩形形状,我们可以使用样式表控制链接的样式来模拟热区的效果,代码少,易于维护和修改。
例如我们要在一张400×100的背景图片上建立一个100×50大小和200×80大小的矩形热区。(如图3)
图3
代码如下:
以下是引用片段:
1 2 3 4 5 6 7 8 9 10 11 12 | <style type= "text/css" > #banner{ width : 400px ; height : 100px ; background : #959595 ;} #banner a{ float : left ;} #banner a.link 1 { width : 100px ; height : 50px ; background : #F00 ; margin : 20px 0 0 20px ;} #banner a.link 2 { width : 200px ; height : 80px ; background : #F00 ; margin : 10px 0 0 50px ;} </style> <body bgcolor= "#FFFFFF" > <div id= "banner" > <a href= "#" class= "link1" ></a> <a href= "#" class= "link2" ></a> </div> </body> |
通过这种将链接变成块属性的方法,可以方便的定义矩形热区,并通过样式控制每个区域的位置,并且代码清晰,修改方便。
使用列表实现图片排版自动更新排列
在制作图片站点的时候,经常会用到图片排版,并且最新更新的图片显示在最前面,后面依次类推。使用表格可以实现这样的效果,但是略显复杂,下面分享一下我使用列表完成的效果。
图片尺寸为100×80象素,每行3列。(如图4)
图4
代码如下:
以下是引用片段:
1 2 3 4 5 6 7 8 9 10 11 12 | <style type= "text/css" > ul{ margin : 0 ; padding : 0 0 20px 0 ; list-style : none ; width : 380px ; overflow : auto ; background : #959595 ;} ul li{ float : left ; display : inline ; width : 100px ; height : 80px ; background : #F00 ; margin : 20px 0 0 20px ;} </style> <body bgcolor= "#FFFFFF" > <ul> <li> 4 </li> <li> 3 </li> <li> 2 </li> <li> 1 </li> </ul> </body> |
这样只要每次增加一行列表,就可以完成图片的自动更新排版。这里需要大家注意两点:
一、和第一个例子讲的一样,<li>使用了浮动属性,所以<ul>需要使用overflow:auto来清除浮动;
二、示例代码中对<li>使用了display:inline属性,是为了解决IE6下左浮动双倍边距的bug,这个小技巧希望朋友们注意。
注:以上示例在IE6、IE7、FireFox浏览器下测试通过。
作者:【唐】三三
出处:https://www.cnblogs.com/tangge/archive/2011/06/11/2078454.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具