【发布时间】:2018-03-27 16:37:06
【问题描述】:
以下是我运行良好的代码,除了容器中的最后一行从.tag css 类添加margin-bottom: 5px;。
我面临的问题是标签列表是动态的,所以我不能直接针对 Item-13,14 等等。
让我知道在 flex 中我们是否有权在我的 flex 容器的最后一行添加自定义 css。
* {
margin: 0;
padding: 0;
}
html, body {
box-sizing: border-box;
}
.container {
width: 600px;
margin: 0 auto;
margin-top: 25px;
border: 1px solid;
padding: 5px;
}
.tags {
list-style-type: none;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: flex-start;
}
.tag {
padding: 5px;
background-color: #76FF03;
margin: 0 5px 5px;
}
<div class="container">
<ul class="tags">
<li class="tag item-1">Tag Item 1</li>
<li class="tag item-2">Tag Item 2</li>
<li class="tag item-3">Tag Item 3</li>
<li class="tag item-4">Tag Item 4</li>
<li class="tag item-5">Tag Item 5</li>
<li class="tag item-6">Tag Item 6</li>
<li class="tag item-7">Tag Item 7</li>
<li class="tag item-8">Tag Item 8</li>
<li class="tag item-9">Tag Item 9</li>
<li class="tag item-10">Tag Item 10</li>
<li class="tag item-11">Tag Item 11</li>
<li class="tag item-12">Tag Item 12</li>
<li class="tag item-13">Tag Item 13</li>
<li class="tag item-14">Tag Item 14</li>
<li class="tag item-15">Tag Item 15</li>
<li class="tag item-16">Tag Item 16</li>
</ul>
</div>
【问题讨论】:
-
使用
ul.tags > li:last-child {margin-bottom: 0} -
您始终可以使用 CSS 选择器
:last-child或:last-of-type -
你可以试试这个
li.tag:nth-child(12) ~ li.tag { margin-bottom: 0; }。也就是说,所有li元素具有.tag类,从第 12 个孩子开始。 -
@Krusader
the tag list is dynamic -
@Morpheus 它将从最后一个元素中删除边距底部,而不是从行底部的所有堆叠元素中删除,即。在这种情况下第 13 项、第 14 项、第 15 项和第 16 项,只有第 16 项会受到 last-child 的影响