Div, переходящий через строку заголовка при прокрутке

#html #css #angular

#HTML #css #угловой

Вопрос:

Я пытаюсь установить фиксированную панель заголовков, и при прокрутке содержимое страницы должно находиться под панелью заголовков и не отображаться выше. Это работает на нескольких страницах, но не работает для моей страницы календаря.

Это то, что происходит при прокрутке: введите описание изображения здесь

На других страницах содержимое страницы будет просто помещаться под панель заголовков, но здесь это не сработает. Это мой html и css для строки заголовка:

 <div class="headerclass">
  <nz-header class="header-bar">
    <a
      role="button"
      (click)="toggleHidden()"
      [hidden]="false"
      class="home"
      id="menuButton"
    >
      <img
        src="../../../assets/images/baseline_menu_white_48dp.png"
        alt="Logo SafeSpace"
        widht="55px;"
        height="55px;"
        id="menu"
      />
    </a>
    <a role="button" routerLink="/Home" routerLinkActive="active">
      <img
        src="../../../assets/images/logo.png"
        alt="Logo SafeSpace"
        widht="55px;"
        height="55px;"
        id="logo"
      />
    </a>
    <img
      src="../../../assets/images/face-white-18dp.svg"
      alt="User logo"
      widht="45px;"
      height="45px;"
      id="face"
    />
    <img
      src="../../../assets/images/settings-white-18dp.svg"
      alt="Settings logo"
      widht="45px;"
      height="45px;"
      id="settings"
    />
    <a role="button" (click)="logout()" id="logout">
      <img
        src="../../../assets/images/exit_to_app-white-18dp.svg"
        alt="Logout logo"
        widht="45px;"
        height="45px;"
      />
    </a>
  </nz-header>
  <!--dropdownMenu-->
  <div class="menu">
    <ul nz-menu nzMode="inline" [hidden]="isHidden" class="menulist">
      <li nz-submenu nzTitle="Registreren">
        <ul>
          <li
            nz-menu-item
            role="button"
            id="RegisterChildMenu"
            (click)="registerChild()"
          >
            Registreer een kind
          </li>
          <li
            nz-menu-item
            role="button"
            id="RegisterSupervisorMenu"
            (click)="registerSupervisor()"
          >
            Registreer een begeleider
          </li>
        </ul>
      </li>
      <li nz-menu-item role="button" id="CalendarMenu" (click)="calendar()">
        <span>Kalender</span>
      </li>
      <li nz-menu-item role="button" (click)="export()" id="export">
        <span>Exporteren</span>
      </li>
    </ul>
  </div>
</div>
 
 /* for smaller screen*/
@media screen and (min-width: 800px) {
  #menuButton {
    display: none;
  }
}

@media screen and (max-width: 800px) {
  #logo {
    display: none;
  }
}

/* ANT DESIGN */
nz-header,
nz-footer {
  background: #7dbcea;
  color: #fff;
  width: 100%;
  position: relative;
  z-index: 1;
  top: 0;
}

.headerclass {
  position: fixed;
  width: 100%;
  z-index: 1;
}
 

Как вы видите, я использую z-индекс. Я использую это неправильно?
Это мой код для календаря:

 <div class="calendar">
  <nz-calendar (nzPanelChange)="panelChange($event)" (nzSelectChange)="selectChange($event)">
    <ul *nzDateCell="let date" class="events">
      <ng-container [ngSwitch]="date.getDate()">
        <li *ngFor="let day of appointments">
          <ng-container *ngSwitchCase="getDayFromDate(day.start)">
            <button nz-button nzType="text" 
            (click)="onAppointmentClicked(day.appointmentId)">{{day.child.userName}}</button>            
          </ng-container>
        </li>
      </ng-container>
    </ul>
  </nz-calendar>
  <nz-modal [(nzVisible)]="isVisible" nzTitle="Details afspraak" [nzFooter]="modalFooter" id="calendarDetail">                
    <app-appointment-details *ngIf="loadDetails" [appointment]="selectedAppointment"></app-appointment-details>
    <ng-template #modalFooter>
      <button nz-button nzType="primary" (click)="handleOk()">Ok</button>
    </ng-template>
 </nz-modal>
</div>
 
 .calendar {
  margin-left: 2%;
  margin-right: 2%;
  padding-top: 75px;
  z-index: 2;
}
 

Для этого я использую библиотеку ng-zorro.
Кто-нибудь знает, как я могу это исправить?

Ответ №1:

Вы поместили calendar's z-индекс больше, чем headerclass

Давайте попробуем понять, что z-index делать? Более высокое значение z-index означает более высокую позицию.

Итак, в вашем случае,

    nz-header,
nz-footer {
  background: #7dbcea;
  color: #fff;
  width: 100%;
  position: relative;
  z-index: 2;
  top: 0;
}

.headerclass {
  position: fixed;
  width: 100%;
  z-index: 2;
}
 .calendar {
  margin-left: 2%;
  margin-right: 2%;
  padding-top: 75px;
  z-index: 1;
  }
 

Это решило бы вашу проблему. Приветствия!

Ответ №2:

Требуется свойство z-index , определяющее уровень элемента. Попробуйте это:

 #navbar {
  background-color:#990000;
  position:fixed;  
  z-index:1; /*Add this*/
  width:100%;
  height:50px;
  text-align:center;
  vertical-align:middle;
  line-height:50px;
  top:0px;
}