6

来自博客:

CSS 表达式的基本思想是您将在 CSS 代码中为属性计算和动态值,人们发现这非常有用。一个简单的例子可以在 IE 6 中实现最大宽度行为:

width: expression(document.body.clientWidth > 1100)? "1100px" : "auto";

这是我第一次读到它们。似乎 IE 曾经支持 CSS 表达式,但在 IE8 中删除了它们。还有哪些其他浏览器仍在使用它们,它们通常是好事还是坏事?

我从中得到的博客文章说替代方案是 Javascript,但我认为 CSS 更受支持,因此比 Javascript 更好。

4

3 回答 3

6

AFAIK,它只是 IE6/7(也许)5。

我从不认为它们是一件好事。还不如直接使用 JavaScript。

它们实际上是用 JavaScript 实现的,我很确定禁用 JS 会禁用这些表达式。

您发布的示例...

width: expression(document.body.clientWidth >  1100)? "1100px" : "auto";

...只是一个三元运算符,如果宽度大于 1100 像素,则将其设置为 1100 像素,否则将属性设置为 auto

最后,Web 上没有比 JavaScript 更广泛支持的脚本语言了。

于 2010-09-28T07:18:12.440 回答
3

表达式是 IE 独有的,在 8 中被删除:

http://msdn.microsoft.com/en-us/library/cc304082(VS.85).aspx#expressions

更多关于表达式:

http://msdn.microsoft.com/en-us/library/ms537634(v=VS.85).aspx

于 2010-09-28T07:32:36.210 回答
2

Firefox 有一个类似的设置,XBL -查看这个非常相似问题的答案。HTML5 编辑 Ian Hickson 最近发布了W3C 尝试标准化 XBL的新草案(另见WG 响应),因此我们最终可能会看到类似于 Microsoft 的表达方式作为 HTML5 技术家族的一部分。 .

于 2010-09-29T22:12:03.567 回答