使用第 n 个类型设置一组八个元素的样式
style a group of eight elements with nth-of-type?
我想设置一组div的样式,以便每八个元素获得相同的左位置。所以不是每个元素,而是一组八个元素。我已经用css/jquery尝试过这个,但它只每八个元素设置一次样式,这是错误的。
var cells = $('.board-cells'),
cellUnit = 70,
startPos = -35;
var left;
for(j=0; j<8; j++){
left = startPos+(cellUnit*j+1) + 'px';
}
for(i=0; i<cells.length; i+=8){
var cellItem = $('.board-cells:nth-of-type('+i+'n+0)');
cellItem.css('left', left);
}
如果你正在尝试制作一个网格,你可以创建一个固定宽度的外部div,然后每个瓷砖可以有一个固定的宽度,大约是外部div宽度的1/7,并具有float:left样式。
如果你的数学做对了,那么每个第 8 个div 应该自动中断到下一行。
阅读浮动div(和清除浮动!在这里 https://css-tricks.com/all-about-floats/全餐优惠
怎么样,没有脚本,只有CSS。
html, body {
margin: 0;
}
.container {
display: flex;
flex-wrap: wrap;
}
.container .img {
height: 70px;
width: calc(100% / 8);
background: red;
border: 2px solid white;
box-sizing: border-box;
}
.container .img:nth-of-type(8n+1):after {
content: '1';
}
.container .img:nth-of-type(8n+2):after {
content: '2';
}
.container .img:nth-of-type(8n+3):after {
content: '3';
}
.container .img:nth-of-type(8n+4):after {
content: '4';
}
.container .img:nth-of-type(8n+5):after {
content: '5';
}
.container .img:nth-of-type(8n+6):after {
content: '6';
}
.container .img:nth-of-type(8n+7):after {
content: '7';
}
.container .img:nth-of-type(8n+8):after {
content: '8';
}
<div class="container">
<div class="img"></div><div class="img"></div>
<div class="img"></div><div class="img"></div>
<div class="img"></div><div class="img"></div>
<div class="img"></div><div class="img"></div>
<div class="img"></div><div class="img"></div>
<div class="img"></div><div class="img"></div>
<div class="img"></div><div class="img"></div>
<div class="img"></div><div class="img"></div>
</div>
使用此 CSS,您可以使用左值定位每个组
.container .img:nth-of-type(8n+1) {
left: -34px;
}
.container .img:nth-of-type(8n+2) {
left: 36px;
}
.container .img:nth-of-type(8n+3) {
left: 106px;
}
.container .img:nth-of-type(8n+4) {
left: 176px;
}
.container .img:nth-of-type(8n+5) {
left: 246px;
}
.container .img:nth-of-type(8n+6) {
left: 316px;
}
.container .img:nth-of-type(8n+7) {
left: 386px;
}
.container .img:nth-of-type(8n+8) {
left: 456px;
}
这应该可以解决您的问题:
var cellUnit = 70;
var startPos = -35;
$('.board-cells').each(function (i, el) {
$(el).css('left', startPos + cellUnit * (i % 8) + 1 + 'px');
});
演示
相关文章:
- fluxxor向一个flux实例添加一组以上的操作
- 我们怎样才能将内含子J用于一组特定的元素
- 使用linq.js按当前日期订购一组momentjs日期
- 正则表达式,从一组关键字中获取奇数
- 创建一组元素JointJS
- 如何在javascript中获取一组复选框值
- 一组(共组..)
- 使用JS将页面中的每个字母设置为随机颜色.为什么在页面的每个打开标记之前总是有一组额外的span标记
- 在一组复选框中,一次只允许选择一个
- 为什么在fabricjs中可选择的不适用于一组圆
- 如何在不刷新页面的情况下每次单击一组选项卡时刷新视图内容窗格
- 从一组具有相同起始和结束的所有段落的段落中提取包含特定字符串的段落
- 简单的Javascript文本编辑器或一组函数
- 基于日期范围的一组日期范围内的天数
- 处理对象数组并将它们以 4 个为一组进行分配
- 如何在 Javascript 中用一组字符拆分子字符串上的字符串
- 使一组对象与 jQuery 一起拖动
- 使用第 n 个类型设置一组八个元素的样式
- 一次循环遍历一组
- 如何在动态 js 中更改一组节点的颜色