2 回答
TA贡献1851条经验 获得超3个赞
似乎您正在尝试获取CSS中无序列表中的项目数量(也许根据同级对象的数量来更改其大小?)。
实际上,您不能将数据属性用作Sass变量。但是,给定父项中的项数,有一种纯CSS方法可以应用条件样式。另外,它很容易用Sass编写。
假设您列表中的最大项目数为10,并且您要基于列表中li标签的数量来计算li标签的大小。
@for $i from 1 through 10 {
li:first-child:nth-last-child(#{$i}),
li:first-child:nth-last-child(#{$i}) ~ li {
width: (100%/$i);
}
}
这将输出以下CSS:
li:first-child:nth-last-child(1),
li:first-child:nth-last-child(1) ~ li {
width: 100%;
}
li:first-child:nth-last-child(2),
li:first-child:nth-last-child(2) ~ li {
width: 50%;
}
li:first-child:nth-last-child(3),
li:first-child:nth-last-child(3) ~ li {
width: 33.33333%;
}
li:first-child:nth-last-child(4),
li:first-child:nth-last-child(4) ~ li {
width: 25%;
}
li:first-child:nth-last-child(5),
li:first-child:nth-last-child(5) ~ li {
width: 20%;
}
li:first-child:nth-last-child(6),
li:first-child:nth-last-child(6) ~ li {
width: 16.66667%;
}
li:first-child:nth-last-child(7),
li:first-child:nth-last-child(7) ~ li {
width: 14.28571%;
}
li:first-child:nth-last-child(8),
li:first-child:nth-last-child(8) ~ li {
width: 12.5%;
}
li:first-child:nth-last-child(9),
li:first-child:nth-last-child(9) ~ li {
width: 11.11111%;
}
li:first-child:nth-last-child(10),
li:first-child:nth-last-child(10) ~ li {
width: 10%;
}
基本上,这使li标签的宽度为:
100.0% 当只有一个li标签时
50.00% 当有2个li标签时
33.33% 当有3个li标签时
25.00% 当有4个li标签时
20.00% 当有5个li标签时
16.66% 当有6个li标签时
14.28% 当有7个li标签时
12.50% 当有8个li标签时
11.11% 当有9个li标签时
10.00% 当有10个li标签时
有关实时示例,请参考我使用相同技巧进行的演示。希望对您有所帮助。
添加回答
举报