プロが教えるわが家の防犯対策術!

aspサービスのカートのデザインを修正する中で、html側は固定で触れず、
cssのみで修正の必要が有る箇所について困っています。

class="a"のみが付いているdivを消すために、

.a { display:none;} 

としたのですが、こことは別のdivにも class="a b" とaが含まれる形で記述されています。

class に a b 両方ついているdivのみ除外する指定の仕方はありますでしょうか?
:not()を使用して色々行なって見たのですが、思うようにいかないので質問します。

宜しくお願いします。

A 回答 (3件)

.aであって.bでないものを選択するには


.a:not(.b)
とできます。

また、クラスがaのみであるものを選択するには
[class="a"]
とすればいいです。

↓にサンプルを示します。
http://jsfiddle.net/u4wes5b5/
    • good
    • 2
この回答へのお礼

こういう書き方があるんですね!

隣接クラスと言うのを使って強引にやったのですが、
.a:not(.b)や[class="a"]のほうがスマートに出来そうですね。

参考にさせて頂きます。

お礼日時:2015/09/28 10:07

除外が難しければ、両方ついているものだけ別指定をするのはどうでしょうか?


 class="a b" なら、
.a.b{display:block;}
blockは適宜、inlineやinline-blockなどに置き変えてください。
    • good
    • 0
この回答へのお礼

.a.b と言う書き方をすれば、両方ついているものだけ別指定出来て、
これにdisplay:block;指定して、その前のdisplay:none;を解除する。との事でしょうか?
確かに逆の発想もありですね。
ありがとうございます。

お礼日時:2015/09/28 10:16

aの記述内容をコピーして、別名で同じものをつくる、例えば .cとして残しておく。



a b に対し cbに置換させます。

a 単独のクラスのみを消せます。

このままでもいいですが、

a 単独を消した後、 c とした クラスを a に置き換えば

ご希望の形が完成できますね!
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2015/09/28 10:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!