CSS 怎么实现div根据左导航栏显示情况修改margin-left

如图
clipboard.png

左导航栏跟页面主内容不是一个层级的、无法根据左导航栏的属性值来选择页面主内容的div
还有什么黑科技可以用么?除了js

html结构

  <nav class="navbar navbar-default" role="navigation">
    <div class="container-fluid">
      <div class="collapse navbar-collapse" id="navbar-collapse">
        <ul class="nav navbar-nav sidebar">
        ....
        </ul>
      </div>
    </div>
  </nav>
  <div class="page-content"></div>

顶端导航栏直接用的bootstrap的class

这是侧边栏的CSS定位代码

.sidebar {
  position: fixed;
  top: 52px;
  left: 0;
  width: 250px;
  font-size: 14px;
  height: 100vh;
  margin: 0;
  background-color: #333;
  ....
}

这是页面内容的CSS代码

.page-content {
  margin-left: 250px;
}
阅读 4k
2 个回答

为什么不用js?你这好比问吃饭不用嘴,有什么黑科技能帮我吃饭么?

点击左边的导航,用js去switch右边的container的className,这是再正统的路子不过了。注意js操作的度,尽量只用 js 去操作 DOM 节点的 className,样式仍然用 CSS 去定义。

做个前端页面而已,哪有那么多黑科技。

通过frameset标签来部署,命名name='',然后点击左侧设定target=''(你所要显示页面所在框架的name值),点击显示相应的页面!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题