我们在使用float进行布局设计时经常会遇到这样的困扰

当包围容器下的元素全部是浮动元素时,包围容器不能在视觉上包围子元素。

这是因为浮动元素脱离了文档流,所以包围容器也不占据空间。对于此我们常用的方法是使用overflow进行处理,当然也可以用clear。
来看一下overflow的几个用法:

一、overflow的用法
1、清理float

我们可以使用overflow:heddden 或者overflow:auto 来清理浮动元素。

.wrapper{
    overflow:auto;
}
2、防止文字环绕图片 demo

overflow还能起到防止文字环绕图片的效果。假设我们想实现这样的效果:左边是头像,右边是bio。这儿就可以使用overflow来实现这样的效果

.bio{
    overflow:auto;
}
二、overflow的缺陷及补救
1、overflow的缺陷 Demo

overflow虽然用起来很顺手,但是它也有其缺陷。当浮动元素的宽度超过包围元素的宽度时(如出现长网址或者大图片),就会出现异常。

1、overflow:auto:当浮动元素的宽度超过包围元素的宽度时,就会出现滚动条。
2、overflow:hidden:当浮动元素的宽度超过包围元素的宽度时,hidden导致内容丢失。

2、缺陷的补救 Demo

1、使用word-wrap强制断词换行

.container {
	word-wrap: break-word;
}

2、设置max-width防止图片超出范围.

.container img {
	max-width: 100%;
	height: auto;
}

update 2011-03-12

感谢飘流同学的提醒,IE6及其以下中不支持max-width,对overflow支持也有问题,不过可以用_width或JS解决。

//===============================================


Tags: . 1,299 人浏览
首页

5 Comments so far

Trackbacks/Pingbacks

留下评论

名称(必需)
Mail (必需),(will not be published)
网站(recommended)