首页 > 解决方案 > 在移动视图的主要内容之后显示侧边栏

问题描述

我正在使用具有较旧设计的旧网站,该网站使用两个垂直菜单侧边栏,一个在左侧,一个在主要内容的右侧。在窄屏幕上,例如在移动视图中,侧边栏 div 显示在主要内容之前。我希望它们在主要内容 div 之后放到页面底部。

我意识到这可以通过 flexbox 轻松完成,但是父 div 和容器 div 太多,我不想破坏任何东西。重新设计整个站点超出了本任务的范围。

CSS 中有没有办法强制这两个 div 到它们容器的底部,而不改变任何父 div 的属性?

编辑:或者,在移动视图中将内容 div 推到顶部也可能有效。

标签: htmlcsslayout

解决方案


它可以通过使用position: relativeon 元素的 css 和左侧边栏上具有负值的左侧属性来完成' https://jsfiddle.net/bdp1rhvq/5/。也可以用 JS 来完成。

<div id='wrapper'>

  <div id='content'>
    content
  </div>

  <div id='sidebar-left'>
    sidebar-left
  </div>

  <div id='sidebar-right'>
    sidebar-right
  </div>

</div>


body {
  margin: 0;
  padding: 30px;
}

#wrapper {
  margin: 0 auto;
}

#content {
  width: 100%;
  height: 130px;
  float: left;
  background: #FF5733;
}

#sidebar-left {
  width: 100%;
  height: 130px;
  float: left;
  background: #00cc99;
}

#sidebar-right {
  width: 100%;
  height: 130px;
  float: left;
  background: #cc66ff;
}


@media only screen and (min-width: 600px) {

  #wrapper,
  #content,
  #sidebar-left,
  #sidebar-right {
    position: relative;
  }

  #sidebar-right {
    width: 25%;
    right: 0;
  }

  #sidebar-left {
    width: 25%;
    left: -50%;
  }

  #content {
    width: 50%;
    left: 25%;
  }
}

推荐阅读