实现页面布局的一种相当常见的技术是将绝对定位的 div 包装在相对定位的 div 中,以使绝对 div“相对绝对” 。到目前为止没有问题。但是,正如我刚刚发现的那样,这会导致放置以下内容时出现问题相对定位的 div - 除非我给相对 div 一个高度。
我使用相对绝对值已经有一段时间了,并且一直认为它们是一种完全合法的 CSS3 技术,但我现在开始怀疑它到底是不是太 hacky。如果是这种情况,那么将 div 绝对相对于容器定位并且让文档内容跟随容器正确流动(即出现在容器下方?)的合法方式是什么?
我应该提到这里的上下文是现代浏览器——那些与 CSS3 和 HTML5 没有问题的浏览器。如果有一个可行的解决方案,我很想听听。
此处按顺序显示编辑。这是有问题的标记
<div id='boxrel' style='position:relative'>
<div style='position:absolute;height:100%'>
<div id="boxscroll">
Lorem ipsum ...
</div>
</div>
</div>
<div id='afterbox'>
This div, id = afterbox, should appear BELOW boxrel but does not
</div>
这里的完整上下文是
- 我正在使用 jQuery Mobile v 1.3 + jQuery v 1.8.2(不去 v 1.9 的充分理由)
- 我正在尝试使用nicescroll,我发现它是一个编写得很好的 jQuery 插件,用于创建滚动内容。
- 为了使 nicescroll 工作,我需要将可滚动内容放在绝对定位的 div 中。
- 而这反过来又要求我使该 div 相对绝对,否则......
- 结果是 afterbox 看起来好像 boxrel 不存在。
- 解决此问题的唯一方法是给 boxrel 一个高度,但我无法做到这一点
我希望这能让问题更清楚。