只有 IE 支持 CSS Expression,从IE8开始不再支持CSS Expression.
CSS Expression也称为CSS表达式,它是动态设置CSS属性的强大方法,但也存在着一定的危险性。
CSS Expression的问题就在于它的 计算频率要比想象的多出很多。不仅仅是在页面显示和缩放时,就是在页面滚动、乃至移动鼠标时都会要重新计算一次。给CSS Expression增加一个 计数器可以跟踪表达式的计算频率。在页面中随便移动鼠标都可以轻松达到10000次以上的计算量。所以它对客户端浏览器资源有比较高的要求,否则很容易让您的用户感觉打开你的页面,机器会变的很慢。
然而在 IE8 标准模式中,不再支持 CSS Expression。官方提供了以下几点原因:
- 为了更好的遵循标准
- CSS Expression 为 IE 专有,不具备通用性;
- CSS Expression 常常用来修复或模拟某些 IE 不支持的 CSS 特性,如 ‘min-height’、’max-width’。这些均已被 IE8 所支持。
- 为了提高性能
表达式的计算需要耗费巨大的系统资源,Web 性能专家 Steve Sounders:recommend avoiding them to improve front-end performance。 - 为了降低浏览器被攻击的可能
由于它们暴露出了一个脚本执行环境,CSS Expression 就构成了一个可能的脚本注入攻击方向。
关于 动态属性 的更多内容,请参见 MSDN:About Dynamic Properties。
关于 微软官方结束对 CSS Expression 的支持 的更多内容,请参见 MSDN:Ending Expressions。
IE 中使用 CSS Expression 多数情况下是为了修复或模拟某些 IE 不支持的 CSS 特性, 比如IE下的“min-height”,和”position:fixed.” IE6下的’max-width’等等。
然而CSS Expression 是一个已经过时的技术,微软官方日后可能不会再对其进行开发及支持。 除非为了利用 CSS hack 去弥补某些 IE 中不支持的 CSS 特性,否则应尽量避免使用 CSS Expression。
最新评论