特定のベンダープレフィックスのみを付けるには
前回はTwitter Bootstrapを題材として、
- 「この値がfooの場合に、
この値をvarにする」
といった、
まず、
// LESS
.border-radius (@radius) {
border-radius: @radius;
-moz-border-radius: @radius;
-webkit-border-radius: @radius;
}
これは前回解説したように、
しかし、
- 「今回はiOSとAndroidだけに対応すればいいんだよな」
ということがありますよね。特にスマートフォンにおいて、
それでは
一般的なプログラミング言語では
LESSの場合、
先ほど書いた-wekit/
「webkitに対応して、mozには対応しない」という処理を書く
まず、 このコードでは、 という処理を書いています。新しい書き方が少し多いので、 まず、 と定義します。今後状況に応じて、 when(@webkit)で 同様に、 今回、 一方@mozの値はfalseなので、 このように、 つまりこのmixinでは という一連の処理をしています。 その結果、 もちろん、 同様の手順で、 こちらも上から順を追って見てみましょう。 まず、 ここでは 先ほどは、 この記述では、 ここで新しく @mediaの値はpcなので、 最後に、 なお、 などの編集が発生することを想定して、 このように、 次回は、// LESS
@webkit: true;
@moz: false;
.border-radius(@radius)when(@webkit) {
-webkit-border-radius: @radius;
}
.border-radius(@radius)when(@moz) {
-moz-border-radius: @radius;
}
.border-radius(@radius) {
border-radius: @radius;
}
/* Compiled CSS */
div {
-webkit-border-radius: 5px;
border-radius: 5px;
}
@webkit: true;
@moz: false;
.border-radius(@radius)when(@webkit) {
-webkit-border-radius: @radius;
}
.border-radius(@radius)when(@moz) {
-moz-border-radius: @radius;
}
.border-radius(@radius) {
border-radius: @radius;
}
/* Compiled CSS */
div {
-webkit-border-radius: 5px;
border-radius: 5px;
}
PCとMobileでベンダープレフィックスを分けるには
// LESS
@media: pc;
.border-radius(@radius)when(@media = mobile){
-webkit-border-radius: @radius;
}
.border-radius(@radius)when not(@media = mobile){
-webkit-border-radius: @radius;
-moz-border-radius: @radius;
-o-border-radius: @radius;
-ms-border-radius: @radius;
}
.border-radius(@radius) {
border-radius: @radius;
}
/* Compiled CSS */
div {
.border-radius(5px);
}
// LESS
@media: pc;
.border-radius(@radius)when(@media = mobile){
-webkit-border-radius: @radius;
}
.border-radius(@radius)when not(@media = mobile){
-webkit-border-radius: @radius;
-moz-border-radius: @radius;
-o-border-radius: @radius;
-ms-border-radius: @radius;
}
.border-radius(@radius) {
border-radius: @radius;
}