I have two mixins which both convert to -webkit-transform
:
.rotate(@deg) {
-webkit-transform: rotate(@deg);
}
.scale(@factor) {
-webkit-transform: scale(@factor);
}
When I use them together:
div {
.rotate(15deg);
.scale(2);
}
... they (as expected) show up as:
div {
-webkit-transform: rotate(15deg);
-webkit-transform: scale(2);
}
This doesn't seem to be valid CSS as the second has precedence over the first; the first is discarded. To combine transform
entries it should be:
-webkit-transform: rotate(15deg) scale(2);
How can I accomplish such CSS to be generated by LESS, i.e. multiple transform
entries that are combined correctly?
Provide your transforms as arguments for a single mixin:
I guess, you also could achieve to concatenate your separate mixins into one with the help of guards, but I'm not entirely sure;)I think you are not able to achieve this in another way, since the parser would have to modify code afterwards which should not be possible.
I think there is a simple way over it, create a div container for the eleemnt, and apply first transform to the cntainer, leaving the second one for the element itself
I was having problems getting @arguments to work. I used the @rest variable which did the trick
LESS example:
Output CSS:
Starting from Less v1.7.0, merging property values with a space separator is possible and there is no need to club the two mixins into one.
The below Less code
will compile into the following CSS: