html - 如果删除元素后的新行, li 对齐行为会很奇怪

标签 html css alignment

我在 html 模板中有下一个导航 block

<nav class="navigation">
    <ul class="nav">
        <li><a href="#">Item 1</a></li>
        <li><a href="#">Item 2</a></li>
        <li><a href="#">Item 3</a></li>
        <li><a href="#">Item 4</a></li>
        <li><a href="#">Item 5</a></li>
        <li><a href="#">Item 6</a></li>
    </ul>
</nav>

使用 CSS

.navigation {
     padding: 0 0 19px;
 }

.nav {
    font: 20px/22px "futura_demi_c", Arial, Helvetica, sans-serif;
    text-align: justify;
    text-align-last: justify;
    list-style-type: none;
    padding: 0;
    margin: 0;
}
.nav:after {
    content: "";
    display: inline-block;
    width: 100%;
    overflow: hidden;
}
.nav li {
    display: inline-block;
}
.nav a {
    color: #020202;
}

元素必须在导航 block 中对齐并占据整个宽度。如果我使用上面的代码,它们就是。

但是如果我在每个“li”之后删除新行,所有元素都会向右移动,它们之间没有空格

<nav class="navigation">
    <ul class="nav">
        <li><a href="#">Item 1</a></li><li><a href="#">Item 2</a></li><li><a href="#">Item 3</a></li><li><a href="#">Item 4</a></li><li><a href="#">Item 5</a></li><li><a href="#">Item 6</a></li>
    </ul>
</nav>

这是正常行为还是我的 css 有误? 所有浏览器的行为都是相同的。 Jsfiddle 示例:正确 - http://jsfiddle.net/x9zfP/1错误 - http://jsfiddle.net/AMK8z/1/ 谢谢!

最佳答案

该行为是预期的,因为 display: inline-block .这意味着将考虑元素之间的空格。

另见 CSS-Tricks - Fighting the Space Between Inline Block Elements

关于html - 如果删除元素后的新行, li 对齐行为会很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20166232/

相关文章:

html - H1、H2 等在 DL 中有效吗?

javascript - 为现有值添加跨度

javascript - LESS 如何在达到 100% 时更改进度条背景颜色

css - 试图控制宽度和右对齐,只有一个有效

Android对齐两个按钮

javascript - Android手机打开网页时如何播放 'notification'的声音?

javascript - 正则表达式匹配段落中的单词但排除内部 HTML 标签

css - 在tinymce中嵌入php js html代码,可能吗?

css - 继承 CSS 变量,或回退到默认值

html - flexbox 垂直居中加上一个粘性页脚