CSS将列表项水平居中并向右居中



我在居中li时遇到问题,因为它们都在导航栏的正确位置,并且垂直居中。我希望它们在调整大小时也不会从导航栏中剪切出来。

* {
margin: 0;
padding: 0;
border: 0;
}
body {
margin: 0 10vw;
background-color: #E7E7E7;
}
.main-site {
background-color: white;
}
.main-body {
padding-top: 6vh;
}
nav,
.bottom-nav {
position: fixed;
background-color: red;
height: 6vh;
width: 80vw;
}
.nav-list {
position: absolute;
margin: 1% 0;
right: 3vw;
}
.nav-items {
list-style: none;
right: auto;
display: inline-block;
font-size: 20px;
padding: 0 1vw;
}
<div class="main-site">
<nav>
<ul class="nav-list">
<li class="nav-items"><a href=""> Item 1</a></li>
<li class="nav-items"><a href=""> Item 2</a></li>
<li class="nav-items"><a href=""> Item 3</a></li>
<li class="nav-items"><a href=""> Item 4</a></li>
</ul>
</nav>
</div>

您只需要删除导航的视图高度并停止绝对定位。使用flexbox,下面的导航css将在调整大小时做出响应。

* {
margin: 0;
padding: 0;
border: 0;
}
body {
margin: 0 10vw;
background-color: #E7E7E7;
}
.main-site {
background-color: white;
}
.main-body {
padding-top: 6vh;
}
nav,
.bottom-nav {
display:flex;
justify-content: flex-end;
margin-left: auto;
background-color: red;
width: 80vw;
}
.nav-list {
margin: 1% 0;
right: 3vw;
}
.nav-items {
list-style: none;
right: auto;
display: inline-block;
font-size: 20px;
padding: 0 1vw;
}
<body>
<div class="main-site">
<nav>
<ul class="nav-list">
<li class="nav-items"><a href=""> Item 1</a></li>
<li class="nav-items"><a href=""> Item 2</a></li>
<li class="nav-items"><a href=""> Item 3</a></li>
<li class="nav-items"><a href=""> Item 4</a></li>
</ul>
</nav>
</div>
</body>

在导航元素上使用display flex,而不是暴力绝对定位:(

* {
margin: 0;
padding: 0;
border: 0;
}
body {
margin: 0 10vw;
background-color: #E7E7E7;
}
.main-site {
background-color: white;
}
.main-body {
padding-top: 6vh;
}
nav {
display: flex;
align-items: center;
justify-content: right;
}
nav,
.bottom-nav {
position: fixed;
background-color: red;
width: 80vw;
}
.nav-list {
display: flex;
}
.nav-items {
list-style: none;
right: auto;
font-size: 20px;
padding: 0 1vw;
}
.nav-items a {
display: inline-block;
}
<div class="main-site">
<nav>
<ul class="nav-list">
<li class="nav-items"><a href=""> Item 1</a></li>
<li class="nav-items"><a href=""> Item 2</a></li>
<li class="nav-items"><a href=""> Item 3</a></li>
<li class="nav-items"><a href=""> Item 4</a></li>
</ul>
</nav>
</div>

最新更新