Выпадающее меню по центру вертикально в навигационной панели

У меня возникла проблема с моим navbar, который содержит dropdown-menu. У меня не получается выровнять меню по вертикали в моем dropdown-menu.

Выпадающее меню по центру вертикально в навигационной панели

(function($) { // Begin jQuery
  $(function() { // DOM ready
    // If a link has a dropdown, add sub menu toggle.
    $('nav ul li a:not(:only-child)').click(function(e) {
      $(this).siblings('.nav-dropdown').toggle();
      // Close one dropdown when selecting another
      $('.nav-dropdown').not($(this).siblings()).hide();
      e.stopPropagation();
    });
    // Clicking away from dropdown will remove the dropdown class
    $('html').click(function() {
      $('.nav-dropdown').hide();
    });
    // Toggle open and close nav styles on click
    $('#nav-toggle').click(function() {
      $('nav ul').slideToggle();
    });
    // Hamburger to X toggle
    $('#nav-toggle').on('click', function() {
      this.classList.toggle('active');
    });
  }); // end DOM ready
})(jQuery); // end jQuery
.navigation {
  height: 70px;
  background: #2e2e2e;
  margin-bottom: 20px;
}

.nav-container {
  max-width: 1000px;
  margin: 0 auto;
}
nav {
    margin : 0 auto;
    text-align: center;
}
nav ul {
  list-style: none;
  margin: 0 auto;
  padding: 0;
    display: inline-block;

}

nav ul li {
    display: inline-block;
}

nav ul li a, nav ul li a:visited {
  display: block;
  padding: 0 20px;
  line-height: 70px;
  background: #2e2e2e;
  text-decoration: none;
}
nav ul li a:hover, nav ul li a:visited:hover {
  background: #2581dc;
  color: #fff;
}
nav ul li a:not(:only-child):after, nav ul li a:visited:not(:only-child):after {
  padding-left: 4px;
  content: ' ▾';
}
nav ul li ul li {
  min-width: 190px;
}
nav ul li ul li a {
  padding: 15px;
  line-height: 20px;
}
.nav-dropdown {
  position: absolute;
  display: none;
  z-index: 1;
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.15);
}

ul.nav-list > li > a {
    text-decoration: none;
    color: white;
    font-size: 15px;
}

.nav-dropdown > li > a {
    color: white;
    text-decoration: none;
}
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<section class = "navigation">
  <div class = "nav-container">

    <nav>
      <div class = "nav-mobile"><a id = "nav-toggle" href = "#!"><span></span></a></div>
      <ul class = "nav-list">
        <li class = "active"><a href = "{% url 'home' %}">Accueil</a></li>
        <li>
          <a href = "#!">Matériel</a>
          <ul class = "nav-dropdown">
            <li><a href = "{% url 'materiel-home' %}">Accueil</a></li>
            <li><a href = "{% url 'optiques' %}">Optiques</a></li>
            <li><a href = "{% url 'monture' %}">Monture</a></li>
            <li><a href = "{% url 'capteurs' %}">Capteurs Photo</a></li>
            <li class = "disabled"><a href = "#">Accessoires</a></li>
          </ul>
        </li>
        <li>
          <a href = "#!">Galerie Photos</a>
          <ul class = "nav-dropdown">
            <li><a href = "{% url 'Lune' %}">Lune</a></li>
            <li><a href = "{% url 'Planetaire' %}">Planètes</a></li>
            <li class = "divider"></li>
            <li><a href = "{% url 'Amas_Globulaires' %}">Amas globulaires</a></li>
            <li><a href = "{% url 'Amas_Ouverts' %}">Amas ouverts</a></li>
            <li><a href = "{% url 'Nebuleuses_Diffuses' %}">Nébuleuses diffuses</a></li>
            <li><a href = "{% url 'Nebuleuses_Planetaires' %}">Nébuleuses planétaires</a></li>
            <li><a href = "{% url 'Galaxies' %}">Galaxies</a></li>
          </ul>
        </li>
        <li><a href = "{% url 'articles-home' %}">Article(s)</a></li>
        <li><a href = "{% url 'meteo-home' %}">Météo</a></li>
      </ul>
    </nav>
  </div>
</section>

Я добавил JsFiddle, чтобы показать вам результат. Я хотел бы выровнять подменю на одной «панели», а не каждый рядом с предыдущим.

