创建不跳转的CSS悬停样式

时间:2017-04-23 18:51:31

标签: html css css3

我向水平导航栏制作了一个移动响应汉堡包菜单,但是我在水平导航栏上的链接上制作悬停样式时遇到了麻烦,这些链接没有让它们跳转。如果你看看我的Codpen,你会在悬停时看到我想要的那些链接的一般风格,但我希望这个重点在措辞上更大。当我试图这样做时,链接最终会在悬停时跳跃。另一件事是我无法将顶级亮点变得更大......就像它与其他一些属性一样被切断了。这是我做的第一个这样的菜单(我是相当新的)所以我玩了很多不同的CSS属性和值,让事情看起来很完美乍一看我确定一些CSS不是对,我只是不知道在哪里或哪里。我将下面的代码粘贴在内联的所有内容中,但绝对可以查看代码,因为它更准确地说明了它在我的计算机上的外观。谢谢你的帮助!

http://codepen.io/sshine2/pen/VbjGaE

编辑:我在Codepen中编辑了代码,以显示突出显示的顶部是如何被截断的,当高亮显示是我想要的大小时,链接会跳转。

第二次编辑:修正了自己切断的顶部。更改了整个菜单的显示位置。

 <!DOCTYPE html>

 <html lang="en">

 <head>
 <meta charset="utf-8">

 <style>
body {
 font-family: 'Noto Sans', sans-serif;
 margin: 0;
 width: 100%;
 height: 100vh;
 background: #ffffff;
 background-color: black;
 -webkit-font-smoothing: antialiased;
 -moz-osx-font-smoothing: grayscale;
  }

header {
 width: 100%;
 background: #ffffff;
 position: fixed;
 height: 4em;
 line-height: 4em;
 display: inline-block;
 padding-left: 1em;
 border-bottom: .1em solid #dddddd;
  }
h2 {
 font-size: 2.1em;
  }
p {
 font-size: 10em;
 color: white;
 padding-top: 1em;
  }

@media only screen and (min-width: 319px) {

 .menu {
    z-index: 1;
    display: none;
    font-weight: bold;
    font-size: 1.2em;
    width: 100%;
    background: #f1f1f1;
    position: fixed;
    text-align: center;
    margin-top: 3.3em;
    color: black;
  }

  .menu ul {
    margin: 0;
    padding: 0;
    list-style-type: none;
    list-style-image: none;
    border-top: #dddddd 1px solid;
  }   

  .menu li {
    display: block;
    padding: 1em 0 1em 0;
    border-bottom: #dddddd 1px solid;
  }

  .menu li:hover {
    display: block;
    background: #585858;
    padding: 1em 0 1em 0;
      cursor: crosshair;
  }

  .menu ul li a {
    text-decoration: none;
    margin: 0px;
    color: black;
  }

  .menu ul li a:hover {
    color: white;
    text-decoration: none;
  }

  .menu a {
    text-decoration: none;
    color: black;
  }

  .menu a:hover {
    text-decoration: none;
    color: white;
  }

  #nav-icon4 {
    width: 35px;
    height: 25px;
    float: right;
    margin-top: -47px;
    margin-right: 30px;
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
    -webkit-transition: .5s ease-in-out;
    -moz-transition: .5s ease-in-out;
    -o-transition: .5s ease-in-out;
    transition: .5s ease-in-out;
    cursor: cell;
  }

  #nav-icon4 span {
    display: block;
    position: absolute;
    height: 5px;
    width: 100%;
    background: darkred;
    border-radius: 7px;
    opacity: 2;
    left: 0;
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
    -webkit-transition: .25s ease-in-out;
    -moz-transition: .25s ease-in-out;
    -o-transition: .25s ease-in-out;
    transition: .25s ease-in-out;
  }

  #nav-icon4 span:nth-child(1) {
    top: 0px;
    -webkit-transform-origin: left center;
    -moz-transform-origin: left center;
    -o-transform-origin: left center;
    transform-origin: left center;
  }

  #nav-icon4 span:nth-child(2) {
    top: 10px;
    -webkit-transform-origin: left center;
    -moz-transform-origin: left center;
    -o-transform-origin: left center;
    transform-origin: left center;
  }

  #nav-icon4 span:nth-child(3) {
    top: 20px;
     -webkit-transform-origin: left center;
    -moz-transform-origin: left center;
    -o-transform-origin: left center;
    transform-origin: left center;
  }

  #nav-icon4.open span:nth-child(1) {
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    -o-transform: rotate(45deg);
    transform: rotate(45deg);
    top: 0;
    left: 6px;
  }

  #nav-icon4.open span:nth-child(2) {
    width: 0%;
    opacity: 0;
  }

  #nav-icon4.open span:nth-child(3) {
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    -o-transform: rotate(-45deg);
    transform: rotate(-45deg);
    top: 25px;
    left: 6px;
  }   
  }


