【发布时间】:2017-11-13 06:12:55
【问题描述】:
我有一个 .sidebar 和一个 .content div,包装在一个 flexbox 中。我想让内容可滚动,同时保持侧边栏固定。
约束
- 我无法使用 Javascript
- 容器最大宽度必须为 600px
问题
如果我相对定位,侧边栏和内容都会滚动:fiddle
.flex{
position: relative;
display: flex;
flex-direction: row;
max-width: 600px;
margin: auto;
border: 1px solid green;
}
.flex > *{
border: 1px solid green;
}
.sidebar{
width: 200px;
}
.content{
flex: 1;
overflow-y: auto;
}
.content p{
font-size: 48px;
}
如果我绝对定位它,滚动条会离开它美丽的右角以环绕 600px 容器:fiddle
*{
box-sizing: border-box;
}
.flex-wrapper{
position: absolute;
top: 0;
left: 0;
right: 0;
width: 100%;
height: 100%;
max-width: 600px;
margin: auto;
}
.flex{
display: flex;
flex-direction: row;
border: 1px solid green;
height: 100%;
}
.flex > *{
border: 1px solid green;
}
.sidebar{
width: 200px;
}
.content{
flex: 1;
overflow-y: auto;
}
.content p{
font-size: 48px;
}
如何使滚动条保持在屏幕的右边缘,而不是环绕在我的固定宽度 div 周围?
【问题讨论】:
-
您需要什么解决方法? ...绝对位置解决它
-
不,我希望滚动条位于屏幕边缘,而不是容器边缘
-
为什么最大宽度为 600px? ...由于您在内容上使用
flex: 1,它始终是 600px,或者您想要以其他方式? -
我希望添加的侧边栏和内容最大为 600 像素
-
虽然我看不到 flexbox 的需求...jsfiddle.net/mjog1k86/4