【发布时间】:2015-11-27 20:23:20
【问题描述】:
我正在尝试在容器内实现一个固定的左侧边栏,其中包含流畅的右侧内容。
我查看了一些答案,这些答案告诉我要在内容上设置一个左边距,这不是我想要做的。 我能得到的最接近的是通过这个答案:
A `position:fixed` sidebar whose width is set in percentage?
<div class="main-container">
<div class="sidebar">
<div class="sidebar-content-container">
<div class="sidebar-content">
<!-- Sidebar content here -->
</div>
</div>
</div>
<div id="content">
<!-- Scrollable Content Here -->
</div>
</div>
这是CSS
.main-container {
height: 100vh;
max-width: 1366px;
margin-left: auto;
margin-right: auto;
padding-left: 15px;
padding-right: 15px;
padding-top: 100px;
width: 100%;
position: relative;
.sidebar {
float: left;
width: 20%;
height: 100%;
position: relative;
.sidebar-content-container {
height: 100%;
position: fixed;
.sidebar-content {
display: block;
height: 100%;
width: 100%;
overflow: hidden;
}
}
}
#content {
height: 100%;
width: 80%;
display: inline-block;
float: right;
}
}
按照我现在的方式,一旦您检查侧边栏,它计算的宽度不在主容器内,而是在视口的其余部分。我想要实现的是将 20% 的计算保持在主容器内而不设置固定宽度。
所以黄色部分代表我的问题。一旦我将它设置为固定,它就不会留在父容器中。我的目标是在我将其设置为固定后,它保持在红色部分内。
我知道我可以做诸如侧边栏宽度 100px 内容边距左 100px 之类的事情,但这不是目标,也不喜欢任何 javascript 替代品。
想法?
谢谢!
【问题讨论】: