响应式布局中的全高侧边栏

问题描述 投票:0回答:2

我正在尝试创建一个带有全高侧边栏的响应式布局。在桌面上,侧边栏应浮动在主要内容的左侧,在平板电脑/移动设备上,侧边栏应与主要内容重叠(激活时)。我已经设法让这个布局在桌面上正常工作,尽管我使用主要内容的背景颜色使其“看起来”像侧边栏是全高的,这并不理想,但似乎无法换行我对如何使其适用于平板电脑/手机的未来进行了展望。请参阅图片以更好地解释我想要完成的任务。当窗口缩小到小于 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>

html css layout responsive-design sidebar
2个回答
0
投票

这里有一个解决方案,使侧边栏固定在左侧,屏幕高度为 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>


0
投票

尝试更新

document.body.scrollHeight

© www.soinside.com 2019 - 2024. All rights reserved.