html - 如何使 flexbox 导航栏中的列表项居中?

标签 html css flexbox navbar

我有以下代码:

.flex {
  display: flex;
  background-color: yellow;
  list-style-type: none;
}

.flex > li {
  flex: 1;
  border: 1px solid black;
  align-items: center;
}
<nav>
  <ul class="flex">
    <!--Logo as a link-->
    <li><a href="{% url 'index' %}">Logo</a></li>
    <li><a>REGISTER</a></li>
    <li><a>LOGIN</a></li>
    <!--Search Bar-->
    <li class="search_bar">
      <form method="GET" action="{% url 'search' %}">
        <input name="query" type="text" placeholder="Zip Code or City/Town">
        <button class="btn btn-outline-success text-white my-2 my-sm-0" type="submit"></button>
      </form>
    </li>
  </ul>
</nav>

http://jsfiddle.net/0jh3fud9/2/

如何使列表项(“LOGO”、“REGISTER”、“LOGIN”、“SEARCH”)在它们所在的边框内居中?

最佳答案

尝试将注释的 CSS 规则添加到您的 li 元素 ( see updated fiddle ):

.flex > li {
    display: flex; // <-- make flex items
    align-items: center; // <-- center vertically in box
    justify-content: center; // <-- center horizontally in box
    flex: 1;
    border: 1px solid black;
    align-items: center;
}

这将使每个列表项也表现为 flex 元素,并将它们在其父级中水平和垂直居中。

关于html - 如何使 flexbox 导航栏中的列表项居中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51070057/

相关文章:

html - 带百分比的最小和最大尺寸

html - 更改 Bootstrap 下拉项的文本颜色

html - 如何使这两个元素并排

javascript - 具有自动高度的表单面板内的复合字段

php - 从数据库加载 css 值

css - 悬停时子菜单位于主菜单后面

html - flexbox-如何包装到最长元素的宽度?

html - Flexbox:居中正文内容

css - 将 flex 元素对齐到 flex-end

html - 父 div CSS 类未添加到子 div