例えば、下記のようなコードがあるとします。
HTML
1<div class="class_01 class_02 class_03 class_04">sasa</div>
CSSファイルの中では、
CSS
1.class_01.class_02{ 2 text-align:left; 3} 4 5@media screen and (max-width:1024px) { 6 .class_01.class_02{ 7 8 text-align:center; 9 /*(※)この部分を実行させることができない。*/ 10 11 } 12}
というふうにwidthによってCSSを分岐させています。
しかしながら、これですと動きません。1024pxより小さいと、(※)の部分のスタイルに変わるようにしたいのですが、できません。
ただ、回避策はあります。以下の2つなら動くようです。
CSS
1.class_01.class_02{ 2 text-align:left; 3} 4 5@media screen and (max-width:1024px) { 6 .class_01.class_02.class_03.class_04{ 7 8 text-align:center; 9 /*これだと動く。*/ 10 11 } 12}
CSS
1.class_01.class_02{ 2 text-align:left; 3} 4 5@media screen and (max-width:1024px) { 6 .class_01.class_02{ 7 8 text-align:center !important; 9 /*これだと動く。*/ 10 11 } 12}
ですが、少し問題があります。それはclass_03の名前が色々と変わるのです。
ですので、class_03、class_04を指定しなくとも、class_01とclass_02のみでメディアクエリを動かせないでしょうか?
また、importantの乱発は良くないでしょうか?
まさかとは思いますが、@media screen and…の中では4つのクラスのすべてを指定していないと動かないとは思いませんでした。
@media screen and…の外であれば、4つのうち2つのクラスを指定するだけでもスタイルが適用されるようです。
回答2件
あなたの回答
tips
プレビュー