overflow有问题吗?没问题。那为什么说要慎用呢?因为有时会导致一些问题。。。
关于overflow:auto的,很多人贪他书写方便,直接用来清除浮动。但是Firefox使用overflow:auto会产生focus,引用网友fireyy的评论
我想这是FF浏览器的一个“可用性和亲和力”(usability/accessibility)的设定,当设定了overflow:auto或者 overflow:scroll的元素不能完全显示内容的时候(出现滚动条),针对于键盘使用者,就可以focus到那个元素,使用键盘的方向键去控制局部的滚动。
那用关于overflow:auto清除浮动有什么问题呢?当你鼠标坏掉时,用键盘按Tab键去网上看新鼠标时就会发现,按了N+N下Tab键都到不了想要到的链接,因为overflow:auto太多了。XD 想想老外为什么要写那样复杂的clearfix吧,难道他们的研究会比我们少吗?
那关于overflow:hidden呢?本来它是没问题滴,可是我们伟大的M$不喜欢它,早在04年POPO发现overflow:hidden会导致中键失效。
如果定义了嵌套区块元素(比如
)的overflow溢出样式,在这个区块上方,鼠标中键将失效,这主要是存在于IE中, Mozilla/Firefox/Opera普遍使用自定义的mouse guesture,所以不存在这个问题或者根本就谈不上这个问题。比如用IE浏览Plod的时候,在中间内容部分按鼠标中键(假设你的鼠标有中键),那个上下滚屏箭头没有出现吧……
中键的功能估计用得比较少,一般出现N+N屏的页面,才会用中键来快速拉动,例如用IE6打开163(不知道改掉了没^^)试一下,虽然IE6里那个不可爱的四角样子比较难看,但是也不能因为它样子有问题就把它去掉,哪怕你是不小心的。因为真的有人会用到,上次跟一个做论坛的朋友有讨论到这个问题,是普通网友提到的。要是导致别人以为中键坏了可就不好^^。顺便说下,你们大胆用,因为我装了罗技的鼠标驱动,中键功能已经更新,就算IE也米问题。再再顺便说下,Firefox的中键那个图可以定制。XD
这些细小的问题可能你认为影响并不大,的确,它的影响并不大,可是Web标准本身的意义是什么呢?