I am looking at less.js, mixin looks like the way touching the variable in css but i am not sure if my problem is solvable using less.js.
I want to make some class with parameter, e.g. with the format
marginTop-10
or marginTop(15)
10,15 are some numbers which i can change to specify the margin top pixel, basically these numbers can be any number.and i will use these class in my paragraph class such as
<p class="marginTop(some number)">css help</p>
How can i make this happen?
You should first write your Less file, for instance as follows:
.marginTop(@topMargin) {
margin-top: @topMargin;
}
p.marginTop-10 {
.marginTop(10px);
}
p.marginTop-15 {
.marginTop(15px);
}
The preceding Less code will compile into the following CSS code:
p.marginTop-10 {
margin-top: 10px;
}
p.marginTop-15 {
margin-top: 15px;
}
After that you can use in your HTML:
<p class="marginTop-10">css help</p>
<p class="marginTop-15">css help</p>
Notice that you can also compile a list of classes dynamically, see also: LESS loops used to generate column classes in twitter - How do they work?
Doing that you could write the the following Less code:
@margins: 10 20 50;
.marginTop(@i: 1) when (@i <= length(@margins)) {
.marginTop(@i + 1);
@margin-top: extract(@margins,@i);
.marginTop-@{margin-top} {
margin-top:unit(@margin-top,px);
}
}
.marginTop();
outputs:
.marginTop-50 {
margin-top: 50px;
}
.marginTop-20 {
margin-top: 20px;
}
.marginTop-10 {
margin-top: 10px;
}