看起來好像你正在嘗試獲取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