Спустя почти неделю я все еще борюсь с переключением навигации. Это мой текущий CSS, что мне нужно сделать сейчас, это просто заставить тумблер открыться, он открылся раньше, поэтому что-то незначительное останавливает его сейчас, но я не могу решить это. Я не очень много знаю о CSS, так как постоянно забываю его, но я не знаю javascript или jquery

  .nav {
  background-color: #3333FF;
  width: 100%;
}

.menu label,
#hamburger {
  display: none;
}

.menu ul {
  font-family: Monserrat, sans-serif;
  font-size: 18px;
  color: white;
  list-style-type: none;
  margin: 0;
  padding: 0;
}

.menu ul li {
  text-align: center;
  display: inline-block;
  padding: 10px;
  width: 11.11%;
}

.menu ul li a {
  color: #fff;
  text-decoration: none;
}

.menu li:visited {
  background: #0000EE;
  color: #fff;
}

.menu li:active,
.active {
  background: #0000EE;
  color: #fff;
}

.menu li:hover {
  background: #0000EE;
  color: #fff;
}

label {
  margin: 0 20px 0 0;
  font-size: 20px;
  line-height: 44px;
  display: none;
}

#toggle {
  display: none;
}


/* Show Hamburger */

@media screen and (max-width: 768px) {
  .nav {
    background-color: #3333FF;
    width: 100%;
  }
  ``` .menu label {
    display: inline-block;
    color: #fff;
    background-color: #3333FF;
    padding-bottom: 8px;
  }
  .menu ul {
    display: none;
  }
  .menu ul li {
    display: block;
    border-top: 1px solid #333;
  }
  .menu ul li:active {
    display: block;
  }
  .menu label {
    cursor: pointer;
    margin: 0 20px 0 0;
    font-size: 20px;
    font-weight: bold;
    line-height: 44px;
    display: block;
  }
  #toggle:checked+.menu {
    display: block;
  }
<div class="nav">
  <div class="menu">
    <label for="toggle">&#9776;</label><input type="checkbox" id="toggle">
    <ul>
      <li><a href="http://index.html">Home</a></li>
      <li><a href=" http://news.html">News</a></li>
      <li><a href="http://contacts.html">Contacts</a></li>
      <li><a href="http://policies.html">Policies</a></li>
      <li class="active"><a href="http://members.html">Members</a></li>
      <li><a href="http://volunteer.html">Volunteer</a></li>
      <li><a href="http://links.html">Links</a></li>
    </ul>
  </div>
</div>
0
quartzy

2 ответа

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

nav ul ul {
  display: none;
}
nav ul ul li {
  float: none;
}
nav li {
  float: left;
  list-style-type: none;
}
nav li a {
  text-decoration: none;
  display: inline-block;
  margin: 10px 20px 5px 0;
  padding: 8px 10px;
}
nav li a:link, nav li a:visited {
  color: #646565;
  background: #e8e9eb;
}
nav li a:link:hover, nav li a:visited:hover {
  color: black;
}
nav li:hover ul {
  display: block;
  position: absolute;
}

input.toggle,
label.toggle {
  display: none;
}

label.toggle {
  font-weight: 900;
  font-size: 1.2em;
  padding: 10px 20px;
}

@media (max-width: 960px) {
nav {
  display: none;
}
input.toggle, .toggle span {
  display: none;
}
input[type=checkbox]:checked ~ nav, label.toggle {
  display: block;
  cursor: pointer;
}
nav li {
  float: none;
}
nav li:hover ul {
  display: block;
  position: relative;
}
nav li ul {
  display: block;
}
nav li ul li {
  margin-left: 20px;
}
nav li a {
  display: block;
  margin-left: 20px;
}
}
   

     <div class="wrapper">
        <label class="toggle" for="toggle">&#9776; <span>Menue</span></label>
        <input class="toggle" id="toggle" type="checkbox">
        <nav>
            <ul>
                <li class="current"><a href="http://index.html">Home</a></li>
                <li><a href=" http://news.html">News</a></li>
                <li><a href="http://contacts.html">Contacts</a></li>
                <li><a href="http://policies.html">Policies</a></li>
                <li><a href="http://members.html">Members</a></li>
                <li><a href="http://volunteer.html">Volunteer</a></li>
                <li><a href="http://links.html">Links</a></li>
            </ul>
        </nav>
    </div>

Просто измените ваш селектор с:

#toggle:checked+.menu {
    display: block;
}

чтобы :

#toggle:checked+ ul {
   display: block;
}

Смотрите фрагменты ниже:

.nav {
  background-color: #3333FF;
  width: 100%;
}

.menu label,
#hamburger {
  display: none;
}

.menu ul {
  font-family: Monserrat, sans-serif;
  font-size: 18px;
  color: white;
  list-style-type: none;
  margin: 0;
  padding: 0;
}

.menu ul li {
  text-align: center;
  display: inline-block;
  padding: 10px;
  width: 11.11%;
}

.menu ul li a {
  color: #fff;
  text-decoration: none;
}

.menu li:visited {
  background: #0000EE;
  color: #fff;
}

.menu li:active,
.active {
  background: #0000EE;
  color: #fff;
}

.menu li:hover {
  background: #0000EE;
  color: #fff;
}

label {
  margin: 0 20px 0 0;
  font-size: 20px;
  line-height: 44px;
  display: none;
}

#toggle {
  display: none;
}


/* Show Hamburger */

@media screen and (max-width: 768px) {
  .nav {
    background-color: #3333FF;
    width: 100%;
  }
  .menu label {
    display: inline-block;
    color: #fff;
    background-color: #3333FF;
    padding-bottom: 8px;
  }
  .menu ul {
    display: none;
  }
  .menu ul li {
    display: block;
    border-top: 1px solid #333;
  }
  .menu ul li:active {
    display: block;
  }
  .menu label {
    cursor: pointer;
    margin: 0 20px 0 0;
    font-size: 20px;
    font-weight: bold;
    line-height: 44px;
    display: block;
  }
  #toggle:checked+ul {
    display: block;
  }
<div class="nav">
  <div class="menu">
    <label for="toggle">&#9776;</label><input type="checkbox" id="toggle">
    <ul>
      <li><a href="http://index.html">Home</a></li>
      <li><a href=" http://news.html">News</a></li>
      <li><a href="http://contacts.html">Contacts</a></li>
      <li><a href="http://policies.html">Policies</a></li>
      <li class="active"><a href="http://members.html">Members</a></li>
      <li><a href="http://volunteer.html">Volunteer</a></li>
      <li><a href="http://links.html">Links</a></li>
    </ul>
  </div>
</div>
58600638