Я знаю, что это наверняка проблема display или что-то в этом роде.

Спасибо заранее,

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
0
154
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

используйте display:block вместо .nav-dropdown > li тогда это сработает

просто добавьте ниже код в свой css

.nav-dropdown > li {
    display:block;
}

(function($) { // Begin jQuery
  $(function() { // DOM ready
    // If a link has a dropdown, add sub menu toggle.
    $('nav ul li a:not(:only-child)').click(function(e) {
      $(this).siblings('.nav-dropdown').toggle();
      // Close one dropdown when selecting another
      $('.nav-dropdown').not($(this).siblings()).hide();
      e.stopPropagation();
    });
    // Clicking away from dropdown will remove the dropdown class
    $('html').click(function() {
      $('.nav-dropdown').hide();
    });
    // Toggle open and close nav styles on click
    $('#nav-toggle').click(function() {
      $('nav ul').slideToggle();
    });
    // Hamburger to X toggle
    $('#nav-toggle').on('click', function() {
      this.classList.toggle('active');
    });
  }); // end DOM ready
})(jQuery); // end jQuery
.navigation {
  height: 70px;
  background: #2e2e2e;
  margin-bottom: 20px;
}

.nav-container {
  max-width: 1000px;
  margin: 0 auto;
}
nav {
    margin : 0 auto;
    text-align: center;
}
nav ul {
  list-style: none;
  margin: 0 auto;
  padding: 0;
    display: inline-block;

}

nav ul li {
    display: inline-block;
}

nav ul li a, nav ul li a:visited {
  display: block;
  padding: 0 20px;
  line-height: 70px;
  background: #2e2e2e;
  text-decoration: none;
}
nav ul li a:hover, nav ul li a:visited:hover {
  background: #2581dc;
  color: #fff;
}
nav ul li a:not(:only-child):after, nav ul li a:visited:not(:only-child):after {
  padding-left: 4px;
  content: ' ▾';
}
nav ul li ul li {
  min-width: 190px;
}
nav ul li ul li a {
  padding: 15px;
  line-height: 20px;
}
.nav-dropdown {
  position: absolute;
  display: none;
  z-index: 1;
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.15);
}

ul.nav-list > li > a {
    text-decoration: none;
    color: white;
    font-size: 15px;
}

.nav-dropdown > li > a {
    color: white;
    text-decoration: none;
}

.nav-dropdown > li {
    display:block;
}
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<section class = "navigation">
  <div class = "nav-container">

    <nav>
      <div class = "nav-mobile"><a id = "nav-toggle" href = "#!"><span></span></a></div>
      <ul class = "nav-list">
        <li class = "active"><a href = "{% url 'home' %}">Accueil</a></li>
        <li>
          <a href = "#!">Matériel</a>
          <ul class = "nav-dropdown">
            <li><a href = "{% url 'materiel-home' %}">Accueil</a></li>
            <li><a href = "{% url 'optiques' %}">Optiques</a></li>
            <li><a href = "{% url 'monture' %}">Monture</a></li>
            <li><a href = "{% url 'capteurs' %}">Capteurs Photo</a></li>
            <li class = "disabled"><a href = "#">Accessoires</a></li>
          </ul>
        </li>
        <li>
          <a href = "#!">Galerie Photos</a>
          <ul class = "nav-dropdown">
            <li><a href = "{% url 'Lune' %}">Lune</a></li>
            <li><a href = "{% url 'Planetaire' %}">Planètes</a></li>
            <li class = "divider"></li>
            <li><a href = "{% url 'Amas_Globulaires' %}">Amas globulaires</a></li>
            <li><a href = "{% url 'Amas_Ouverts' %}">Amas ouverts</a></li>
            <li><a href = "{% url 'Nebuleuses_Diffuses' %}">Nébuleuses diffuses</a></li>
            <li><a href = "{% url 'Nebuleuses_Planetaires' %}">Nébuleuses planétaires</a></li>
            <li><a href = "{% url 'Galaxies' %}">Galaxies</a></li>
          </ul>
        </li>
        <li><a href = "{% url 'articles-home' %}">Article(s)</a></li>
        <li><a href = "{% url 'meteo-home' %}">Météo</a></li>
      </ul>
    </nav>
  </div>
</section>

Другие вопросы по теме