Как создать подменю в раскрывающемся списке (HTML/CSS)

Я просто хочу создать подменю в раскрывающемся списке... но я не могу найти код, чтобы исправить это.

HTML-КОД:

<nav id='menu'>
  <ul>
    <li><a class='home' href='/'>Home</a></li>
    <li><a class='prett' href='#' title='Menu'>Menu</a>
      <ul class='menus'>
        <li><a class='prett' href='Dropdown 1' title='Dropdown 1'>Dropdown 1 + Sub Menu</a>
          <ul class='submenu'>
            <li><a href="#" title="Sub Menu">Sub Menu</a></li>
          </ul>
        </li>
        <li><a href='#' title='Dropdown 2'>Dropdown 2</a></li>
        <li><a href='#' title='Dropdown 3'>Dropdown 3</a></li>
      </ul>
    </li>
  </ul>
</nav>

CSS-код:

#menu{background:#343434;color:#eee;height:35px;border-bottom:4px solid #eeeded}
#menu ul,#menu li{margin:0 0;padding:0 0;list-style:none}
#menu ul{height:35px}
#menu li{float:left;display:inline;position:relative;font:bold 12px Arial;text-shadow: 0 -1px 0 #000;border-right: 1px solid #444;border-left: 1px solid #111;text-transform:uppercase}
#menu li:first-child{border-left: none}
#menu a{display:block;line-height:35px;padding:0 14px;text-decoration:none;color:#eee;}
#menu li:hover > a,#menu li a:hover{background:#111}
#menu input{display:none;margin:0 0;padding:0 0;width:80px;height:35px;opacity:0;cursor:pointer}
#menu label{font:bold 30px Arial;display:none;width:35px;height:36px;line-height:36px;text-align:center}
#menu label span{font-size:12px;position:absolute;left:35px}
#menu ul.menus{height:auto;overflow:hidden;width:180px;background:#111;position:absolute;z-index:99;display:none;border:0;}
#menu ul.menus li{display:block;width:100%;font:12px Arial;text-transform:none;}
#menu li:hover ul.menus{display:block}
#menu a.home {background: #c00;}
#menu a.prett{padding:0 27px 0 14px}
#menu a.prett::after{content:"";width:0;height:0;border-width:6px 5px;border-style:solid;border-color:#eee transparent transparent transparent;position:absolute;top:15px;right:9px}
#menu ul.menus a:hover{background:#333;}

Спасибо, этот сайт мне очень поможет


person aziu    schedule 05.08.2016    source источник
comment
Не могли бы вы вставить свой код в CodePen или что-то в этом роде, чтобы мы могли его посмотреть? Вы просите нас просмотреть довольно много кода, и неважно, насколько хорошо вы разбираетесь в CSS, вы не знаете, что получится, пока не отрендерите его в веб-браузере.   -  person RobertAKARobin    schedule 05.08.2016
comment
Вам нужно найти его самостоятельно. См. здесь codepen.io/philhoyt/pen/ujHzd   -  person Vishal Panara    schedule 05.08.2016
comment
Извините, я новичок здесь codepen.io/aziu/pen/NAOawJ Это, пожалуйста, помогите мне .. . Благодарность   -  person aziu    schedule 05.08.2016


Ответы (1)


Я не совсем уверен, какой результат вы ожидаете, но один из способов сделать это — добавить класс в подменю li и смотреть, когда он зависает, после чего вы показываете подменю. Как это:

#menu {
  background: #343434;
  color: #eee;
  height: 35px;
  border-bottom: 4px solid #eeeded
}

#menu ul,
#menu li {
  margin: 0 0;
  padding: 0 0;
  list-style: none
}

#menu ul {
  height: 35px
}

#menu li {
  float: left;
  display: inline;
  position: relative;
  font: bold 12px Arial;
  text-shadow: 0 -1px 0 #000;
  border-right: 1px solid #444;
  border-left: 1px solid #111;
  text-transform: uppercase
}

#menu li:first-child {
  border-left: none
}

#menu a {
  display: block;
  line-height: 35px;
  padding: 0 14px;
  text-decoration: none;
  color: #eee;
}

#menu li:hover > a,
#menu li a:hover {
  background: #111
}

