(これはすでに回答されている可能性がありますが、回答が見つかりませんでした)
従来の @media クエリ オーバーライドは、1 つのサイズ/メディアのすべてのオーバーライドを同じブラケット グループにグループ化する傾向があります。
例えば
.profile-pic {
width:600px;
}
.biography {
font-size: 2em;
}
@media screen and (max-width: 320px) {
.profile-pic {
width: 100px;
float: none;
}
.biography {
font-size: 1.5em;
}
}
Sass には、次のように、ネストされた宣言内で @media クエリのオーバーライドを記述するための非常に気の利いた方法があります。
.profile-pic {
width:600px;
@media screen and (max-width: 320px) {
width: 100px;
float: none;
}
}
.biography {
font-size: 2em;
@media screen and (max-width: 320px) {
font-size: 1.5em;
}
}
現在、コンパイル時に sass は @media クエリ ブロックをグループ化しないため、出力は次のようになります。
.profile-pic {
width:600px;
}
@media screen and (max-width: 320px) {
.profile-pic {
width: 100px;
float: none;
}
}
.biography {
font-size: 2em;
}
@media screen and (max-width: 320px) {
.biography {
font-size: 1.5em;
}
}
私は最近のプロジェクトでこの手法を使用しましたが、その原則をより大きなプロジェクトに適用すると、css 全体に複数の @media クエリ セクションが拡散することになります (これまでに約 20 あります)。
sass の手法は、オーバーライドの流れを簡単に追うことができる (また、物事を移動するのも簡単になる) ため、非常に気に入っています。
ただし、特にパフォーマンスに関して、CSS を介して複数の @media セクションを使用することに不利な点があるかどうか疑問に思っています。
chrome css プロファイラーを試しましたが、@media クエリに固有のものは何も表示されませんでした。