2017-12-13 12 views
0

コンテンツを持ちますがクラスを持たない段落のスタイルを設定するには、以下のセレクタを組み合わせたり、他の方法を使用する必要があります。コンテンツを持ちますがクラスを持たない要素のCSSセレクタ

p:not([class]) // selector for paras without a class attribute. 

p:not(:empty) // selector for empty paragraphs. 

p:not([class]):not(:empty) 

を試みたが、Chromeで働いていないことがあります。

解決策は、CSSのみとクロスブラウザ(現代版のみ、IE6はここにありません)で、JSまたはJQueryは必要ありません。

なぜ私はこれをやりたいのだろうかと思っているかもしれません。ユースケースはコンテンツ編集可能な入力ボックスです。ユーザーは、許可されたスタイルの1つを入力に適用する必要があり、見逃したものは強調表示する必要があります。クラスなしセレクタを設定しましたが、使用しているリッチテキストコントロールにはユーザー入力前に空のパラが必要です。したがって、ハイライトスタイルは表示されないときに表示されます。リッチテキストコントロールは必須なので、セレクタを変更する必要があります。指摘したように

+3

[this](https://jsfiddle.net/wrcccyd2/)は必要なものではありませんか? – user7393973

+0

謝罪@ user7393973 - 私は質問を混乱させる。それを編集しました。私は実際にはコンテンツを持ち、クラスはない段落をスタイルする必要があります。 –

+1

このように? 'p:not([class]):not(:empty){}' – user7393973

答えて

1

  1. p:not([class]):not(:empty)は正しいです。
  2. ただし、p要素には、空白やその他の要素(brなど)が含まれている場合は:not(:empty)と一致します。リッチテキストコントロールが有力p要素を強制した場合

は、あなたがpは別途にかかわらず、実際の異なるセレクタ(少なくとも、あなたのリッチテキストコントロールの意識だ1)、とそれが含まれていることをターゲットにする必要があるかもしれませんその道端でbr

+0

ありがとうと良い提案ですが、私の脳は眠った後、CSSセレクターの弱点ではなく、他の条件やイベントのシーケンスのために、スクリプトによる解決策に気を取らなければならないかもしれないと提案しています。 –

関連する問題