首先,我知道CSS 表达式在很多方面都已失效和错误,并且!important
尽可能避免使用。这是针对特殊情况的样式表。
简而言之
我的问题是......有没有办法让 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');
我知道,在 JavaScript 中,不可能!important
通过元素的style
对象进行设置。例如,这不起作用:
element.style.color = 'red !important';
但是,可以!important
通过元素的style
属性进行设置:
element.setAttribute('style', 'color:red !important;');
那么...... CSS表达式是否仅限于与style
对象交互,因此,我想要实现的目标是不可能的 - 或者表达式是否有任何方式影响元素的属性,或!important
以其他方式传递?
开始赏金
到目前为止还没有可靠的答案,所以我开始赏金了。
理想情况下,我正在寻找一种基于 CSS 的解决方案,用于inherit !important
在 IE6 和 IE7 中进行模仿,无论有无 CSS 表达式。(请在发布之前验证您的建议是否有效)。
至少,一个指向一些权威参考的链接告诉我这是不可能的,这意味着我可以放下这个思路——我没有看到任何提到在!important
规则中使用 CSS 表达式的东西。