西红柿爱番茄

Feed Rss

overflow:hidden带来的问题

08.06.2010, Javascript, by .

即时更新:@drunber提供的解决办法:设置父元素的padding或者border、float、position:absolute也可以解决问题,经测试验证通过。但是有一点需要说明的是:上下padding和border是必须要有数值的,设置为0无效。

但是对于动画来说,overflow:hidden是必须要设置的,否则里面的文本不会被遮盖。

———===========—– 即时更新分界线 ——===========———–

最近接到个需求,在搜索结果中添加下拉动画,高度和透明度都需要渐变。在测试过程中,遇到这样的一个问题:在一个div容器中包含了几个p标签,而且全在默认样式的情况,这样通过offsetHeight,clientWidth,scrollHeight等等获得div的高度,之后动态设置div的overflow样式属性为hidden,这样上面所获得的高度不准确了,《点击测试吧》,这样的后果就是动画被和谐了。

从这里的overflow:hidden对div的高度的差异可以看出:容器包含内容的解析原理。正常默认情况下,比如div包含一个p标签,这样div的宽高是会忽略p标签默认的margin值;但是一旦给div设置了overflow:hidden之后,div的实际宽高就需要加上p的margin值了。不过值得庆幸的是,在给div设置了overflow:hidden之后,通过offsetHeight等来获取div的宽高,是准确的。

从上面的分析中对于开头遇到的问题,就可以有三种方法来解决了:第一、在动态设置overflow:hidden之后来获取容器的高度,《点点测试吧》;第二、将p标签的margin清0处理,《再点点呗》;第三、干脆就不要使用p标签,改用没有默认margin的div吧,很勉强的方法,《最后点击测试下》。

Tip: 经过测试发现,设置overflow属性为hidden、auto都存在上面所说的情况。

overflow:hidden带来的问题 有1条回应

  1. 仔细看了看你的博客,觉得,还不错。如果有机会在外包领域合作。我很期待。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>