如何将div波纹管对准导航栏?

时间:2019-05-09 15:03:32

标签: html css layout alignment

我有一个带有导航栏和4个div的布局。第一个div由navbar裁剪。谁知道我该怎么办?

<body>
  <div id="app" class="flex-container">
    <nav class="navbar default-layout p-0 fixed-top d-flex flex-row" style="height: 63px;">
      <select id="region" onchange="initProcess();" style="position:absolute;background:#eaeaea;">
      </select>
      <div style="width: calc(100% - 74px); padding-left: 74px; left: 0; text-align: center; color: #fff">
        <img src="images/co-logo.png" style="width: 100px; margin-top: -6px">
        <h4>Dashboards</h4>
      </div>
      <div class="navbar-menu-wrapper d-flex align-items-right">
        <button class="navbar-toggler navbar-toggler-right d-lg-none align-self-right" type="button" data-toggle="offcanvas">
                    <span class="mdi mdi-menu"></span>
                </button>
      </div>
    </nav>
    <div class="flex-item" style="background-color:red"></div>
    <div class="flex-item" style="background-color:blue"></div>
    <div class="flex-item" style="background-color:yellow"></div>
    <div class="flex-item" style="background-color:grey"></div>
  </div>
</body>

here

3 个答案:

答案 0 :(得分:2)

您可以轻松添加padding-top css属性,该属性等于导航栏的高度。在您的情况下,它将是:

.flex-container {
     padding-top: 63px;
}

答案 1 :(得分:1)

由于导航栏设置为position:fixed,因此它将忽略正常的元素流。因此,其他元素在其下方对齐。在这种情况下,只需将margin-top: 63px;添加到第一个元素,就可以了(63px与导航栏的高度完全相同)。

答案 2 :(得分:1)

此CSS将在您的情况下起作用:

body {
    margin: 0;
    padding: 0;
}
.flex-container {
    position: relative;
    padding-top: 100px;
}
.navbar {
    position: fixed;
    top: 0;
    background: purple;
    z-index: 1;
    width: 100%;
}
.flex-item {
    width: 100%;
    height: 60px;
}
.flex-container .flex-item:first-of-type {
    position: absolute;
    top: 50px;
    width: 100%;
    height: 50px;
}