设置
我正在制作一个具有简单 2 列布局的网站。列将具有不同的高度(一个比另一个高)和动态高度(每个页面的内容不同)。两列的背景颜色应向下延伸到最长列内容的最低点。
对于你们当中的视觉学习者,CSS-Tricks 有一些很好的插图
尝试
我正在使用One True Layout Method,在同一个 CSS-Tricks 页面中提到了大约一半。
这是相关的编码
HTML
<a href="#area1">Go To Section 1</a>
<a href="#area2">Go To Section 2</a>
<a href="#area3">Go To Section 3</a>
<div id="hold">
<div id="col1">
Content Column 1
</div>
<div id="col2">
Content Column 2
<h2 id="area1">Section 1</h2>
<img src="http://placehold.it/100x750" alt=" placehold img" />
<h2 id="area2">Section 2</h2>
<img src="http://placehold.it/100x750" alt=" placehold img" />
<h2 id="area3">Section 3</h2>
<img src="http://placehold.it/100x750" alt=" placehold img" />
</div>
</div>
CSS
#hold{
height:100%;
overflow-y:hidden;
}
#col1, #col2{
padding-bottom:100000px;
margin-bottom:-100000px;
}
#col1{
float:left;
width:200px;
}
#col2{
margin-left:200px;
}
什么有效?
布局完全按预期工作。列高适应动态内容并始终保持彼此相同的高度。
问题
锚打破它。也就是说,页面向下滚动到内容中正确的锚点,但锚点上方的所有内容都被隐藏了。我了解到这是由于overflow-y:hidden;
- 页面向下滚动到内容,而不是使用滚动条,它隐藏了上述内容,而不仅仅是滚动过去。禁用overflow:hidden
会按预期显示所有内容,但由于底部填充较大,这并不理想。
可能的解决方案
我可以在 JavaScript 中进行快速高度检查并相应地设置每一列,但我真的很想保持整个网站布局 JS 自由。
一些文章提到绝对定位已修复,但这不适用于动态内容。
更改为不同的列高方法。但是...但是...但是到目前为止我已经有了这个!我们是谁来简单地屈服于一个不可能的困难编码挑战.. :)
呼吁援助
各位程序员,有什么想法吗?