teratail header banner
teratail header banner
質問するログイン新規登録

質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.30%
CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

6回答

4949閲覧

特定のclassを除外してスタイルを適用するnot

SugiuraY

総合スコア318

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2018/08/17 05:26

0

0

下記のように、"b"というclassが設定されているdivタグ以外のdivにcssを適用したいのですが
notが効きません。

以下の記法に従っていると思えるのですが、いずれの点にもんだいがあるのでしょうか?
MDN
宜しくお願い申し上げます。

html

1<div>a</div> 2<div class="b">b</div> 3<div>c</div> 4<div>d</div>

css

1div :not(.b){ 2color:red; 3}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答6

0

div :not(.b){

div:not(.b){

スペースが入っていたら連動性が失われます。

投稿2018/08/17 05:28

m.ts10806

総合スコア80888

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SugiuraY

2018/08/17 05:30

コメント有難うございます。 単純なミスでした。大変失礼いたしました。
guest

0

ベストアンサー

div と :not(.b) の間にスペースが空いているので
「divの子要素のうち、classがbでないもの」に対して適用されています。
スペースを消し、div:not(.b)とすればよいです。

ちなみに、ご提示のコードですと、.bだけでなく他のdivにもスタイルが適用されないと思います。

投稿2018/08/17 05:34

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SugiuraY

2018/08/17 05:48

https://jsfiddle.net/x07twao8/4/ 上記のように適用されるのですが、ご指摘とはまた違うものでしょうか。 notに対して、仕様を読んだのですが、特定のclassを除外した特定のタグにだけ適用する方法を適切に理解できなかったため、ねんのために確認させてください
退会済みユーザー

退会済みユーザー

2018/08/17 06:39 編集

リンク先を見ました。 <div class="b">b<p>甲</p></div> おそらくこの「甲」についておっしゃってると思いますが、 <div>b<p class="b">甲</p></div> こういうパターンのときに適用されないということです。 divの下にclassがbのもの、そうでないものを混ぜて div :not(.b)(スペースあり)を適用するとお分かりいただけるかと思います。
SugiuraY

2018/08/17 07:28

コメント有難うございます。 なるほど、以下のものもnotが適用されませんでした。 <div>a</div> <div>b<div class="b">甲</div></div> <div>c</div> <div>d</div> おそらくnotではなくdivであることが優先される仕様かと思いますが 確認してみます。 ご教示頂き、本当に有難うございました!
guest

0

divとスペース:not(b)の間にスペースがあるのがダメです.div:not(.b)にしてください

ちなみに,そのCSSだと

html

1<div> 2 <p>赤文字になるよ</p> 3 <div>これも赤文字になるよ</div> 4 <a href="#">これも赤文字になるよ</a> 5</div> 6<div> 7 赤文字じゃないけど何か? 8</div>

こうなります


参考
イメージ説明

投稿2018/08/17 05:30

編集2018/08/17 06:19
liveasnotes

総合スコア1284

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SugiuraY

2018/08/17 05:46

コメントありがとうございます。 すみません、誤認があるのかもしれませんが、 <div>a</div> <div class="b">b<p>甲</p></div> <div>c</div> <div>d</div> div:not(.b){ color:red; } こちらで甲は赤字にはなっていないのですが、異なる意味での警鐘を頂いているのでしょうか? 宜しくお願い申し上げます。
liveasnotes

2018/08/17 06:18

分かりづらくてすみません,div_:not(.b)になっているときの話です(「_」はスペースの代わり) 回答に,画像を追加しときます
SugiuraY

2018/08/17 06:36

コメントありがとうございます。 申し訳ございません、前提に誤りがありましたね。 了解いたしました、大変助かりました。
guest

0

html

1<!DOCTYPE html> 2<html> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 <style type="text/css"> 7 div:not(.b){ 8 color:red; 9 } 10 </style> 11 </head> 12 <body> 13 <div>a</div> 14 <div class="b">b</div> 15 <div>c</div> 16 <div>d</div> 17 </body> 18</html> 19

投稿2018/08/17 05:29

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SugiuraY

2018/08/17 06:00

コメントを頂き有難うございます。自己解決方法と同じ動作でした。 他の方からのコメントでdiv:not(.b)のセレクタの指定でも 「document"内のclass="b"が設定されているタグ以外の全てのdivタグだけに特定のcssを適用する」 ということにはならないというコメントを頂いているので、別途調べております。
guest

0

div:notの間にスペースが入っているからでは?

CSS

1div:not(.b) { 2 color: red; 3}

投稿2018/08/17 05:28

root_jp

総合スコア4666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SugiuraY

2018/08/17 05:30

自己解決でpostしてしまいましたが、ご指摘の通りでした。 コメント有難うございます。
guest

0

失礼いたしました、単純なコードのミスで
下記の修正で意図した動作を確認できました。

誤) div :not(.b)
正) div:not(.b)

投稿2018/08/17 05:29

SugiuraY

総合スコア318

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/08/17 14:21

回答しておいてなんですが、この内容の回答を自己解決とするのは違う気がします。 別の観点の解決策ならまだいいのですが、この質問についた多くの回答と同じ内容です。(私が低評価つけたわけではないですが、おそらく上記の理由からかと)
SugiuraY

2018/08/18 00:12

コメントありがとうございます。実は、投稿した直後に自己解決も投稿したためです、本当はベストアンサーをつけたい回答があったのですが、自己解決を解除する方法が見つけられませんでした。 申し訳ございません。
m.ts10806

2018/08/18 01:07

質問を投稿したことがないので自己解決はわからないですがベストアンサーを解除できる方法はあったとは思います。 もしあれでしたら運営に相談されてはいかがでしょうか。
SugiuraY

2018/08/20 06:48

無事、運営に確認して対応できました! 各コメントのアイコンの下に、未解決に戻すといううす~いグレイアウトした選択肢がありました。 宜しくお願い申し上げます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問