【问题标题】:Making a div of 100% height制作 100% 高度的 div
【发布时间】:2016-10-01 07:23:34
【问题描述】:

我正在为我的网站设计广告管理面板,首先我在 Wrapper 中有一个顶部导航栏,之后我还有 2 个 div。

1.侧边导航菜单(左侧)

2.页面其余内容(右)

我希望我的侧边导航菜单覆盖整个屏幕高度。但不知何故我没有做到这一点,我尝试了以下尝试。

第一次尝试(html 代码)

.mainSideNavBar {
  width: 20%;
  z-index: 0;
  position: fixed;
  left: 0;
  top: 63px;
  height: 100%;
}
.sideNavBar {
  width: 100%;
  background-color: #303641;
  transition: width 0.5s ease;
  overflow-x: hidden;
  border: 1px solid #454a54;
  height: 100%;
}
.mainPageContent {
  width: 100%;
  height: 100%;
}
.pageContent {
  width: 100%;
  background-color: #fff;
  padding-left: 20%;
  transition: width 0.5s ease, padding-left 0.5s ease;
  border: 1px solid black;
  height: 100%;
}
<div class="wrapper">

  <div class="mainSideNavBar">
    <div class="sideNavBar" id="sideNavBar">
      <ul>
        <li><a href="#"><i class="fa fa-television"></i><span class="" id="textHideD">Dashboard</span></a>
        </li>
        <li><a href="#"><i class="fa fa-envelope-o"></i><span class="" id="textHideN">Notifications</span></a>
        </li>
        <li><a href="#"><i class="fa fa-users"></i><span class="" id="textHideM">Manages Users</span></a>
        </li>
        <li><a href="#"><i class="fa fa-exchange"></i><span class="" id="textHideB">Bet Management</span></a>
        </li>
        <li><a href="#"><i class="fa fa-pencil-square-o"></i><span class="" id="textHideR">Modify Rules</span></a>
        </li>
        <li><a href="#"><i class="fa fa-credit-card"></i><span class="" id="textHideP">Payment</span></a>
        </li>

      </ul>
    </div>
    <!--End sideNavBar-->
  </div>
  <!--End mainSideNavBar-->

  <div class="mainPageContent">
    <div class="pageContent" id="pageContent">
      <h1>My Content</h1>
    </div>
  </div>

这段代码的问题是,如果 .PageContent 类中的内容小于屏幕高度(不显示滚动条),但当 .PageContent 类中的内容大于当前屏幕高度时(滚动条显示)然后我的左侧导航显示顶部导航和它自身之间的小差距,因为(位置:固定)。

截图如下:

在我的第二次尝试中,我将 position:fixed 更改为 position:absolute,然后出现了一个新问题, 侧边栏导航折叠一半的高度带有滚动条的当前屏幕高度

html 和 body 的 Css 代码

html , body{height:100%;}

我被卡住了,建议我一些好的(正确的)方法来做。

【问题讨论】:

    标签: html css


    【解决方案1】:

    我认为您可以删除侧边栏的绝对或固定定位。

    只需将其设置为float: left;,保持当前宽度 (20%)。

    然后,对于您的 .mainPageContent,将其设置为 float: right;,并在 '%' 中使用 padding-left 和内容的宽度填充宽度。

    然后,对于高度,我使用min-height: 100vh;,它保证填满屏幕的所有高度(vh = 视图高度)并且浏览器很好地支持。

    所以你可以在你的侧边栏设置min-height: 100vh;,我想它会成功的。

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      当您使用固定定位时,不要将height 设置为100%,而是使用topbottom 属性,给top 一个等于标题高度的值和@ 987654326@ 的值为0

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-09
        • 2011-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多