css绝对定位的元素,如果不设定宽度,宽度如何计算?- 去阅读w3c文档
绝对定位元素宽度受其父级定位元素宽度影响,导致子元素如果依靠自适应宽度,无法撑开到超过父元素的宽度。
解决办法一:
子元素设置成inline-block,然后white-space:nowrap,强行让行内块元素撑开。
ie7下有问题,无法撑开。
解决办法二:
将父级定位元素宽度设宽,但是会遇到父级定位元素宽度也定宽了,在子元素上面加一次fix的div,设置绝对定位,宽很大,高为0.
问题:ie6下面自适应的子元素宽度又会自动延生到和fix div一样的宽度,暂时没找到好的解决办法。
所以要么为ie7写hack,要么为ie6写hack
可以再ie6的时候把fix 的div宽度设置为0 然后依赖方法一实现撑开。
本文探讨了CSS中绝对定位元素的宽度计算原理及其在不同浏览器下的表现差异。当不设定宽度时,绝对定位元素受其父级定位元素的影响,无法自适应超过父元素的宽度。文章提供了两种解决方案,并讨论了在IE6和IE7下的兼容性问题。
529





