CSS对齐导航栏

示例

水平对齐的导航(菜单)栏包含一些应该对齐的项目。容器中的第一个(左)项目没有左边距,容器中的最后一个(右)项目没有右边距。项目之间的距离是相等的,与单个项目的宽度无关。

的HTML

<nav>
    <ul>
        <li>abc</li>
        <li>abcdefghijkl</li>
        <li>abcdef</li>
    </ul>
</nav>

的CSS

nav {
    width: 100%;
    line-height: 1.4em;
}
ul {
    list-style: none;
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    text-align: justify;
    margin-bottom: -1.4em;
}
ul:after {
    content: "";
    display: inline-block;
    width: 100%;
}
li {
    display: inline-block;
}

笔记

  • 的nav,ul并且li标签被选择为他们的“导航(菜单)项的列表”语义。当然也可以使用其他标签。

  • 所述:after伪元素引起的额外“行” ul,因此额外的,该块的空高度,推其他内容下来。这可以通过负数来解决,该负数margin-bottom必须具有与相同的幅度line-height(但为负数)。

  • 如果页面变得太窄而无法容纳所有项目,则这些项目将中断到新行(从右开始),并在此行上进行调整。菜单的总高度将根据需要增加。