【发布时间】:2018-03-07 01:32:26
【问题描述】:
我有一些装饰性内容,我想在弹性项目之间对齐,这些项目之间用空格对齐。
项目具有动态宽度。
以下演示中的结果是我正在寻找的结果,除了因为内容纯粹是装饰性的 - 我想为他们使用生成的内容而不是实际元素。
ul {
display: flex;
justify-content: space-between;
align-items: center;
list-style: none;
padding: 0;
}
li:nth-child(odd) {
background-color: lime;
padding: 10px 20px
}
li:nth-child(even) {
margin: 0 auto;
}
<ul class="wpr">
<li>this is item 1</li>
<li>X</li>
<li>item 2</li>
<li>X</li>
<li>item 3 is considerably wider</li>
<li>X</li>
<li>item 4</li>
</ul>
Codepen demo(调整大小看效果)
我试图通过使用绝对定位来做到这一点 - 但我不知道是否有一种机制可以以这种方式将项目之间的内容居中:
ul {
display: flex;
justify-content: space-between;
align-items: center;
list-style: none;
padding: 0;
}
li {
background-color: lime;
padding: 10px 20px;
position: relative;
}
li:after {
content: 'X';
position: absolute;
right: -50%; /* this obviously won't produce the correct centering */
}
<ul class="wpr">
<li>this is item 1</li>
<li>item 2</li>
<li>item 3 is considerably wider</li>
<li>item 4</li>
</ul>
是否可以通过 CSS 使用生成的内容而不是实际元素来添加此内容?
【问题讨论】:
-
我不确定你在问什么,演示是否描述了你试图实现的行为?如果是,那么问题是什么,如果不是,应该有什么不同?
-
你想用 CSS 生成 X 吗?
-
@MichaelB 在演示中 - 我在 X 的标记中使用了实际元素 - 我想为此使用生成的内容
-
@TemaniAfif 是的,我希望它在项目之间水平居中
-
有趣,我想您希望它们成为任何类型的元素?也许是一个图标或图像?