ATTRが設定されていない場合CSS2とスタイリング
-
20-09-2019 - |
質問
が設定された属性を持つ要素をスタイリングすることは簡単です:。E[attr]
このE[!attr]
ような属性、何かの欠如に基づくCSS2を持つ要素のスタイルを設定する方法はありますか? (JavaScriptのソリューションは、オプションではありません)。
たとえば、IDルールに続くいくつかのクラス規則がある:
.abc {padding:1em;}
.def {padding:2em;}
#n a {padding:0;}
のHTMLコードは、次のとおりです。
<div id="n"><a href="" class="abc">.</a><a href="" class="def">.</a></div>
クラスabc
とdef
ので、両方a
がパディング0私は上記のルールの順序を変更することはできませんが、私は自分のルールを追加し、ID-EDのルールを変更することができますを持っているID-EDルールに対するlowererの優先順位を持っています。私は(多くはそこにいる)すべてのクラスのために#n a.abc
ようなルールを書き込まないようにしたいです。代わりに、私はすべてそのままクラス-EDの#n a[!class]
sを維持するためにa
のようなものを必要としています。
解決
悲しいことではなく、CSS2インチあなたができる最善のは、あなたの宣言をカスケード接続することです。
E {color: red}
E[attr] {color: blue}
IE6は、属性セレクタを尊重しないとしかし、たとえこれは本当に、当てにすることはできません。
CSS3では、しかし、美しいとされている ":いない" 擬似セレクタ( http://www.w3.org/TR/css3-selectors/#negation に)。
EDIT
明確にしてくれてありがとう。いかがます:
.abc {padding:1em; !important} .def{padding:2em; !important}
#n a{padding: 1em}
他のヒント
私は、これはCSS2で行うことができるとは思いません。 CSS3では、あなたは "ない" 構文:
input:not([type="file"])
所属していません StackOverflow