Центральная отзывчивая панель навигации - PullRequest
1 голос
/ 05 марта 2020

Я следую указаниям w3schools по созданию отзывчивой верхней панели навигации для моего сайта: Как сделать - Отзывчивая верхняя навигация

Однако я бы хотел, чтобы элементы навигации были центрированы на странице, не выровнен влево или вправо. У w3schools есть второй учебник по центральному элементу навигации ссылка , но как только я пытаюсь использовать этот код для нескольких элементов навигации, они либо находятся друг над другом, либо укладываются друг на друга!

Еще больше, к моему ужасу, раньше уже возникал вопрос об этой конкретной проблеме ( здесь ), но, похоже, код примера сильно изменился за это время, так что ответ больше не применим. (

Ответы [ 2 ]

2 голосов
/ 05 марта 2020

Чтобы центрировать верхнюю навигацию по указанной вами ссылке, вы должны добавить следующее к .topnav:

.topnav {
  …
  display: flex;
  justify-content: center;
}

Чтобы обратиться к мобильному меню (а не отцентрировать его), добавьте следующее на ваш @media запрос:

@media screen and (max-width: 600px) {
  …
  .topnav { display: block; }
}

До

enter image description here

После

enter image description here

0 голосов
/ 05 марта 2020

Один из способов - обернуть ссылки внутри div (скажем, div с классом nav-links), а затем применить его к div:

.nav-links {
    width: fit-content; /* 'margin: auto' alone does not work if the div takes full width */
    margin: auto;
}

Ниже приведена демонстрация на основе учебника, который вы связаны:

.nav-links {
  width: fit-content;
  margin:auto;
}

/*//////////////  W3Schools CSS code //////////////*/

/* Add a black background color to the top navigation */
.topnav {
  background-color: #333;
  overflow: hidden;
}

/* Style the links inside the navigation bar */
.topnav a {
  float: left;
  display: block;
  color: #f2f2f2;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
  font-size: 17px;
}

/* Change the color of links on hover */
.topnav a:hover {
  background-color: #ddd;
  color: black;
}

/* Add an active class to highlight the current page */
.topnav a.active {
  background-color: #4CAF50;
  color: white;
}

/* Hide the link that should open and close the topnav on small screens */
.topnav .icon {
  display: none;
}
<!-- Load an icon library to show a hamburger menu (bars) on small screens -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">

<div class="topnav" id="myTopnav">
  <div class="nav-links">
    <a href="#home" class="active">Home</a>
    <a href="#news">News</a>
    <a href="#contact">Contact</a>
    <a href="#about">About</a>
    <a href="javascript:void(0);" class="icon" onclick="myFunction()">
      <i class="fa fa-bars"></i>
    </a>
  </div>
</div>
...