私は最近、LessCSSに入ってしまいました。私は大きな制限であると感じていることにぶち当たっていますし、これを行う方法があるかどうか疑問に思っていましたか?私はSassがユーザー定義の関数を許可しているが、LessCSSは同じことをするだろうということをどこかで読んでいると言いたい。私がやりたいと思ってる何LessCSSでユーザー定義関数?
:
@fs: 16;
// either return the value
.s(@t,@s,@u) {
// return @t/@s*@u;
}
#elem {
margin-top: .s(30,@fs,1em);
width: .s(900,@fs,1em);
.child {
width: .s(100,900,100%);
}
}
// or have a property argument
.s(@t,@s,@u,@p) {
@{p}: @t/@s*@u;
}
#elem {
.s(30,@fs,1em,margin-top);
.s(900,@fs,1em,width);
.child {
.s(100,900,100%,width);
}
}
私はそれを把握することができる唯一の方法が、私は複数のミックスインを持っている必要があるため、それは非常に限られている:
.s(@t,@s,@u,@p) when (@p = margin-top) { margin-top: @t/@s*@u; }
// margin[-top|-right|-bottom|-left]
// padding[-top|-right|-bottom|-left]
.s(@t,@s,@u,@p) when (@p = width) { width: @t/@s*@u; }
.s(@t,@s,@u,@p) when (@p = height) { height: @t/@s*@u; }
私が知っていますless.jsファイルを変更して、組み込みのround()
やceil()
のようなスペーシング機能を追加することができます。しかし、それはLessPHP、Crunch、SimpLessを使用して、.lessファイルをコンパイルするオプションを無効にします。
感謝あなたはあなたの答えです。 lessphpに頼るのではなく、私は 'dimension.less'を作り、それをインポートすることに決めました。このファイルには '.width()' '.padding()'などが含まれています。 –