菜单切换CSS仅在元素内部时不起作用

时间:2016-04-15 09:00:39

标签: html css

编辑:

我删除了我的问题。我相信CSS只不是一种真正有效且正常的编码滑动导航的方法。因此我使用littlebit jQuery创建它。

工作示例:

$(document).ready(function() {
  $("#toggle-nav").click(function() {
    $(".main-nav").toggleClass("nav-trans");
  });
});
* {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}
.main-nav {
  position: fixed;
  background: #000;
  padding-left: 2em;
  border-top-right-radius: 5px;
  border-bottom-right-radius: 5px;
  color: #fff;
  top: 50%;
  transform: translateY(-50%) translateX(-100%);
  transition: transform 0.6s;
}
.main-nav ul {
  list-style-type: none;
  margin-left: -1em;
  padding: 1em 1em 1em 0;
}
.main-nav li {
  padding: 1em;
}
#toggle-nav {
  width: 4em;
  height: 4em;
  background: #000;
  border-radius: 30em;
  position: absolute;
  right: -1.7em;
  top: 50%;
  transform: translateY(-50%);
  z-index: -1;
}
.nav-trans {
  transform: translateY(-50%) translateX(0);
}
<html>

<head>
  <link href="css/style.css" rel="stylesheet">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
  <script src="js/main.js"></script>
</head>

<body>
  <nav class="main-nav">
    <div id="toggle-nav"></div>
    <ul>
      <li>pagina1</li>
      <li>pagina2</li>
      <li>pagina3</li>
      <li>pagina4</li>
      <li>pagina5</li>
    </ul>
  </nav>
</body>

</html>

也许这可以帮助将来的某个人。

1 个答案:

答案 0 :(得分:0)

要使用导航内部的输入,应该像这样应用html:

<nav>
    <input id="toggle-nav" type="checkbox">
    <ul class="main-nav">
      <li>pagina1</li>
        <li>pagina2</li>
          <li>pagina3</li>
          <li>pagina4</li>
          <li>pagina5</li>
    </ul>
  </nav>