Выпадающее меню и дропдауны
Пользуясь интернетом, вы наверняка уже видели выпадающее меню. Это когда наводишь мышью на элемент меню и появляется подменю.
Весь секрет в том, чтобы изначально скрыть выпадающее меню, а при наступлении какого-то события (наведение мыши на какую-то кнопку), отобразить выпадающее меню.
Сразу же перейдём к вёрстке. HTML предельно прост: есть меню, состоящее из четырёх элементов, а во втором элементе, помимо ссылки, есть вложенное меню.
<ul>
  <li>
    <a>Магазины</a>
  </li>
  <li>
    <a>Покупателям</a>
    <ul class="dropdown">
      <li>
        <a>Бонусная программа</a>
      </li>
      <li>
        <a>Подарочные карты</a>
      </li>
      <li>
        <a>Доставка</a>
      </li>
    </ul>
  </li>
  <li>
    <a>Юридическим лицам</a>
  </li>
  <li>
    <a>Контакты</a>
  </li>
</ul>
  
    CSS тоже не слишком сложный. Фактически, все стили вертятся вокруг оформления. Единственное - применен "магический"
    селектор. На самом деле, никакой магии здесь нет. menu li:hover .dropdown означает, что при наведении
    курсора мыши :hover, на элемент меню menu li, дропдаун .dropdown
    получит некоторые стили, в данном случае, display: block.
  
* {
  box-sizing: border-box;
}
ul {
  list-style: none;
  padding: 0;
  margin: 0 auto 100px;
  max-width: 800px;
  display: flex;
}
ul li {
  display: block;
  position: relative;
  width: 25%;
}
ul li a {
  padding: 8px 16px;
  background: lightblue;
  display: inline-block;
  width: 100%;
  text-decoration: none;
  color: black;
  text-align: center;
}
ul li a:hover {
  background: teal;
  color: white;
}
ul li:hover .dropdown { /* Магия здесь */
  display: block;
}
.dropdown {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  padding: 0;
  margin: 0;
  min-width: 100%;
  list-style: none;
}
.dropdown li {
  display: block;
  width: auto;
}
.dropdown li a {
  text-align: left;
}
  
  
a {
  cursor: pointer !important;
}
a:hover {
  text-decoration: underline;
}
@media print {
  .dropdown {
    display: block !important;
  }
  ul {
    margin-bottom: 250px;
  }
}
  Результат представлен ниже. Попробуйте навести мышью на элементы меню.
Похожим способом можно сделать и дропдаун для кнопки
<button>О нас
  <ul class="dropdown">
    <li><a>О компании прессе</a></li>
    <li><a>Юридическая информация</a></li>
    <li><a>Контактная информация</a></li>
  </ul>
</button>
  
button {
  background: white;
  border: 1px solid gray;
  border-radius: 4px;
  padding: 8px 16px;
  position: relative;
  margin-bottom: 100px;
}
button:hover {
  background: lightblue;
}
*:hover > .dropdown { /* при наведении на любой элемент, содержащий .dropdown ... */
  display: block;
}
.dropdown {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  padding: 16px;
  margin: 0;
  list-style: none;
  box-shadow: 0 0 5px 0 black;
  border-radius: 4px;
  background: white;
  min-width: 200px;
}
.dropdown li {
  display: block;
  margin-bottom: 8px;
  text-align: left;
}