Twitter Bootstrap のレスポンシブ メディア クエリに基づくメディア クエリ用の Sass mixin があります。
@mixin respond-to($media) {
@if $media == handhelds {
/* Landscape phones and down */
@media (max-width: 480px) { @content; }
}
@else if $media == small {
/* Landscape phone to portrait tablet */
@media (max-width: 767px) {@content; }
}
@else if $media == medium {
/* Portrait tablet to landscape and desktop */
@media (min-width: 768px) and (max-width: 979px) { @content; }
}
@else if $media == large {
/* Large desktop */
@media (min-width: 1200px) { @content; }
}
@else {
@media only screen and (max-width: #{$media}px) { @content; }
}
}
そして、SCSS ファイル全体で次のように呼び出します。
.link {
color:blue;
@include respond-to(medium) {
color: red;
}
}
ただし、同じスタイルで複数のクエリをスタイルしたい場合があります。現在、私は次のようにしています:
.link {
color:blue; /* this is fine for handheld and small sizes*/
/*now I want to change the styles that are cascading to medium and large*/
@include respond-to(medium) {
color: red;
}
@include respond-to(large) {
color: red;
}
}
しかし、私はコードを繰り返しているので、複数のクエリをターゲットにできるように、より簡潔に記述する方法があるかどうか疑問に思っています。このようなものなので、コードを繰り返す必要はありません (これが機能しないことはわかっています)。
@include respond-to(medium, large) {
color: red;
}
これを処理する最善の方法について何か提案はありますか?