Как добавить выпадающую ссылку в существующее адаптивное меню навигации - PullRequest
1 голос
/ 19 мая 2019

У меня есть существующее адаптивное навигационное меню, в которое я хочу добавить подменю (фактически это просто одна ссылка под одним из пунктов верхнего меню).Похоже, это должно быть очень легко, но я не могу понять это.Как только я добавляю ссылку, она либо заканчивается чуть ниже верхнего элемента (с ней растёт вся навигация), либо с отображением «none» делает ее исчезающей и не возвращающейся при наведении курсора.Есть ли простой способ сделать это только с помощью CSS?Я надеюсь, что мой вопрос достаточно ясен.Я включу мой необходимый код.Если вы дадите мне код, скажите, пожалуйста, где его поставитьЯ новичок.Большое спасибо за любую помощь.

HTML:

<nav><a href="index.html">
      <div id="logo"><img src="images/logo-text.png" alt="CBS Stuctures, Inc."></div>
      </a>
      <label for="drop" class="toggle">MENU</label>
      <input type="checkbox" id="drop" />
      <ul class="menu">
        <li><a href="index.html">HOME</a></li>
        <li><a href="completed.html">COMPLETED PROJECTS</a></li>
        <li><a href="structures.html">STRUCTURES</a>
          <ul>
            <li><a href="video-presentation.html">Video Presentation</a></li>
          </ul>
        </li>
        <li><a href="new-products.html">NEW PRODUCTS</a></li>
        <li><a href="contact.php">CONTACT</a></li>
      </ul>
    </nav>


CSS:

nav {
    height: auto;
    margin: 0;
    padding: 0;
    background-color: #000;
}
#logo {
    display: block;
    float: left;
    padding: 0;
}
nav:after {
    content: "";
    display: table;
    clear: both;
}
nav ul {
    display: inline-block;
    font-size: 1.5em;
    list-style: none;
    float: right;
}
nav ul li {
    display: inline-block;
    float: left;
}
nav a {
    display: block;
    padding: 10px 20px;
    color: #fff;
    text-decoration: none;
}
.toggle, [id=drop] {
    display: none;
}
nav a:hover {
    color: #70E4FC;
}
nav ul li ul{
    display: none;
}
nav ul li ul:hover{
    display: block;
}

@media (max-width: 1024px) {
#logo {
    display: block;
    width: 100%;
    text-align: center;
    float: none;
    padding: 0;
}
    nav ul{
        width: 100%;
        padding:0;
        margin:0;
        float: none;
        background-color: rgba(16,70,56,1.00);
    }
  nav ul li {
    width: 100%;
      box-sizing: border-box;
      padding: 10px;
     background-color:rgba(11,51,41,1.00);
}
    nav ul li:hover{
          background-color:#0F4739;
        }
    .toggle + a, .menu{
        display: none;
    }
    .toggle{
        display:block;
        background-color: #333333;
        padding: 14px;
        font-size: 1.5em;
        cursor: pointer;  
    }
    .toggle:hover {
        background-color:#515151;
    }
    [id^=drop]:checked + ul{
        display: block;
    }
    }

Without hover

With hover

1 Ответ

0 голосов
/ 19 мая 2019

Вы можете просто добавить hover selector на child ul внутри li родительского элемента ul

ul li:hover ul {display: block;}  

Чтобы применить его к определенному элементу, вы должны добавить class к вашему ребенку ul:

ul li:hover ul.childul {display: block;}  

проверить рабочий пример здесь

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