Z-index неправильно отображается в Safari - работает во всех других браузерах - PullRequest
2 голосов
/ 22 мая 2019

У меня есть навигационное меню, которое открывается с правой стороны экрана после нажатия на значок гамбургера.Он работает правильно в Chrome и Firefox - в основном, при запуске он занимает 50vw и заполняет экран по вертикали.Однако в Safari кажется, что z-индекс работает неправильно, потому что меню, кажется, скрыто под другими элементами страницы и, в конечном счете, вообще не видно.

Я попытался настроить z-индекс различных элементов, чтобы увидеть, было ли это простым исправлением, и оказалось, что это нечто более сложное.Я прочитал несколько форумов, в которых предлагалось включить «-webkit-transform: translate3d (0, 0, 0);»но, к сожалению, это тоже не работает.Если вы осмотрите элемент sidebarMenu в Safari, вы увидите, что он находится в правильном положении, он просто не рендерится правильно.

Ниже приведена ссылка на кодовый блок - мне не хватает некоторых стилей для этого, поэтому позиционированиене совсем правильно, но он эффективно показывает общую функциональность, которую я ищу.При открытии этой ссылки в Safari вы можете видеть, что SidebarMenu, похоже, не выполняет рендеринг вообще.https://codepen.io/rmann20/pen/EzbeaV

пример кода:

<div class="header">
      <hr class="nav-rule">
      <div class="nav-container">
          <div class="nav-logo-container">
            <a href="index.html"><img class="nav-logo" src="images/nav_logo.png"></a>
            <input type="checkbox" class="openSidebarMenu" id="openSidebarMenu">
              <label for="openSidebarMenu" class="sidebarIconToggle">
                <div class="spinner diagonal part-1"></div>
                <div class="spinner horizontal"></div>
                <div class="spinner diagonal part-2"></div>
              </label>
              <div id="sidebarMenu">
                <ul class="sidebarMenuInner">
                  <li><a href="rooms.html">Rooms & Suites</a></li>
                  <li><a href="packages.html">Packages</a></li>
                  <li><a href="dining.html">Eat & Drink</a></li>
                  <li><a href="events.html">Meetings & Events</a></li>
                  <li><a href="weddings.html">Weddings</a></li>
                  <li><a href="experiences.html">Experiences</a></li>
                  <li><a href="neighborhood.html">Neighborhood</a></li>
                </ul>
                <ul class="sidebarMenuInnerSecondary">
                  <li><a href="about.html">ABOUT</a></li>
                  <li><a href="history.html">HISTORY</a></li>
                  <li><a href="gallery.html">GALLERY</a></li>
                  <li><a href="press.html">PRESS</a></li>
                  <li><a href="contact.html">CONTACT</a></li>
                  <li><a href="careers.html">CAREERS</a></li>
                </ul>
              </div>
          </div>
          <img class="nav-tagline" src="images/nav_tagline.png">
          <a class="nav-reservation-button" href="" target="_blank">RESERVE NOW</a>
      </div>
      <hr class="nav-rule">
    </div>




.header {
        display: flex!important;
        flex-wrap: wrap;
        margin: 0;
        padding: 10px 0 10px 0;
        width: 100%;
        max-width: 100%;
        box-shadow: none;
        background-color: #f5f4f0;
        position: fixed;
        height: 110px!important;
        overflow: hidden;
        z-index: 10;
        justify-content: space-between!important;
    }

    .nav-container {
        display: flex;
        height: 79px;
        width: 100%;
        align-items: center;
        justify-content: space-between;
    }

    .main {
        margin: 0 auto;
        display: block;
        height: 100%;
        margin-top: 60px;
    }
    .mainInner{
        display: table;
        height: 100%;
        width: 100%;
        text-align: center;
    }
    .mainInner div{
        display:table-cell;
        vertical-align: middle;
        font-size: 3em;
        font-weight: bold;
        letter-spacing: 1.25px;
    }
    #sidebarMenu {
        min-height: 100%;
        position: fixed;
        right: 0;
        width: 50vw;
        margin-top: 42px;
        transform: translateX(50vw);
        transition: transform 250ms ease-in-out;
        background-color: #f5f4f0;
        overflow: scroll;
        padding: 60px 60px 60px 60px;
        z-index: 10000!important;
    }
    .sidebarMenuInner{
        margin:8px;
        padding:0;
        border-top: 1px solid rgba(255, 255, 255, 0.10);
        list-style: none;
    }

    .sidebarMenuInner li a{
        color: #3d3936;
        font-family: 'QuincyCF-ExtraBold', Helvetica, Arial, Sans-Serif;
        font-weight: normal;
        font-style: normal;
        cursor: pointer;
        text-decoration: none;
        font-size: 3.2em;
    }

    .sidebarMenuInnerSecondary {
        margin-top: 60px;
        list-style: none;
    }
    .sidebarMenuInnerSecondary li {
        margin-top: 14px;
        margin-bottom: 14px;
    }


    input[type="checkbox"]:checked ~ #sidebarMenu {
        transform: translateX(0);
    }

    input[type=checkbox] {
        transition: all 0.3s;
        box-sizing: border-box;
        display: none;
    }
    .sidebarIconToggle {
        transition: all 0.3s;
        box-sizing: border-box;
        cursor: pointer;
        position: absolute;
        z-index: 99;
        height: 100%;
        width: 100%;
        top: 48px;
        right: 40px;
        height: 28px;
        width: 28px;
    }
    .spinner {
        transition: all 0.3s;
        box-sizing: border-box;
        position: absolute;
        height: 3px;
        width: 100%;
        background-color: #3d3936;
    }
    .horizontal {
        transition: all 0.3s;
        box-sizing: border-box;
        position: relative;
        float: left;
        margin-top: 3px;
    }
    .diagonal.part-1 {
        position: relative;
        transition: all 0.3s;
        box-sizing: border-box;
        float: left;
    }
    .diagonal.part-2 {
        transition: all 0.3s;
        box-sizing: border-box;
        position: relative;
        float: left;
        margin-top: 3px;
    }
    input[type=checkbox]:checked ~ .sidebarIconToggle > .horizontal {
        transition: all 0.3s;
        box-sizing: border-box;
        opacity: 0;
    }
    input[type=checkbox]:checked ~ .sidebarIconToggle > .diagonal.part-1 {
        transition: all 0.3s;
        box-sizing: border-box;
        transform: rotate(135deg);
        margin-top: 8px;
    }
    input[type=checkbox]:checked ~ .sidebarIconToggle > .diagonal.part-2 {
        transition: all 0.3s;
        box-sizing: border-box;
        transform: rotate(-135deg);
        margin-top: -9px;
    }

    .nav-logo-container {
      width: 260px;
      margin-left: 40px;
    }

Я не получаю никаких ошибок, и все остальное, кажется, работает правильно, не могу понять, почему это не отображается на данный момент.Любая помощь будет принята с благодарностью!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...