には if/else 構文がない@media
ため、同じメディア クエリを 2 つの別々@media
のルールで繰り返し、not
そのうちの 1 つを使用して「else」を意味する必要があります。
あなたの場合、メディアクエリはall and (min-width: 270px)
. (動作させるにはメディアタイプが必要not
です。デフォルトはall
そうなので、私はそれを使用しています。)
CSS は次のようになります。
@media all and (min-width: 270px) {
/* Apply first set of CSS rules */
}
@media not all and (min-width: 270px) {
/* Apply second set of CSS rules */
}
@media
スタイルをオーバーライドするためのルールを1 つだけ設定して、カスケードを利用するのが一般的な方法の 1 つであることを付け加えておきます。
/* Apply second set of CSS rules */
@media all and (min-width: 270px) {
/* Apply first set of CSS rules */
}
@media
ただし、ルールの外側にオーバーライドされていない (またはオーバーライドできない)スタイルがある場合、これは不十分です。これらのスタイルは引き続き適用され、実際に再宣言する以外に元に戻す方法はありません。再宣言しても元に戻すことができない場合があり、その場合、このメソッドを使用してスタイルを適用することはできません。詳細な説明については、この質問に対する私の回答を参照してください。
この例では、height: 200px
宣言は常に適用されます。
.example {
width: 200px;
height: 200px;
}
@media all and (min-width: 270px) {
.example {
width: 400px;
}
}
もちろん、それが問題でなければ、メディア クエリの重複を避けるためにこれを使用できます。ただし、厳密な if/else 構文を探している場合はnot
、重複したメディア クエリを使用する必要があります。