如何使用粘性顶部导航,侧栏和页脚开发引导程序布局

时间:2018-07-19 04:31:17

标签: html css twitter-bootstrap bootstrap-4 styles

我的页面包含四个部分。

  1. 顶部导航
  2. 侧边栏
  3. 脚步
  4. 主要内容

我希望顶部导航固定在顶部,而页脚固定在底部。但是,侧边栏需要保持完整高度。

为实现所有这些目的,我创建了this矮子。当我们全屏运行它时,它会使侧边栏折叠到实际高度。

这是一个代码

/* Styles go here */

body, html {
  height:100%;
}

/*
 * Off Canvas sidebar at medium breakpoint
 * --------------------------------------------------
 */
@media screen and (max-width: 992px) {

  .row-offcanvas {
    position: relative;
    -webkit-transition: all 0.25s ease-out;
    -moz-transition: all 0.25s ease-out;
    transition: all 0.25s ease-out;
  }

  .row-offcanvas-left
  .sidebar-offcanvas {
    left: -33%;
  }

  .row-offcanvas-left.active {
    left: 33%;
    margin-left: -6px;
  }

  .sidebar-offcanvas {
    position: absolute;
    top: 0;
    width: 33%;
    height: 100%;
  }
}

/*
 * Off Canvas wider at sm breakpoint
 * --------------------------------------------------
 */
@media screen and (max-width: 34em) {
  .row-offcanvas-left
  .sidebar-offcanvas {
    left: -45%;
  }

  .row-offcanvas-left.active {
    left: 45%;
    margin-left: -6px;
  }

  .sidebar-offcanvas {
    width: 45%;
  }
}

.card {
    overflow:hidden;
}

.card-body .rotate {
    z-index: 8;
    float: right;
    height: 100%;
}

.card-body .rotate i {
    color: rgba(20, 20, 20, 0.15);
    position: absolute;
    left: 0;
    left: auto;
    right: -10px;
    bottom: 0;
    display: block;
    -webkit-transform: rotate(-44deg);
    -moz-transform: rotate(-44deg);
    -o-transform: rotate(-44deg);
    -ms-transform: rotate(-44deg);
    transform: rotate(-44deg);
}

HTML

<nav class="navbar fixed-top navbar-expand-md navbar-dark bg-primary mb-3">
    <div class="flex-row d-flex">
      <button type="button" class="navbar-toggler mr-2 " data-toggle="offcanvas" title="Toggle responsive left sidebar">
        <span class="navbar-toggler-icon"></span>
      </button>
      <a class="navbar-brand" href="#" title="Free Bootstrap 4 Admin Template">Admin Template</a>
    </div>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsingNavbar">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="navbar-collapse collapse" id="collapsingNavbar">
      <ul class="navbar-nav">
        <li class="nav-item active">
          <a class="nav-link" href="#">Home <span class="sr-only">Home</span></a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="//www.codeply.com">Link</a>
        </li>
      </ul>
      <ul class="navbar-nav ml-auto">
        <li class="nav-item">
          <a class="nav-link" href="#myAlert" data-toggle="collapse">Alert</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="" data-target="#myModal" data-toggle="modal">About</a>
        </li>
      </ul>
    </div>
  </nav>
  <div class="container-fluid" id="main">
    <div class="row row-offcanvas row-offcanvas-left">
      <div class="col-md-3 col-lg-2 sidebar-offcanvas bg-light pl-0" id="sidebar" role="navigation">
        <ul class="nav flex-column sticky-top pl-0 pt-5 mt-3">
          <li class="nav-item"><a class="nav-link" href="#">Overview</a></li>
          <li class="nav-item">
            <a class="nav-link" href="#submenu1" data-toggle="collapse" data-target="#submenu1">Reports▾</a>
            <ul class="list-unstyled flex-column pl-3 collapse" id="submenu1" aria-expanded="false">
              <li class="nav-item"><a class="nav-link" href="">Report 1</a></li>
              <li class="nav-item"><a class="nav-link" href="">Report 2</a></li>
            </ul>
          </li>
          <li class="nav-item"><a class="nav-link" href="#">Analytics</a></li>
          <li class="nav-item"><a class="nav-link" href="#">Export</a></li>
          <li class="nav-item"><a class="nav-link" href="#">Snippets</a></li>
          <li class="nav-item"><a class="nav-link" href="#">Flexbox</a></li>
          <li class="nav-item"><a class="nav-link" href="#">Layouts</a></li>
          <li class="nav-item"><a class="nav-link" href="#">Templates</a></li>
          <li class="nav-item"><a class="nav-link" href="#">Themes</a></li>
        </ul>
      </div>
      <!--/col-->

      <div class="col main pt-5 mt-3">
        <h1 class="display-4 d-none d-sm-block">
                Bootstrap 4 Dashboard
                </h1>
      </div>
    </div>

  </div>
  <!--/.container-->
  <footer class="container-fluid">
    <p class="text-right small">©2016-2018 Company</p>
  </footer>


  <!-- Modal -->
  <div class="modal fade" id="myModal" tabindex="-1" role="dialog">
    <div class="modal-dialog" role="document">
      <div class="modal-content">
        <div class="modal-header">
          <h4 class="modal-title" id="myModalLabel">Modal</h4>
          <button type="button" class="close" data-dismiss="modal" aria-label="Close">
            <span aria-hidden="true">×</span>
            <span class="sr-only">Close</span>
          </button>
        </div>
        <div class="modal-body">
          <p>This is a dashboard layout for Bootstrap 4. This is an example of the Modal component which you can use to show content. Any content can be placed inside the modal and it can use the Bootstrap grid classes.</p>
          <p>
            <a href="https://www.codeply.com/go/KrUO8QpyXP" target="_ext">Grab the code at Codeply</a>
          </p>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
          <button type="button" class="btn btn-primary-outline" data-dismiss="modal">OK</button>
        </div>
      </div>
    </div>
  </div>

4 个答案:

答案 0 :(得分:2)

借助Bootstrap 4,您可以对代码进行以下更改:

  • h-100类添加到您的#main容器及其旁边的.row-offcanvas中。
  • fixed-bottom类添加到您的<footer>

您的代码将如下所示:

<div class="container-fluid h-100" id="main">
    <div class="row row-offcanvas row-offcanvas-left h-100">
        <!-- your subsequent codes -->
    </div>
</div>
<!--/.container--> 
<footer class="container-fluid fixed-bottom">
    <!-- your footer's paragraph code -->
</footer>

您可以在Plunker上对其进行检查。

我认为您应该检查代码的结构。希望对您有所帮助。

答案 1 :(得分:0)

对于页脚,这可能会有所帮助:

footer{
  position: absolute;
  bottom:0;
  transform: translateX(-40%);
}

答案 2 :(得分:0)

https://plnkr.co/edit/gKmLbFcF1IxVS7QyYyaL?p=preview-如果您需要此解决方案:

.container-fluid, .row {
  height: 100%;
}

答案 3 :(得分:0)

在以下两个div上添加h-100班级

 <div class="container-fluid h-100" id="main">
        <div class="row row-offcanvas row-offcanvas-left h-100">

查看更新后的plunker