CSSでちょっとした小技をご紹介します。
出来ないかなと思って探してみたら、あるんですね!
とある事情があって、特定の要素内にある数多のタグのうち、クラスを振っていない要素にだけCSSを当てたい、という事になったのですが…
クラスなし要素にCSSを当ててから、クラスあり要素に対してそれを打ち消す設定をすれば…いいのかもしれないですが、
今回は要素なし、クラス(複数)ありが混在していて、事ある毎にリセットする記述を書き込んで…
て、もうこの時点でゴチャゴチャややこしいですね。
説明からしてややこしいですから、CSSの記述はほんと面倒です。
(後付けで必要になったから、そりゃあもう…)
さあ、サクッと本題に入りましょう。
記述自体は、とてもシンプルです。
【CSS】
〇〇:not([class]){/* スタイル *}
今流行りの(僕の中だけです)セレクタを使用しますが、いたってシンプルですね。
【サンプル】
■クラス「sample01」テーブル
見出し | 値1 | 値2 |
---|---|---|
見出し2 | 値3 | 値4 |
■クラス「sample02」テーブル
見出し | 値1 | 値2 |
---|---|---|
見出し2 | 値3 | 値4 |
■クラスなしテーブル
見出し | 値1 | 値2 |
---|---|---|
見出し2 | 値3 | 値4 |
<div class="sample_base"> <p>クラス「sample01」テーブル</p> <table class="sample01"> <tr> <th>見出し</th> <td>値1</td> <td>値2</td> </tr> <tr> <th>見出し2</th> <td>値3</td> <td>値4</td> </tr> </table> <p>クラス「sample02」テーブル</p> <table class="sample02"> <tr> <th>見出し</th> <td>値1</td> <td>値2</td> </tr> <tr> <th>見出し2</th> <td>値3</td> <td>値4</td> </tr> </table> <p>クラスなしテーブル</p> <table> <tr> <th>見出し</th> <td>値1</td> <td>値2</td> </tr> <tr> <th>見出し2</th> <td>値3</td> <td>値4</td> </tr> </table> </div>
今回は特定要素内(サンプルでいうdiv.sample_base)に、複数のtable(クラスあり)が混在していて、かつその中に、訳あってクラスを振れないtableを追加する必要が出て…
そこで、今回調べたセレクタの出番でした。
既存のクラスありtableには影響を与えずに、クラスなしtableにだけ、いろいろと加える事ができました。
ちょっとごちゃごちゃした使い方をしちゃいましたが、知っていれば何かと活用できるセレクタだと思います。
いちいちリセットするCSS書くの大変ですし。
【参照させて頂いたサイト】
https://gotohayato.com/content/451