[解決済み】特定のクラスや属性を持たない要素を選択するCSSセレクタを書くことはできますか?
質問
という要素をすべて選択するCSSセレクタルールを書きたい。 しない は特定のクラスを持っています。例えば、以下のようなHTMLがあったとします。
<html class="printable">
<body class="printable">
<h1 class="printable">Example</h1>
<nav>
<!-- Some menu links... -->
</nav>
<a href="javascript:void(0)" onclick="javascript:self.print()">Print me!</a>
<p class="printable">
This page is super interresting and you should print it!
</p>
</body>
</html>
printable"クラスを持たないすべての要素を選択するセレクタを書きたいと思います。 ナビ と a 要素を使用します。
これは可能なのでしょうか?
注:実際にこれを使いたいHTMLでは、もっと多くの要素で はありません。 は、printable" クラスを持つものよりも、持たないものです(上の例では逆になっていますね)。
どのように解決するのですか?
通常、クラスセレクタを
:not()
のような擬似クラスです。
:not(.printable) {
/* Styles */
}
:not([attribute]) {
/* Styles */
}
しかし、より良いブラウザのサポートが必要な場合(IE8以前は
:not()
という要素に対してスタイル・ルールを作成したほうがよいでしょう。
する
は、"printable" クラスを持っています。もし、あなたが実際のマークアップについて述べているにもかかわらず、それさえも実現不可能な場合は、その制限を回避してマークアップを行わなければならないかもしれません。
このルールで設定するプロパティによっては、その一部が
は
.printable
など、何らかの形で影響を与えます。例えば
display
は継承されませんが
display: none
の上で
:not(.printable)
は、要素とそのサブツリーをレイアウトから完全に削除するため、その要素とすべての子孫を表示することができなくなります。これを回避するには、多くの場合
visibility: hidden
この場合、可視の子孫は表示されますが、非表示の要素は元のようにレイアウトに影響を及ぼします。要するに、とにかく気をつけましょう。
関連
-
[解決済み】このインラインブロックのdiv要素の間に説明のつかない隙間があるのはなぜですか?[重複]
-
[解決済み】divの高さを画面の残りスペースで埋めるようにする
-
[解決済み] アトムでキーバインドリゾルバーのポップアップを消すにはどうしたらいいですか?
-
[解決済み] コンテナの幅に応じたフォントの拡大縮小
-
[解決済み] 最初の要素にクラスを指定するCSSセレクタ
-
[解決済み] CSSのクラスは、1つまたは複数の他のクラスを継承することができますか?
-
[解決済み] not()擬似クラスは複数の引数を持つことができますか?
-
[解決済み] 特定のテキストを含む要素に対するCSSセレクタはありますか?
-
[解決済み] 2つのクラスを持つ要素に適用するCSSセレクタ
-
[解決済み] CSSで要素を属性で選択する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] CSSのホバー効果が私のコードで機能しない
-
[解決済み】私のCSS3メディアクエリがモバイルデバイスで機能しないのはなぜですか?
-
[解決済み】CSS "margin: 0 auto" が中央揃えにならない。
-
[解決済み] HTMLでSVGを使用して三日月を描画する
-
[解決済み] d3.tipが動作しないのはなぜですか?
-
[解決済み] WebForms UnobtrusiveValidationMode には、'jquery' の ScriptResourceMapping が必要です。jquery という名前の ScriptResourceMapping を追加してください(大文字と小文字を区別します)。
-
[解決済み] ホバー時に背景画像を暗くする
-
[解決済み] HTML Divのボーダーが表示されない
-
[解決済み] 順序なしリストが div 内で左いっぱいに整列されない
-
[解決済み】x属性のない要素にマッチするcssセレクタ【重複あり