#menu input {
  display: none;
  margin: 0 0;
  padding: 0 0;
  width: 80px;
  height: 35px;
  opacity: 0;
  cursor: pointer
}

#menu label {
  font: bold 30px Arial;
  display: none;
  width: 35px;
  height: 36px;
  line-height: 36px;
  text-align: center
}

#menu label span {
  font-size: 12px;
  position: absolute;
  left: 35px
}

#menu ul.menus {
  height: auto;
  width: 180px;
  background: #111;
  position: absolute;
  z-index: 99;
  display: none;
  border: 0;
}

#menu ul.menus li {
  display: block;
  width: 100%;
  font: 12px Arial;
  text-transform: none;
}

#menu li:hover ul.menus {
  display: block
}

#menu a.home {
  background: #c00;
}

#menu a.prett {
  padding: 0 27px 0 14px
}

#menu a.prett::after {
  content: "";
  width: 0;
  height: 0;
  border-width: 6px 5px;
  border-style: solid;
  border-color: #eee transparent transparent transparent;
  position: absolute;
  top: 15px;
  right: 9px
}

#menu ul.menus a:hover {
  background: #333;
}

#menu ul.menus .submenu {
  display: none;
  position: absolute;
  left: 180px;
  background: #111;
  top: 0;
  width: 180px;
}

#menu ul.menus .submenu li {
  background: #111;
}

#menu ul.menus .has-submenu:hover .submenu {
  display: block;
}
<nav>
  <ul id='menu'>
    <li><a class='home' href='/'>Home</a></li>
    <li><a class='prett' href='#' title='Menu'>Menu</a>
      <ul class='menus'>
        <li class='has-submenu'><a class='prett' href='Dropdown 1' title='Dropdown 1'>Dropdown 1 + Sub Menu</a>
          <ul class='submenu'>
            <li><a href="#" title="Sub Menu">Sub Menu</a></li>
            <li><a href="#" title="Sub Menu">Sub Menu 2</a></li>
            <li><a href="#" title="Sub Menu">Sub Menu 3</a></li>
          </ul>
        </li>
        <li><a href='#' title='Dropdown 2'>Dropdown 2</a></li>
        <li><a href='#' title='Dropdown 3'>Dropdown 3</a></li>
      </ul>
    </li>
  </ul>
</nav>

ИЗМЕНИТЬ:

С Javascript и нажмите, чтобы открыть: https://jsfiddle.net/thepio/pn0ym10e/2/

person thepio    schedule 05.08.2016
comment
Это помощь, но я хочу подменю на боковом пути ... Спасибо за помощь - person aziu; 05.08.2016
comment
Спасибо, вы мастер :D Можете ли вы сделать команду, если не щелкнуть, не открыть, если щелкнуть, открыть танки, так много !!! - person aziu; 05.08.2016
comment
Но когда я добавляю дополнительные сабвуферы, он выглядит прозрачным 2.bp.blogspot.com/-X7HqK7CVCqM/V6Q6LPQBSNI/AAAAAAAAAAo/ - person aziu; 05.08.2016
comment
Я еще раз обновил свой ответ, включив цвет фона для элементов li внутри подменю. И если вы хотите, чтобы он открывался по клику, вам понадобится Javascript. Я также включил пример скрипки в ответ. - person thepio; 05.08.2016
comment
Greatt ist действительно Workk ... Спасибо - person aziu; 05.08.2016
comment
Последний ответ .. но если вы хотите сделать меню похожим на подменю ‹ Нажмите «Открыть», «Спасибо большое». - person aziu; 05.08.2016
comment
И как добавить этот Javascript в шаблон Blogger? - person aziu; 05.08.2016
comment
Извините, но это должен быть другой вопрос, если вы не можете понять это самостоятельно. Я лично не использовал Blogger, поэтому не могу сказать. Но должен быть какой-то способ редактирования шаблона. Затем вы просто вставляете Javascript, скажем, прямо перед закрывающим тегом </body> в вашем шаблоне внутри тегов <script></script> и все. - person thepio; 05.08.2016
comment
Спасибо, вот чувак stackoverflow.com/questions/ 38784131/ - person aziu; 05.08.2016
comment
Хороший пример, мне очень помогает. - person Shyam Narayan; 25.05.2020