我想设置这个类名:
<div class="col with-v-margin-10"></div>
并在scss中获取我通过类名设置的值,并应用于css规则。
.with-v-margin-${#} {
margin-top: ${#}px;
margin-top: ${#}px;
}
有可能吗?
答案 0 :(得分:1)
我不这么认为。
另一种方法是使用mixins。
@mixin sexy-margin($margin) {
margin-top: ${margin}px;
margin-top: ${margin}px;
}
.with-v-margin-10 { @include sexy-margin(10); }
.with-v-margin-20 { @include sexy-margin(20); }
答案 1 :(得分:0)
您可以使用for循环
@for $i from 1 through 15 {
// Paddings
.pa-#{$i}{
padding: #{$i}rem;
}
.pl-#{$i}{
padding-left: #{$i}rem;
}
.pr-#{$i}{
padding-right: #{$i}rem;
}
.pt-#{$i}{
padding-top: #{$i}rem;
}
.pb-#{$i}{
padding-bottom: #{$i}rem;
}
// margins
.ma-#{$i}{
margin: #{$i}rem;
}
.ml-#{$i}{
margin-left: #{$i}rem;
}
.mr-#{$i}{
margin-right: #{$i}rem;
}
.mt-#{$i}{
margin-top: #{$i}rem;
}
.mb-#{$i}{
margin-bottom: #{$i}rem;
}
}
输出将是
.pa-1 {
padding: 1rem;
}
.pl-1 {
padding-left: 1rem;
}
.pr-1 {
padding-right: 1rem;
}
.pt-1 {
padding-top: 1rem;
}
.pb-1 {
padding-bottom: 1rem;
}
.ma-1 {
margin: 1rem;
}
.ml-1 {
margin-left: 1rem;
}
.mr-1 {
margin-right: 1rem;
}
.mt-1 {
margin-top: 1rem;
}
.mb-1 {
margin-bottom: 1rem;
}
.pa-2 {
padding: 2rem;
}
.pl-2 {
padding-left: 2rem;
}
.pr-2 {
padding-right: 2rem;
}
.pt-2 {
padding-top: 2rem;
}
.pb-2 {
padding-bottom: 2rem;
}
.ma-2 {
margin: 2rem;
}
.ml-2 {
margin-left: 2rem;
}
.mr-2 {
margin-right: 2rem;
}
.mt-2 {
margin-top: 2rem;
}
.mb-2 {
margin-bottom: 2rem;
}
.pa-3 {
padding: 3rem;
}
.pl-3 {
padding-left: 3rem;
}
.pr-3 {
padding-right: 3rem;
}
.pt-3 {
padding-top: 3rem;
}
.pb-3 {
padding-bottom: 3rem;
}
.ma-3 {
margin: 3rem;
}
.ml-3 {
margin-left: 3rem;
}
.mr-3 {
margin-right: 3rem;
}
.mt-3 {
margin-top: 3rem;
}
.mb-3 {
margin-bottom: 3rem;
}
.pa-4 {
padding: 4rem;
}
.pl-4 {
padding-left: 4rem;
}
.pr-4 {
padding-right: 4rem;
}
.pt-4 {
padding-top: 4rem;
}
.pb-4 {
padding-bottom: 4rem;
}
.ma-4 {
margin: 4rem;
}
.ml-4 {
margin-left: 4rem;
}
.mr-4 {
margin-right: 4rem;
}
.mt-4 {
margin-top: 4rem;
}
.mb-4 {
margin-bottom: 4rem;
}
.pa-5 {
padding: 5rem;
}
.pl-5 {
padding-left: 5rem;
}
.pr-5 {
padding-right: 5rem;
}
.pt-5 {
padding-top: 5rem;
}
.pb-5 {
padding-bottom: 5rem;
}
.ma-5 {
margin: 5rem;
}
.ml-5 {
margin-left: 5rem;
}
.mr-5 {
margin-right: 5rem;
}
.mt-5 {
margin-top: 5rem;
}
.mb-5 {
margin-bottom: 5rem;
}
.pa-6 {
padding: 6rem;
}
.pl-6 {
padding-left: 6rem;
}
.pr-6 {
padding-right: 6rem;
}
.pt-6 {
padding-top: 6rem;
}
.pb-6 {
padding-bottom: 6rem;
}
.ma-6 {
margin: 6rem;
}
.ml-6 {
margin-left: 6rem;
}
.mr-6 {
margin-right: 6rem;
}
.mt-6 {
margin-top: 6rem;
}
.mb-6 {
margin-bottom: 6rem;
}
.pa-7 {
padding: 7rem;
}
.pl-7 {
padding-left: 7rem;
}
.pr-7 {
padding-right: 7rem;
}
.pt-7 {
padding-top: 7rem;
}
.pb-7 {
padding-bottom: 7rem;
}
.ma-7 {
margin: 7rem;
}
.ml-7 {
margin-left: 7rem;
}
.mr-7 {
margin-right: 7rem;
}
.mt-7 {
margin-top: 7rem;
}
.mb-7 {
margin-bottom: 7rem;
}
.pa-8 {
padding: 8rem;
}
.pl-8 {
padding-left: 8rem;
}
.pr-8 {
padding-right: 8rem;
}
.pt-8 {
padding-top: 8rem;
}
.pb-8 {
padding-bottom: 8rem;
}
.ma-8 {
margin: 8rem;
}
.ml-8 {
margin-left: 8rem;
}
.mr-8 {
margin-right: 8rem;
}
.mt-8 {
margin-top: 8rem;
}
.mb-8 {
margin-bottom: 8rem;
}
.pa-9 {
padding: 9rem;
}
.pl-9 {
padding-left: 9rem;
}
.pr-9 {
padding-right: 9rem;
}
.pt-9 {
padding-top: 9rem;
}
.pb-9 {
padding-bottom: 9rem;
}
.ma-9 {
margin: 9rem;
}
.ml-9 {
margin-left: 9rem;
}
.mr-9 {
margin-right: 9rem;
}
.mt-9 {
margin-top: 9rem;
}
.mb-9 {
margin-bottom: 9rem;
}
.pa-10 {
padding: 10rem;
}
.pl-10 {
padding-left: 10rem;
}
.pr-10 {
padding-right: 10rem;
}
.pt-10 {
padding-top: 10rem;
}
.pb-10 {
padding-bottom: 10rem;
}
.ma-10 {
margin: 10rem;
}
.ml-10 {
margin-left: 10rem;
}
.mr-10 {
margin-right: 10rem;
}
.mt-10 {
margin-top: 10rem;
}
.mb-10 {
margin-bottom: 10rem;
}
.pa-11 {
padding: 11rem;
}
.pl-11 {
padding-left: 11rem;
}
.pr-11 {
padding-right: 11rem;
}
.pt-11 {
padding-top: 11rem;
}
.pb-11 {
padding-bottom: 11rem;
}
.ma-11 {
margin: 11rem;
}
.ml-11 {
margin-left: 11rem;
}
.mr-11 {
margin-right: 11rem;
}
.mt-11 {
margin-top: 11rem;
}
.mb-11 {
margin-bottom: 11rem;
}
.pa-12 {
padding: 12rem;
}
.pl-12 {
padding-left: 12rem;
}
.pr-12 {
padding-right: 12rem;
}
.pt-12 {
padding-top: 12rem;
}
.pb-12 {
padding-bottom: 12rem;
}
.ma-12 {
margin: 12rem;
}
.ml-12 {
margin-left: 12rem;
}
.mr-12 {
margin-right: 12rem;
}
.mt-12 {
margin-top: 12rem;
}
.mb-12 {
margin-bottom: 12rem;
}
.pa-13 {
padding: 13rem;
}
.pl-13 {
padding-left: 13rem;
}
.pr-13 {
padding-right: 13rem;
}
.pt-13 {
padding-top: 13rem;
}
.pb-13 {
padding-bottom: 13rem;
}
.ma-13 {
margin: 13rem;
}
.ml-13 {
margin-left: 13rem;
}
.mr-13 {
margin-right: 13rem;
}
.mt-13 {
margin-top: 13rem;
}
.mb-13 {
margin-bottom: 13rem;
}
.pa-14 {
padding: 14rem;
}
.pl-14 {
padding-left: 14rem;
}
.pr-14 {
padding-right: 14rem;
}
.pt-14 {
padding-top: 14rem;
}
.pb-14 {
padding-bottom: 14rem;
}
.ma-14 {
margin: 14rem;
}
.ml-14 {
margin-left: 14rem;
}
.mr-14 {
margin-right: 14rem;
}
.mt-14 {
margin-top: 14rem;
}
.mb-14 {
margin-bottom: 14rem;
}
.pa-15 {
padding: 15rem;
}
.pl-15 {
padding-left: 15rem;
}
.pr-15 {
padding-right: 15rem;
}
.pt-15 {
padding-top: 15rem;
}
.pb-15 {
padding-bottom: 15rem;
}
.ma-15 {
margin: 15rem;
}
.ml-15 {
margin-left: 15rem;
}
.mr-15 {
margin-right: 15rem;
}
.mt-15 {
margin-top: 15rem;
}
.mb-15 {
margin-bottom: 15rem;
}