tl; dr- 添加
html, body {height:100%;}到您的CSS。CSS中的百分比值是从某些已经声明了height的祖先继承而来的。在您的情况下,您需要告知边栏的所有父母都必须保持100%的高度。我假设这
#sidebarBack是的直接子级
body。
本质上,您上面的代码告诉
#sidebarBack它是其父代的100%高度。其母公司(我们假设)是
body,所以你需要设置
height:100%;上
body也是如此。但是,我们不能止步于此。
body从继承的高度
html,所以我们 还 需要设置
height:100%;上
html。我们可以在这里停止,因为
html从继承了其属性
viewport,该属性的声明高度已经为
100%。
这也意味着,如果最终将
#sidebar另一个内部放入
div,则
div也需要这样做
height:100%;。
这是 更新的JSFiddle 。
将您的CSS更改为:
html, body { height:100%;}#sidebar { background: rgba(20, 20, 20, .3); width: 100px; height: 100%; left: 0; float:left;}section#settings { width:80%; float:left; margin-left:100px; position:fixed;}


