【问题标题】:Side menu should be the height of page侧边菜单应该是页面的高度
【发布时间】:2022-02-06 03:49:29
【问题描述】:

我有一个侧面菜单,您可以在我的图片上看到。我希望它占据页面的整个高度,顶部缺少一点,页面底部缺少很多。我在这些区域周围添加了一个红色方块。我也在使用引导程序,但添加了一些 CSS。 我该如何解决这个问题?

.nav {
  background-color: #f2f2f2;
}

a.navbar-brand {
  white-space: normal;
  text-align: center;
  word-break: break-all;
}

html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.box-shadow {
  box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05);
}


ul {
  padding: 0;
  list-style: none;
  background: #f2f2f2;
}

  ul li {
    position: relative;
    line-height: 21px;
    text-align: left;
  }

    ul li a {
      display: block;
      padding: 8px 25px;
      color: #333;
      text-decoration: none;
    }

      ul li a:hover {
        color: #fff;
        background: #939393;
      }

    ul li ul.dropdown {
      min-width: 100%; /* Set width of the dropdown */
      background: #f2f2f2;
      display: none;
      position: absolute;
      z-index: 999;
      left: 0;
    }

    ul li:hover ul.dropdown {
      display: block; /* Display the dropdown */
    }

    ul li ul.dropdown li {
      display: block;
    }

.contract-menu {
  padding: 0px;
}

.active {
  color: #ffffff !important;
  background-color: #2772b2;
}
  <div class="row">
    <div class="col-3 contract-menu">
      <ul class="dropdown">
        <li>
          <a class="nav-link active" (click)="ShowDiv(0)"  *ngIf="currentStepId == 0">Overview</a>
          <a class="nav-link" (click)="ShowDiv(0)"  *ngIf="currentStepId != 0">Overview</a>
        </li>
        <li *ngFor="let step of steps">
          <a class="nav-link active" (click)="ShowDiv(step.stepId)" *ngIf="currentStepId == step.stepId">{{step.stepName}}</a>
          <a class="nav-link" (click)="ShowDiv(step.stepId)" *ngIf="currentStepId != step.stepId">{{step.stepName}}</a>
        </li>
      </ul>
    </div>

                                     SOME CODE HERE
                                          ...

</div>

更新

我现在可以让菜单占据高度的孔空间,正如您在我的图像上看到的那样。但是,我的菜单两侧仍有一些我不喜欢的白色。

这是我的更新 html

<div *ngIf="steps">
  <div class="contract-container">
    <div class="contract-menu menu">
      <ul class="dropdown">
        <li>
          <a class="nav-link active" (click)="ShowDiv(0)"  *ngIf="currentStepId == 0">Overview</a>
          <a class="nav-link" (click)="ShowDiv(0)"  *ngIf="currentStepId != 0">Overview</a>
        </li>
        <li *ngFor="let step of steps">
          <a class="nav-link active" (click)="ShowDiv(step.stepId)" *ngIf="currentStepId == step.stepId">{{step.stepName}}</a>
          <a class="nav-link" (click)="ShowDiv(step.stepId)" *ngIf="currentStepId != step.stepId">{{step.stepName}}</a>
        </li>
      </ul>
    </div>
    <div class="inner-page">
</div>
</div>

这是我的更新 CSS

.nav {
  background-color: #f2f2f2;
}

a.navbar-brand {
  white-space: normal;
  text-align: center;
  word-break: break-all;
}

html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.box-shadow {
  box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05);
}


ul {
  padding: 0;
  list-style: none;
  background: #f2f2f2;
}

  ul li {
    position: relative;
    line-height: 21px;
    text-align: left;
  }

    ul li a {
      display: block;
      padding: 8px 25px;
      color: #333;
      text-decoration: none;
    }

      ul li a:hover {
        color: #fff;
        background: #939393;
      }

    ul li ul.dropdown {
      min-width: 100%; /* Set width of the dropdown */
      background: #f2f2f2;
      display: none;
      position: absolute;
      z-index: 999;
      left: 0;
    }

    ul li:hover ul.dropdown {
      display: block; /* Display the dropdown */
    }

    ul li ul.dropdown li {
      display: block;
    }

.contract-menu {
  padding: 0px;
}

.active {
  color: #ffffff !important;
  background-color: #2772b2;
}


.contract-container {
  display: flex;
  padding: 0;
}

.menu {
  background-color: #f2f2f2;
  height: 100vh;
  width: 250px;
}

.inner-page {
  width: calc(100vw - 0px);
}

【问题讨论】:

  • 你能在 stackblitz 中重现它吗?

标签: html css angular


【解决方案1】:

你可以这样做。

HTML

.container {
    display: flex;
    padding: 0;
}
.menu {
    border: 1px solid red;
    height: 100vh;
    width: 250px;
    background: #ccc;
}

.inner-page {
    border: 1px solid red;
    width: calc(100vw - 250px);
}
<div class="container">
        <div class="menu">
            <ul>
                <li><a href="#">Menu #1</a></li>
                <li><a href="#">Menu #2</a></li>
                <li><a href="#">Menu #3</a></li>
                <li><a href="#">Menu #4</a></li>
                <li><a href="#">Menu #5</a></li>
            </ul>
        </div>
        <div class="inner-page">
            Lorem ipsum dolor sit amet consectetur adipisicing elit. Corporis quidem ex deserunt aut culpa quibusdam animi obcaecati consequuntur nobis nemo, eos fugit aliquam nulla modi dolore adipisci explicabo aspernatur nesciunt!
        </div>
    </div>

【讨论】:

  • 这几乎是我想要的,但菜单背景颜色应该一直填充在红色方块中,用我的浅灰色或任何你喜欢的颜色,我可以改变它。然而,在侧面菜单上方,我有一个主菜单,有一个白色的小空间,我用红色表示。
  • 我不确定,我完全理解你。我猜你想为菜单添加背景。如果是这样,您可以添加“背景:#ccc;”到菜单类。我已经用该更改更新了以前的代码 sn-p。
  • 我会更新我的问题,这样会更容易理解。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-26
  • 1970-01-01
  • 1970-01-01
  • 2014-08-16
  • 2016-01-11
  • 1970-01-01
相关资源
最近更新 更多