tl;博士- 添加html, body {height:100%;}到您的 CSS。
CSS 中的百分比值是从某个已经声明了高度的祖先继承而来的。在你的情况下,你需要告诉你侧边栏的所有父母都是 100% 的高度。我假设那#sidebarBack是body.
本质上,您上面的代码告诉#sidebarBack它是其父级的 100% 高度。它的父级(我们假设)是,所以你也body需要设置height: 100%;。body然而,我们不能止步于此;body从 继承高度html,所以我们还需要设置height: 100%;on 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;
}