全屏菜单仅出现在导航栏中

时间:2017-01-30 21:37:42

标签: javascript html css

我有以下html和css。问题是当它运行时,全屏菜单只出现在导航栏中。只有在使用safari时才会出现此问题。

我可以解决我摆脱

的问题
.nav {
position: fixed;
}

但我仍然希望导航栏固定在页面顶部。

.nav {
  font-family: Arial-BoldMT;
  font-size: 16px;
  list-style: none;
  text-align: right;
  padding: 0px 0 0px 0;
  box-shadow:0px 1px 1px #d3d3d3;
    background-color: white;
    width: 100%;
    z-index:0.1;
    overflow: auto;
    position: fixed;
    top: 0;
}

.nav p {
  float: left;
  margin-left: 40px;
  color: #333333;
}




.overlay {
    height: 100%;
    width: 0;
    position: fixed;
    z-index: 1;
    top: 0;
    left: 0;
    background-color: rgb(0,0,0);
    background-color: rgba(0,0,0, 0.9);
    overflow-x: hidden;
    transition: 0.5s;
}

.overlay-content {
    position: relative;
    top: 25%;
    width: 100%;
    text-align: center;
    margin-top: 30px;
}

.overlay a {
    padding: 8px;
    text-decoration: none;
    font-size: 36px;
    color: #818181;
    display: block;
    transition: 0.3s;
}

.overlay a:hover, .overlay a:focus {
    color: #f1f1f1;
}

.overlay .closebtn {
    position: absolute;
    top: 20px;
    right: 45px;
    font-size: 60px;
}

.slider {
    font-size:30px;
    cursor:pointer;
    float:right;
    margin-right: 40px;
}

@media screen and (max-height: 450px) {
  .overlay a {font-size: 20px}
  .overlay .closebtn {
    font-size: 40px;
    top: 15px;
    right: 35px;
  }
}
<div class="nav">

    <p>LIAM VINSON</p>

    <div id="myNav" class="overlay">
        <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
        <div class="overlay-content">
            <a href="index.html">HOME</a>
            <a href="about.html">ABOUT</a>
            <a href="photography.html">PHOTOGRAPHY</a>
            <a href="portfolio.html">PORTFOLIO</a>
            <a href="contact.html">CONTACT</a>
        </div>
    </div>
    
    <span class="slider" onclick="openNav()">&#9776;</span>
    
    <script>
    function openNav() {
        document.getElementById("myNav").style.width = "100%";
    }

    function closeNav() {
        document.getElementById("myNav").style.width = "0%";
    }
    </script>

</div>

2 个答案:

答案 0 :(得分:0)

z-index:0.1; 

无效css。

z-index必须是整数 - 负数或正数。有可能大多数浏览器只是将其视为0,但Safari不知道如何处理它。所以,将它改为像

这样的整数
 z-index:1;

并将叠加设置为z-index:2(尽管如果你必须索引其他元素,我建议将这些数字间隔开来。即.z-index:100;和z-index:200;)

将其设置为固定,顶部为0,一旦您纠正了那个z-index问题,就应该将它固定在页面顶部。

答案 1 :(得分:0)

问题是

.nav {
overflow: auto;
}

它阻止叠加显示在导航div之外。