看起来好像你正在尝试获取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%;
}
基本上,这给出了李标签的宽度:
100.0%
当仅存在一个李标签
50.00%
当有2个标签时
33.33%
当有3个李标签
25.00%
当有4个李标签
20.00%
当有5个李标签
16.66%
当有6个李标签
14.28%
当有7个李标签
12.50%
当有8个李标签
11.11%
当有9个李标签
10.00%
当有10里吨ags
举一个实例,请参考this demo我的确使用了相同的技巧。我希望它有帮助。
http://caniuse.com/#feat=css-counters – SLaks
有趣的是,我不知道那个......不幸的是,它似乎只能处理'content:',但我需要整数来计算东西。无论如何,我今天学到了东西,谢谢。 – joschaf