文章目录
- 前言
- 一、负边距
- 一、nth-child()系列)
前言
如何从最后一列的每个元素中删除边距?
在元素宽度不确定的情况下,或者如果屏幕很小或用户调整浏览器大小,则每行排列的个数就不确定
因此,在任何情况下,最后一列中出现的任何元素(可以是一个或多个然后是一个)。我想删除margin-right。
除非您确切知道每行有多少个元素(通过选择器的nth-child()系列),否则无法使用纯CSS在每行的特定元素上删除或添加样式。
<ul><li>item 1</li><li>item 2</li><li>item 3</li><li>item 4</li><li>item 5</li><li>item 6</li><li>item 7</li><li>item 8</li><li>item 9</li>
</ul>
一、负边距
通过在父元素上添加负边距来伪装它们。这会给人一种幻想,即您的子元素适合放在父元素内,而各个元素之间仍然有间距
ul {margin-left: -5px;margin-right: -5px;
}li {margin-left: 5px;margin-right: 5px;
}
li:last-child{margin-right: 5px;
}
注意:这可能需要在祖先元素上添加overflow-x: hidden来防止水平滚动,具体取决于容器元素与视口边缘的接近程度。
一、nth-child()系列)
如果可以合理地预测每行有多少个项目,则可以使用媒体查询通过nth-child()定位该行中的最后一个项目。这比使用负边距要冗长得多,但它可以让您进行其他样式调整
@media (min-width: 400px) and (max-width: 499px) {li:nth-child(even) {margin-right: 0;border-right: none;}
}@media (min-width: 500px) and (max-width: 599px) {li:nth-child(3n+3) {margin-right: 0;border-right: none;}
}@media (min-width: 600px) and (max-width: 799px) {li:nth-child(4n+4) {margin-right: 0;border-right: none;}
}