#html #css #navbar #centering #navigationbar
#HTML #css #панель навигации #центрирование
Вопрос:
Моя панель навигации неправильно центрируется, и это сводит меня с ума — с левой стороны от нее немного больше пробелов. Заранее большое вам спасибо. Вот код
HTML:
<div class="navbar">
<ul class="navitems">
<li>
<a class="current" href="index.html">Home</a>
</li>
<li>
<a href="podcasts.html">Podcasts</a>
</li>
<li>
<a href="articles.html">Articles</a>
</li>
<li>
<a href="merch.html">Merch</a>
</li>
<li>
<a href="aboutus.html">About Us</a>
</li>
</ul>
</div>
CSS:
body {
margin:0
}
.navbar {
text-align: center;
border: 1px solid black;
width: 100%;
margin-left: auto;
margin-right: auto;
}
.navitems ul {
list-style: none;
}
.navitems li {
display: inline-block;
padding-top: 1.5%;
padding-bottom: 1.5%;
padding-right: 3%;
padding-left: 3%;
border: 1px solid blue;
width: 12%;
font-size: 20px;
}
.navitems a {
color: black;
text-decoration: none;
font-family: georgia;
}
.navitems li:hover a{
transition: all ease-in-out .5s;
color: #f88122;
text-decoration: underline;
}
Ответ №1:
<ul>
у тега естьpadding-inline-start
стиль по умолчанию, поэтому он необходим для сброса этого значения.- Чтобы выровнять элементы по середине, необходимо установить
vertical-align: middle
на<li>
элементы. .navitems ul
указывает на<ul>
селектор внутри.navitems
селектора. И из вашего html-кода вы должны изменить его наul.navitems
.
Ниже приведен рабочий фрагмент.
body {
margin: 0
}
.navbar {
text-align: center;
border: 1px solid black;
width: 100%;
margin-left: auto;
margin-right: auto;
}
ul.navitems {
list-style: none;
padding-inline-start: 0;
}
.navitems li {
display: inline-block;
padding-top: 1.5%;
padding-bottom: 1.5%;
padding-right: 3%;
padding-left: 3%;
border: 1px solid blue;
width: 12%;
font-size: 20px;
vertical-align: middle;
}
.navitems a {
color: black;
text-decoration: none;
font-family: georgia;
}
.navitems li:hover a {
transition: all ease-in-out .5s;
color: #f88122;
text-decoration: underline;
}
<div class="navbar">
<ul class="navitems">
<li><a class="current" href="index.html">Home</a></li>
<li><a href="podcasts.html">Podcasts</a></li>
<li><a href="articles.html">Articles</a></li>
<li><a href="merch.html">Merch</a></li>
<li><a href="aboutus.html">About Us</a></li>
</ul>
</div>
Комментарии:
1. @Kyle не забывайте, что вы можете пометить вопрос как «принятый» и / или проголосовать за него 🙂
Ответ №2:
Если вы проверите свой код, вы обнаружите, что ваш селектор неверен в .navitems
том, что вам не нужно добавлять ul, и для ul есть padding-left , поэтому заполнение должно быть нулевым. Удачи
body {
margin:0
}
.navbar {
text-align: center;
border: 1px solid black;
width: 100%;
margin-left: auto;
margin-right: auto;
}
.navitems { /* Change the css selector */
list-style: none;
padding: 0 !important; /* Add this line */
}
.navitems li {
display: inline-block;
padding-top: 1.5%;
padding-bottom: 1.5%;
padding-right: 3%;
padding-left: 3%;
border: 1px solid blue;
width: 12%;
font-size: 20px;
}
.navitems a {
color: black;
text-decoration: none;
font-family: georgia;
}
.navitems li:hover a{
transition: all ease-in-out .5s;
color: #f88122;
text-decoration: underline;
}
<div class="navbar">
<ul class="navitems p-0">
<li><a class="current" href="index.html">Home</a></li><li><a href="podcasts.html">Podcasts</a></li><li><a href="articles.html">Articles</a></li><li><a href="merch.html">Merch</a></li><li><a href="aboutus.html">About Us</a></li>
</ul>
</div>