您的位置: 首页 > 技术文档 > 网页制作 > OverFlow:一个秘密武器
div、section、article 的区别 回到列表 CSS3 target伪类简介
 OverFlow:一个秘密武器

作者:皮皮兔 时间: 2011-02-21 文档类型:翻译 来自:css9.net

如果你已经理解了block formatting contexts那么请继续,否则请先看看这篇文章

Overflow能够做一些很牛掰的事情,比如:

  • 创建BFC (block formatting contexts via W3c css2.1)
  • 清除浮动

生成块级元素

overflow属性一旦被指定,那么一个新的BFC就被创建了。这意味着什么呢?它改变了block和浮动元素的交互方式。它不再围绕浮动元素,而是变成一个narrower。

[P没有用overflow]你可以把一个页面想象成大的集装箱,这个集装箱里装的货物就是HTML元素。在现实生活中为了避免 不同人的货物相互混淆,都是把货物打好包装再装入集装箱,这样的话无论你包装里面的货物怎么摆放,都不会影响到其他人的货物。

 

[P有用overflow:hidden]你可以把一个页面想象成大的集装箱,这个集装箱里装的货物就是HTML元素。在现实生活中为了避免 不同人的货物相互混淆,都是把货物打好包装再装入集装箱,这样的话无论你包装里面的货物怎么摆放,都不会影响到其他人的货物。

这不是一个hack,在w3c标准中有明确的说明:

The border box of a table, a block-level replaced element, or an element in the normal flow that establishes a new block formatting context (such as an element with ‘overflow’ other than ‘visible’) must not overlap any floats in the same block formatting context as the element itself.

那么该如何学以致用呢?

拥有新FC( formatting context)的块级元素会占去一行中所有的剩余空间,只给定位了的浮动元素留下空间。在原文作者的开源项目OOCSS中,有两种方式去使用FC:

主内容列 -添加FC意味着主内容列将占去除左右列之外的所有空间。这意味着,在一个模板下,只需简单的删除多余的那列,不用做其它任何更改你就可以很轻易的将布局从三列变为两列。CMS开发者会非常喜欢这个特性的。

在Firebug下玩玩这个模板

  1. 试着将“liquid”class增加到“page”元素中。
  2. 从HTML中添加或删除一列。
  3. 用文档中列出的附加class去扩展一个列对象。
  4. 尝试在Firebug中直接改变列的宽度。

网格 -任何开发过网格系统的人都知道sub-pixel舍入错误所带来的痛苦。浏览器不知道如何处理33.3像素,所以他们都会做不同的事情。YUI利用“列”之间的“槽”解决了这一差异,但我们也可以在单元内部隐藏这一差异。

一个新的BFC可以用来隐藏网格任何一列最后一个单元的尺寸误差。试试这个网格,你会发现当你修改单元的尺寸时,最后的单元会自动伸缩,以适应差异。它没有宽度,而且如果拥有新的BFC,它也不会环绕浮动元素。

清除浮动

你肯定听说过清除浮动这码事。人们一直在探讨通过overflow的属性来清除浮动 。有些人认为它是hack,但仔细阅读规范你会发现,规范作者也没能明确它。因为它的最终解释权归浏览器厂商。为了计算出什么溢出了容器(这些范围应该被隐藏),他们需要知道块的大小。由于这些块都没有给出明确的高度设置,于是浏览器就使用了从块内容中计算出的高度。欲了解更多关于清除的内容 ,请看我和Eric Meyer在他博客里的讨论

注意事项

溢出可以太大内容(如巨大的图片,pre区域,或表格之类),我现在尝试overflow: auto,到底使用哪个还需要权衡。

PS: 终于把这篇文章放出来了,其实已经躺在我电脑里好久了,当初答应涛哥翻译的 ,结果拖了这么久实在惭愧。水平所限,文中还有些地方译的很牵强,或者不好理解,希望大家能帮忙指正。

原文地址:http://www.stubbornella.org/content/2009/07/23/overflow-a-secret-benefit/

本文链接:http://www.blueidea.com/tech/web/2011/8302.asp 

出处:css9.net
责任编辑:bluehearts

◎进入论坛网页制作WEB标准化版块参加讨论,我还想发表评论

关键字搜索 常规搜索 推荐文档
热门搜索:CSS Fireworks 设计比赛 网页制作 web标准 用户体验 UE photoshop Dreamweaver Studio8 Flash 手绘 CG
站点最新 站点最新列表
周大福“敬•自然”设计大赛开启
国际体验设计大会7月将在京举行
中国国防科技信息中心标志征集
云计算如何让安全问题可控
云计算是多数企业唯一拥抱互联网的机会
阿里行云
云手机年终巨献,送礼标配299起
阿里巴巴CTO王坚的"云和互联网观"
1499元买真八核 云OS双蛋大促
首届COCO桌面手机主题设计大赛
栏目最新 栏目最新列表
浅谈JavaScript编程语言的编码规范
如何在illustrator中绘制台历
Ps简单绘制一个可爱的铅笔图标
数据同步算法研究
用ps作简单的作品展示页面
CSS定位机制之一:普通流
25个最佳最闪亮的Eclipse开发项目
Illustrator中制作针线缝制文字效果
Photoshop制作印刷凹凸字体
VS2010中创建自定义SQL Rule

蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。

转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。

特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。

您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
网站可用性测试及优化指南
《写给大家看的色彩书1》
《跟我去香港》
众妙之门—网站UI 设计之道
《Flex 4.0 RIA开发宝典》
《赢在设计》
犀利开发—jQuery内核详解与实践
作品集 更多内容

杂⑦杂⑧ Gold NORMANA V2