最近我问了这个问题:overflow (scroll) - 100% container height关于如何实现垂直滚动div与高度可变。可变高度滚动div,相对于变量高度兄弟
一个非常有用的用户提供了一个使用绝对定位和高度的解决方案:100%,这里:http://jsfiddle.net/TUwej/2/。在这个小提琴中,您可以看到基本的所需行为 - 滚动div将填充主容器的高度,由'#main'元素中的内容决定。
我修改了这个有点和使用顶部:0底部:0代替高度:100%,以适应可滚动区域上方的元素。修改后的版本可以在这里看到:http://jsfiddle.net/N6muv/3/(我知道有一些额外的标记和类定义是空的,并且相邻的兄弟组合器看起来多余 - 这些都是实际结构的痕迹)
一切都很好,除了我必须提供滚动div的固定顶部坐标(请注意顶部:'.sidebar-list'选择器的120px声明)。我希望这是相对于它上面的'.sidebar-options'元素,以便上面的选项容器可以有任意数量的选项,并且可滚动的div将适当地定位它自己。使用固定的坐标,如果任何选项被添加或删除,重叠发生或不必要的空间发展 - 我想避免这种情况。应该出现的选项的确切数量因视图而异。我曾想过将卷动div包装在相对定位的容器中,但这样做会与bottom:0产生冲突,不再指示主'.wrapper'容器(它应该这样做)的高度。同样,使用高度:100%将使用“.wrapper”容器的计算高度,因此可滚动的div将超出“.wrapper”的边界。
有没有办法保持第二个小提琴中显示的功能,但与可滚动div的顶部相对于选项div的底部(这将是可变高度)?
在此先感谢您的任何建议。
编辑:S.O.问我是否想开始赏金,所以我做了(第一次) - 希望100分不被认为太低。仍在寻找一种无脚本,纯CSS的解决方案,它不涉及y轴的固定坐标或尺寸(宽度和左侧分配均可)。 THX
@Myles Gray - 感谢您的回应,但.sidebar的高度需要与.content div的高度相匹配,无论其中包含什么。这是目前的工作方式。增加一个固定的高度会使这部分功能失效。 – momo 2011-02-08 18:55:09