Как центрировать содержимое навигации и обеспечить растягивание фона на всю ширину на больших экранах?

Я пытаюсь оптимизировать панель навигации моего сайта для больших экранов и столкнулся с двумя проблемами:

  1. Содержимое внутри панели навигации не центрируется, если ширина экрана превышает 800 пикселей.

  2. Цвет фона панели навигации не распространяется на всю ширину экрана; он останавливается на отметке 800 пикселей.

Как я могу изменить свой CSS, чтобы содержимое внутри контейнера .max-width располагалось по центру в пределах 800 пикселей. Во-вторых, сделать так, чтобы цвет фона панели навигации распространялся по всей ширине экрана, сохраняя при этом содержимое по центру?

Вот мой код:

body {
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 0;
    color: white;
}

.max-width {
    max-width: 800px;
    margin: 0 auto;
}

nav {
    background-color: #333;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 20px;
}

nav ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    display: flex;
}

nav ul li a {
    color: white;
    text-decoration: none;
    padding: 15px 20px;
    display: block;
}

nav ul li a:hover {
    background-color: #555;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5);
    border-radius: 4px;
}
<nav class = "max-width">
    <ul>
        <li><a href = "#home">Home</a></li>
        <li><a href = "#about">About</a></li>
        <li><a href = "#services">Services</a></li>
        <li><a href = "#contact">Contact</a></li>
    </ul>
    <div>
        <span>Light | Dark</span>
    </div>
</nav>
Улучшение производительности загрузки с помощью 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 страниц, которые помогут...
0
0
50
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Исправления для предотвращения горизонтальной прокрутки:

body {
  font-family: Arial, sans-serif;
  margin: 0;
  padding: 0;
  color: white;
  overflow-x: hidden;
}

nav {
  background-color: #333;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
  width: 100%;
  padding: 0 20px;
  box-sizing: border-box;
}

nav .max-width {
  max-width: 100%;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  box-sizing: border-box;
}

nav ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

nav ul li {
  margin: 0;
}

nav ul li a {
  color: white;
  text-decoration: none;
  padding: 15px 20px;
  display: block;
}

nav ul li a:hover {
  background-color: #555;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5);
  border-radius: 4px;
}

nav .extra-content {
  color: white;
  display: flex;
  align-items: center;
  font-size: 16px;
}
<nav>
  <div class = "max-width">
    <ul>
      <li><a href = "#home">Home</a></li>
      <li><a href = "#about">About</a></li>
      <li><a href = "#services">Services</a></li>
      <li><a href = "#contact">Contact</a></li>
    </ul>
    <div class = "extra-content">
      <span>Light | Dark </span>
    </div>
  </div>
</nav>

Дополнительные рекомендации:

  1. Тестируйте на разных устройствах:

Цель: обеспечить хорошую адаптацию дизайна к экранам различных размеров и устройствам. Эффект: помогает выявить и исправить любые проблемы с макетом, которые могут быть не заметны на всех экранах.

  1. Используйте медиа-запросы:

Цель: применить разные стили в зависимости от размера экрана. Эффект: предоставляет возможность настроить размеры шрифта, отступы или другие стили для небольших экранов.

@media (max-width: 600px) {
    nav ul {
        flex-direction: column; 
    }
    nav .extra-content {
        font-size: 14px;
    }
}
  1. Включить метатег области просмотра:

Цель: Обеспечить правильное масштабирование и макет на мобильных устройствах. Эффект: делает страницу адаптивной и позволяет избежать проблем с макетом на разных устройствах.

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

Переместите элементы меню гибкого макета внутри элемента, который применяет максимальную ширину. Разделите эти проблемы.

body {
  font-family: Arial, sans-serif;
  margin: 0;
  padding: 0;
  color: white;
}

.max-width {
  max-width: 800px;
  margin: 0 auto;
}

nav {
  background-color: #333;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
}

.nav-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 20px;
}

nav ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
  display: flex;
}

nav ul li a {
  color: white;
  text-decoration: none;
  padding: 15px 20px;
  display: block;
}

nav ul li a:hover {
  background-color: #555;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5);
  border-radius: 4px;
}
<nav>
  <div class = "nav-inner max-width">
    <ul>
      <li><a href = "#home">Home</a></li>
      <li><a href = "#about">About</a></li>
      <li><a href = "#services">Services</a></li>
      <li><a href = "#contact">Contact</a></li>
    </ul>
    <div>
      <span>Light | Dark</span>
    </div>
  </div>
</nav>

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