@media only screen and (min-width : 768px) {   
     h2 {
      z-index: 1000000;
      font-size: 1.5em;
      }

        p {
            font-size: 20em;
            color: white;
            padding-top: 1em;
  }

        ul {
            list-style-type: none;
            margin: 0;
            padding: 0;
            overflow: hidden;
  }

  li {
    float: right;
    margin-left: 20px;
    margin-right: 8px;
    margin-top: -10px;
}

li a {
    display: block;
    text-align: center;
    text-decoration: none;
}


.menu {
    display: block!important;
    position: absolute;
    right: 0px;
    font-size: .9em;
    width: 100%;
    padding-right: 15px;
    margin-top: 10px;
    padding-top: 10px;
    padding-bottom: 10px;
    background: rgba(255, 255, 255, 0);
    }
.menu ul {
    border-bottom: 0;
    border-top: 0;
    }
.menu li {
    border-bottom: 0;
    border-top: 0;
    }
 .menu li:hover {
    cursor: crosshair;
    padding-top: 1em;
    padding-bottom: .4em;
    padding-right: 0em;
    padding-left: 0em;
   }

.menu ul li a:hover {
  color: white;
}

#nav-icon4 {
    display: none;
    }
}

@media only screen and (min-width : 922px) {
    li {
    margin-left: 55px;
    margin-right: 18px;

    }
.menu {
    padding-right: 1px;
    }
}


@media only screen and (min-width : 1400px) {
    header {
       height: 5em;
      line-height: 5em;
    }
    h2 {
        font-size: 2.6em;    
    }
    li {
    margin-left: 55px;
    margin-right: 30px;
    }
    .menu {
        padding-right: 1px;
        font-size: 1.2em;
    }
}

    </style>

 <title>hamburgers</title>
 </head>

 <body>
     <header>

      <span>Shine Design</span>
      <div id="nav-icon4">
       <span></span>
       <span></span>
       <span></span>
      </div>

     </header>

     <div class="menu">
      <ul>
       <a href="#">
        <li>LINK ONE</li>
       </a>
       <a href="#">
        <li>LINK TWO</li>
       </a>
       <a href="#">
        <li>LINK THREE</li>
       </a>
       <a href="#">
        <li>LINK FOUR</li>
       </a>
       <a href="#">
        <li>LINK FIVE</li>
       </a>
      </ul>
     </div>

   </body>

 <script src="http://www.google.com/jsapi" type="text/javascript"></script>
 <script type="text/javascript">google.load("jquery", "1.3.2");</script>
 <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
    <script>
    $(document).ready(function(){
      $('#nav-icon4').click(function(){
        $(this).toggleClass('open');
      });
    });
    </script>
  </html>

1 个答案:

答案 0 :(得分:1)

跳跃问题是因为你在悬停时添加填充,而不是之前的填充。

在媒体查询定义填充之前:

.menu li {
    border-bottom: 0;
    border-top: 0;
    padding: 1em;
}

然后在min 768px查询中删除.menu li的已定义填充。

code pen