Я пытаюсь оптимизировать панель навигации моего сайта для больших экранов и столкнулся с двумя проблемами:
Содержимое внутри панели навигации не центрируется, если ширина экрана превышает 800 пикселей.
Цвет фона панели навигации не распространяется на всю ширину экрана; он останавливается на отметке 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>
Исправления для предотвращения горизонтальной прокрутки:
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>
Дополнительные рекомендации:
Цель: обеспечить хорошую адаптацию дизайна к экранам различных размеров и устройствам. Эффект: помогает выявить и исправить любые проблемы с макетом, которые могут быть не заметны на всех экранах.
Цель: применить разные стили в зависимости от размера экрана. Эффект: предоставляет возможность настроить размеры шрифта, отступы или другие стили для небольших экранов.
@media (max-width: 600px) {
nav ul {
flex-direction: column;
}
nav .extra-content {
font-size: 14px;
}
}
Цель: Обеспечить правильное масштабирование и макет на мобильных устройствах. Эффект: делает страницу адаптивной и позволяет избежать проблем с макетом на разных устройствах.
Переместите элементы меню гибкого макета внутри элемента, который применяет максимальную ширину. Разделите эти проблемы.
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>