I am trying to make a mixin to propery convert pixels to relative ems. I would like it to be flexible enough to allow any property to be used with any number of pixel values.
Any ideas on how to add multiple values to a single property without the recursion error I'm creating inside the for loop?
desired usage example 1:
.pixels-to-rems(font-size; 10);
desired output:
font-size: 10px;
font-size: 1rem;
desired usage example 2:
.pixels-to-rems(padding; 10,0,20,10);
desired output:
padding: 10px, 0px, 20px, 10px;
padding: 1rem, 0px, 2rem, 1rem;
Here's the mixin as is.
@baseFontSize: 10px;
.pixels-to-rems(@property, @pxvals) {
@pxValue: null;
@remValue: null;
.for(@pxvals); .-each(@pxval) {
@pxValue: @pxValue @pxval;
@remValue: @remValue (@pxval / @baseFontSize);
}
@{property}: ~"@{pxValue}px";
@{property}: ~"@{remValue}rem";
}
.for() mixin found here
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…