[解決済み】クラスの接頭辞によるCSSセレクタはありますか?
質問
指定したプレフィックスにクラスが一致する要素に、あるCSSルールを適用したい。
例:divのクラスが以下のように始まる場合に適用されるルールが欲しい。
status-
(以下のスニペットではAとC、Bは除く)。
<div id='A' class='foo-class status-important bar-class'></div>
<div id='B' class='foo-class bar-class'></div>
<div id='C' class='foo-class status-low-priority bar-class'></div>
何らかの組み合わせで
div[class|=status]
と
div[class~=status-]
CSS 2.1では可能ですか?どのCSS仕様でも可能ですか?
注:jQueryを使ってエミュレートできることは知っています。
どのように解決するのですか?
CSS2.1では不可能ですが、CSS3の属性部分一致セレクタ(これは は はIE7+でサポートされています)。
div[class^="status-"], div[class*=" status-"]
2つ目の属性セレクタにあるスペース文字に注目してください。これは
div
要素で、その
class
属性は、これらの条件のいずれかを満たします。
-
[class^="status-"]
- は "status-"で始まります。 -
[class*=" status-"]
- は、空白文字の直後に発生する "status-" という部分文字列を含みます。クラス名は空白文字で区切られる HTMLの仕様に基づき そのため、空白文字が重要です。複数のクラスが指定されている場合、最初のクラスの後にある他のクラスもチェックされます。 と は、属性値がスペースで埋め尽くされている場合、最初のクラスをチェックするというボーナスを追加します。class
属性を動的に使用します)。
もちろん、これはjQueryでも動作します。 ここで .
上記のように2つの属性セレクタを組み合わせる必要があるのは、以下のような属性セレクタがあるからです。
[class*="status-"]
は次の要素にマッチしてしまうので、好ましくないかもしれません。
<div id='D' class='foo-class foo-status-bar bar-class'></div>
もし、そのようなシナリオを確実に実現できるのであれば 決して が発生する場合は、簡略化のため、そのようなセレクタを使用することもできます。しかし、上記の組み合わせの方がはるかに堅牢です。
もしあなたがHTMLソースやマークアップを生成するアプリケーションをコントロールできるのであれば、単純に
status-
プレフィックスは、それ自身の
status
クラスの代わりに
ガンボが提案するように
.
関連
-
[解決済み】サイドバーの位置を変更する
-
[解決済み] Atomエディタで透明な背景を設定する方法は?
-
[解決済み] CSSの親セレクタはありますか?
-
[解決済み] CSSでcellpaddingとcellspacingを設定する?
-
[解決済み] 前の兄弟」セレクタはありますか?
-
[解決済み] CSSのクラス名/セレクタに使用できる文字は?
-
[解決済み] 最初の要素にクラスを指定するCSSセレクタ
-
[解決済み] CSSセレクタの"~"(チルダ/スクイグル/ツイドル)はどういう意味ですか?
-
[解決済み] not:first-child セレクタ
-
[解決済み】HTML5入力のプレースホルダの色を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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】DIVの幅が100%というのは本当の100%ではない
-
[解決済み】div間の空白を削除する
-
[解決済み] <label for=""> CSSを非表示にする方法
-
[解決済み] グレーの透明な背景を設定する
-
[解決済み] FontAwesomeによる星評価用CSS
-
[解決済み] モバイル端末でCSSを使用したフルハイトの背景画像
-
[解決済み] CSSでitempropをターゲットにする?
-
[解決済み] Bootstrap 3 で列からパディングを削除する
-
[解決済み] psuedo 要素を用いたスクロール/ホバー可能な CSS ツールチップ
-
[解決済み] twitter-bootstrapの@-ms-viewportというタグは何ですか?