まず、CSS 式は多くの点で無効であり、間違っていることを知っ!important
ています。これは、特殊なケースの stylesheet用です。
要するに
私の質問は... CSS 式で!important
フラグを設定する方法はありますか?
たとえば、これは機能しません:
a { color:expression('red !important'); }
[編集: 以下の MarmaladeToday のコメントに感謝]. これも機能しません:
a { color:expression('red') !important; }
これを他の方法で行うことはできますか?
詳細に
私が実際にやろうとしているのはinherit
、IE6 & 7 の値を模倣することです。これは機能します。
color:expression(
this.parentNode.currentStyle ?
this.parentNode.currentStyle.color: 'red'
);
!important
しかし、フラグも設定したいのですが、これは機能しません:
color:expression(
(
this.parentNode.currentStyle ?
this.parentNode.currentStyle.color: 'red'
) + ' !important');
!important
JavaScript では、要素のstyle
オブジェクトを介して設定できないことは承知しています。たとえば、これは機能しません:
element.style.color = 'red !important';
ただし、要素の属性を介して設定することは可能です:!important
style
element.setAttribute('style', 'color:red !important;');
それで... CSS式はstyle
オブジェクトとの相互作用に限定されているので、私が達成したいことは不可能です-または、式が要素の属性に影響を与える方法、または!important
他の方法で渡す方法はありますか?
バウンティの開始
これまでのところ明確な答えがないので、バウンティを開始します。
inherit !important
理想的には、CSS 表現の有無にかかわらず、IE6 および IE7 で模倣するための CSS ベースのソリューションを探しています。(投稿する前に、提案が機能することを確認してください)。
少なくとも、これは不可能だと言っている信頼できる参考文献へのリンクは、この一連の考えを休ませることができることを意味します -!important
ルールでの CSS 式の使用について言及しているものは見たことがありません。