我正在尝试创建一个带有全高侧边栏的响应式布局。在桌面上,侧边栏应浮动在主要内容的左侧,在平板电脑/移动设备上,侧边栏应与主要内容重叠(激活时)。我已经设法让这个布局在桌面上正常工作,尽管我使用主要内容的背景颜色使其“看起来”像侧边栏是全高的,这并不理想,但似乎无法换行我对如何使其适用于平板电脑/手机的未来进行了展望。请参阅图片以更好地解释我想要完成的任务。当窗口缩小到小于 980px 时,主体似乎想保持在 980。任何帮助将不胜感激
#sidebar {
background: #FFF8DC;
width: 300px;
float: left;
height: 100vh;
margin-right: -300px;
position: absolute;
top: 0;
left: 0;
}
#main-content {
float: left;
width: 100%;
padding-left: 300px;
background: #2373DE;
}
@media screen and (max-width: 991px) and (min-width: 768px) {
#main-content {
padding-left: 0;
}
#sidebar {
z-index: 9;
}
}
<body>
<section id="sidebar">
sidebar stuff
</section>
<section id="main-content">
main content stuff
<footer>
footer stuff
</footer>
</section>
</body>
这里有一个解决方案,使侧边栏固定在左侧,屏幕高度为 100%,主要内容可滚动。您可以更改媒体查询中侧边栏和主要内容的属性(宽度、左边距)以获得所需的布局。
#sidebar {
background: #FFF8DC;
top: 0;
left: 0;
display: flex;
flex-direction: column;
height: 100%;
justify-content: space-between;
overflow-y: auto;
position: fixed;
width: 300px;
}
#main-content {
margin-left: 300px;
}
@media screen and (max-width: 991px) and (min-width: 768px) {
#sidebar {
width: 200px;
}
#main-content {
margin-left: 200px;
}
}
<body>
<section id="sidebar">
sidebar stuff
</section>
<section id="main-content">
main content stuff
<footer>
footer stuff
</footer>
</section>
</body>
尝试更新
document.body.scrollHeight
。