html - 下面代码中添加内容0x​​104567910的目的是什么?

标签 html css

我看到了以下 CSS,用于水平对齐 div 中的元素

<ul id="nav">
    <li><a href="#">HOME</a></li>
    <li><a href="#">ABOUT</a></li>
    <li><a href="#">BASIC SERVICES</a></li>
    <li><a href="#">OUR STAFF</a></li>
    <li><a href="#">CONTACT US</a></li>
</ul>

#nav {
text-align: justify;
min-width: 500px;
}

#nav:after {
content: '';
display: inline-block;
width: 100%;
}

#nav li {
display: inline-block;
} 

http://jsfiddle.net/danield770/9hh86/

内容“”的目的是什么? 我知道它会在“nav”div 的末尾添加一个空格,但是为什么这有助于对齐列表元素?

最佳答案

具体而言,content: '' 声明的目的是为了能够呈现 :after 伪元素。没有它,就不会有伪元素,就好像 :after 规则完全丢失了。

您引用的元素末尾的空间是 100% 宽度的内联 block 。这会导致它换行到列表元素之后的下一行,因为没有足够的空间将其放在同一行上。由于 text-align: justify 声明,这种换行会强制其前面的行中的列表元素对齐。

您可以通过向其添加轮廓来查看 :after 的具体渲染位置,如下所示:

#nav {
  text-align: justify;
  min-width: 500px;
  padding: 0;
}

#nav:after {
  content: '';
  display: inline-block;
  width: 100%;
  outline: 1px solid;
}

#nav li {
  display: inline-block;
}
<ul id="nav">
    <li><a href="#">HOME</a></li>
    <li><a href="#">ABOUT</a></li>
    <li><a href="#">BASIC SERVICES</a></li>
    <li><a href="#">OUR STAFF</a></li>
    <li><a href="#">CONTACT US</a></li>
</ul>

关于html - 下面代码中添加内容0x​​104567910的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34035469/

相关文章:

html - 单击透明区域下方的链接(三 Angular 形或多边形链接)

javascript - 如何在几秒钟内更改聚焦元素的背景颜色?

iphone - 在 iPhone 和 iPad 版 Chrome 上进行 translate3d 期间图像消失

css - 如何并排设置3个div,以便中间div可以随着表单调整大小而拉伸(stretch)

javascript - 我如何将图像定位为中心甚至调整窗口大小

javascript - 尝试使用 jquery 使图像旋转

html - Bootstrap 4 由边框包围的导航栏菜单

html - UI-select 下拉选项未显示在面板正文上方

javascript - 通过隐藏/显示重新定位 iframe

html - 是否可以更改 Shiny Dashboard 标题中单个字符的颜色?