• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

CSS-清除多行盒子排列每行最后盒子外边距属性

武飞扬头像
lychee z
帮助2

在项目中我曾经碰到过多行盒子排列,为了盒子之间的间隔从而添加了margin-right属性,但在每一行的最后一个元素的margin-right属性总是会影响到盒子的布局,从而导致本应该出现在当前行最后一个的盒子因为该属性导致空间不够从而被换行到下一行进而导致的UI显示问题。
通过多次的实践思考我想到了几种解决的办法,也因此希望在这里进行心得记录,其具体的解决方法如下:

①使用结构伪类选择器进行筛选
nth-child()
在类名为test的盒子样式上则如下所示:

.test:nth-child(4n){
	margin-right: 0;
}

在nth-child()当中n是从0开始,所以当可以计算出一行会有多少个盒子时则可以使用倍数进行选取,比如上面4n就是代表每行4个盒子

②在父级盒子上使用calc函数

<div class="father">
	<div class-"block">
		<div class="son">1</div>
		<div class="son">2</div>
		<div class="son">3</div>
		<div class="son">4</div>
		<div class="son">5</div>
		<div class="son">6</div>
		<div class="son">7</div>
		<div class="son">8</div>
	</div>
</div>

在如上的html中我们可以使用一个类名为block的盒子来进行隔离,从而使用下面所示的css样式

.father {
	width: 800px;
	height: 600px;
	........
}
.block {
	width: calc(100%   25px);
}
.son {
	margin-right: 25px;
	margin-bottom: 10px;
	........
}

在这里我为每个盒子都设定margin-right属性为25px,因此在每一行的最后一个盒子就会因为对于的margin-right属性从而导致被迫换行,而在father和son两个盒子之间使用一个content盒子进行间隔,然后利用calc函数计算宽度值为father margin-right的属性值,这样就可以间接去除每一行最后一个盒子的margin-right属性

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhiceefj
系列文章
更多 icon
同类精品
更多 icon
继续加载