无法居中导航菜单

时间:2019-01-28 02:53:21

标签: html css

我似乎无法在导航菜单中将文本居中。

下面是代码段。

ul {
  list-style-type: none;
  margin: 0 auto;
  padding: 0;
  overflow: hidden;
  background-color: black;
  text-align: center;
}

li {
  float: left;
  display: inline-block;
}

li a {
  display: block;
  color: #FDE635;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}

li a:hover:not(.active) {
  background-color: black;
}

.active {
  background-color: white;
  color: black;
}
<ul>
  <li><a class="active" href="#home">Home</a></li>
  <li><a href="#faq">FAQ</a></li>
  <li><a href="#download">Download</a></li>
</ul>

当我希望它们居中时,菜单栏中的所有文本都左对齐。任何帮助表示赞赏!

3 个答案:

答案 0 :(得分:0)

结合arieljuod的注释,您所需要的只是一个容器,该容器将列表居中,可以使用flexbox轻松完成。

.d-flex {
  display: flex;
}

.flex-center {
  justify-content: center;
  align-items: center;
}

.nav > ul {
  list-style: none;
}

.nav > ul > li {
  display: inline-block;
  padding: 20px;
}

.nav > ul > li a {
  text-decoration: none;
  color: black;
}
<div class="nav d-flex flex-center">
  <ul>
    <li><a href="#">Nav Link</a></li>
    <li><a href="#">Nav Link</a></li>
    <li><a href="#">Nav Link</a></li>
    <li><a href="#">Nav Link</a></li>
  </ul>
</div>

另外,这是pen:)

答案 1 :(得分:0)

float:left中删除li,菜单将居中

ul {
  list-style-type: none;
  margin: 0 auto;
  padding: 0;
  overflow: hidden;
  background-color: black;
  text-align: center;
}

li {
  display: inline-block;
}

li a {
  display: block;
  color: #FDE635;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}

li a:hover:not(.active) {
  background-color: black;
}

.active {
  background-color: white;
  color: black;
}
<ul>
  <li><a class="active" href="#home">Home</a></li>
  <li><a href="#faq">FAQ</a></li>
  <li><a href="#download">Download</a></li>
</ul>

答案 2 :(得分:0)

只需尝试将一些css-flex属性添加到您的列表中即可:

ul {
display: flex;
justify-content: center;
flex-wrap: wrap;
}