OverFlow – 一个秘密武器
如果你已经理解了block formatting contexts那么请继续,否则请先看看这篇文章。
Overflow能够做一些很牛掰的事情,比如:
- 创建BFC (block formatting contexts via W3c css2.1)
- 清除浮动
生成块级元素
overyflow属性一旦被指定,那么一个新的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下玩玩这个模板。
- 试着将“liquid”class增加到“page”元素中。
- 从HTML中添加或删除一列。
- 用文档中列出的附加class去扩展一个列对象。
- 尝试在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/
原文来自:Time Machine
阿里将是银行杀手
前几天传出了支付宝要进军信用卡领域的大新闻,这是个大新闻。这个新闻的先兆意义在于,阿里巴巴的方向开始跟其他互联网巨头变得不太一样,也许多少年之后你会发现,阿里巴巴更多不是一个互联网公司,而是一家金融公司!
金融是个什么概念,明儿个百度突然发生毁灭性火灾了,大伙有的是备用选择,就算深圳企鹅突然死了,我们也顶多就骂几句娘,生活如旧,世界没什么不同。但是一家金融公司的倒闭可能引发连锁反应,导致全球经济危机,一家互联网公司能做到吗?
当然,我有点标题党,显然夸张素来是我的风格。说杀手,不是为了证明阿里可能消灭银行,而是为了突出一家互联网公司的金融能量。
简要从几个方面论述下这个问题。
1、存款
有些朋友可能会遇到这种情况,你所在的公司要求你的工资卡必须是某某银行的,你就纳闷了,我换个银行的怎么就不行,然后人事告诉你,不行,公司是这么规定的。实际的情况是,这不是你们公司决定的,而是你们公司的财物经理跟该银行某业务经理有勾结。
据我一位银行朋友的说法,上海民生银行正式的业务经理要求名下存款不低于3000万,至于你贷款发出去多少,这只关系业绩,不会影响到福利,但反过来,即使你贷款发出去N多,名下没存款,薪水虽高,但可能你还签不了正式合同。为什么?因为存款,是银行的血液,是基础。
当AB两人利用支付宝交易,交易的资金先从A到支付宝,再从支付宝到B,中间有个资金驻留过程,就支付宝而言,这是一个输血放血过程,当大量交易交错进行的时候,就会导致支付宝账面上凭空会保持一定的资金,这个资金的额度取决于交易额、交易完成的平均时间,有所波动,但可以数据预测,同时,有意义的也只是平均数,偶尔的意外波动可以通过央行的贴现来解决,并不需要忧郁。当阿里的日交易额一次次创下新高,实际上,支付宝账面上能稳定保持的现金也必然同样变成了天文数字。
这些钱存在银行,就会创造巨额利润,利润的大小取决于利率大小。而银行又会利用存进去的钱,发放贷款,创造二次利润。那么,如果支付宝用这个钱直接发放贷款,理论上,它可以赚两次钱。
从民生银行对业务经理的要求以及某些公司的不合理要求,不难看出,除了垄断性质的国有银行,吸引存款对于商业银行而言,并非那么容易,而支付宝,凭空就能来这么多存款,而且还是不要给网民支付利息的。从成本和收益的角度来看,阿里若做银行,比其他银行会活得更加愉快。
2、贷款与风险
银行靠贷款创造利润,但我们知道,贷款有风险,坏账率一直是银行风险控制的重要指标,这是银行工作的重中之重,也是难点。难在哪里?商业银行向企业提供贷款,除去抵押担保,判断源自于银行可以粗略掌握企业的财物数据。但风险却仍然很难精确预计,因为银行最多能了解企业资金流通,那些详细的数据信息是银行看不见的,。
从这个意义上说,银行贷款的风险大小实际上跟银行对贷款对象的信息了解多少成反比。
与之相反的,以电子商务为依托,阿里巴巴不但掌握了网商的资金流通数据,还掌握了整个商务运营细节,可以预计的是,阿里做银行,在风险控制上天生就比传统银行出色。
3、信用公司
信用,显然是电子商务的基础。同样,信用更是金融的基础。在外国,存在一些专门做信用评级的公司,但在中国,似乎没有,当然,可能有,但这些个公司本身的信用可能就值得好好怀疑。
而信用的衡量,实际上跟信息掌握的多少有关,几乎可以绝对的说,信息的不对称性是所有矛盾的根源所在,信息掌握越少,风险越高,融资的成本也就越高,信用评级公司的诞生,实际上是为了降低融资成本。
这个逻辑表示,如果中国将产生一家有影响力的信用评级公司,那么阿里是最大可能。
同时,反过来说,同样两种融资渠道,其中一家对你不了解,另一家对你了解,那么你从第一家融资的成本就会更高,这决定了你会选择第二家作为融资渠道。
4、信用卡问题
对于商业银行而言,发信用卡是一项收入来源,但是对于支付宝来说,信用卡的意义超出了传统信用卡的范畴。
支付的便捷很多时候是电子商务的决定性因素。以我个人为例,几年来我每每想买点什么东西,我最终都几乎放弃,对一个懒人而言,目前的电子银行太麻烦了,支付宝太难用了,要是手机短信支付能扩散到电子商务,那该多好啊。
电子银行之所以复杂,是出于安全性的考虑,然而,银行卡的演变也在与时俱进,不但有了动态密码,最近我还发现银行跟魔兽世界学了,居然有了密保卡,这一切的一切,都是为了在安全的基础上更简洁的支持电子支付。
此前两三年间,校园刮过一场推销信用卡的风,一个银行接一个银行的吹,但学生们对这些真的没什么真实需求,更多是看心情临时决定开通的,但是支付宝信用卡的意义可能还不太一样,发这玩意的可是阿里,对你网购有实实在在的意义。可以预见的是,不久之后,校园又会刮起一场信用卡风,这一次,它将比以往任何一家银行的信用卡更受欢迎,对于学生而言,将有一份很爽的兼职机会快来了。
来源:读者投稿,作者:越石父
相关文章:

关于我们: 地址 – www.williamlong.info 我的Google Reader – 我的Twitter – 我的Facebook – 月光博客Twitter
月光博客投稿信箱:williamlong.info(at)gmail.com
原文来自:月光博客



