CSS表达式(CSS Expression)是针对ie浏览器的一个专有属性,也是在css里面完成js运算的一个非常重要的手段。开源css框架:thinkcss就采用了css表达式提供了ie6 fixed失效的解决方案。
标准遵守情况、性能、可靠性和安全性等设计标准构成了IE8的设计整体,包括新的和已经存在功能特性。
最终,IE8的标准模式不再支持CSS表达式(CSS Expression)。
这个变化在以前就曾经在IE blog上公布过,这篇文章将提供关于这个决定的更详细的一些信息。
下面的FAQ(常见问题)将给您一个快速的总览:包括它的功能特性、我们设计决定的背后原因以及这对你的网站有什么影响。
什么是CSS表达式?
它也被称为“动态属性”,这个特有的CSS扩展是在IE5中引入的。远远在jQuery和Dojo等JavaScript库的诞生之前,它允许 web开发者动态地通过CSS选择器来给页面绑定脚本。举一个例子,下面的CSS声明根据一天中的事件来更新页面中某些区块的背景颜色:
div.title { background-color: expression( (new Date()).getHours()%2 ? “#B8D4FF” : “#F08A00″ ); }
为什么不再支持CSS表达式?
为了改进性能
表达式计算开销很大,web性能专家Steve Sounders推荐避免使用它们来改进前端的性能。
为了遵循标准
表达式是Internet Explorer专有的,而且不能通用。
一个常见的用例是用表达式来修正IE的bug或者来模仿浏览器暂时不支持的CSS 2.1的一些功能,例如最小宽度(min-width)和最大宽度(max-width)。
我们不仅非常努力地在IE8中修正了这些bug,而且我们的新的布局引擎也原生支持这些曾经没有的特性。
为了减小浏览器攻击面
因为它们暴露了一个脚本执行环境,CSS表达式就构成了一个可能的脚本注入攻击方向。
IE7和兼容模式还支持表达式吗?
是的,还支持。
为了向后兼容,CSS表达式在兼容模式和IE7严格模式下仍然可以执行。
不过从IE8 Beta 2开始,它们就被IE8的标准模式忽略了。
我的网站上的页面使用了CSS表达式,这会对我带来什么影响?
由于有了IE8的新的布局引擎,大部分用来修正CSS 2.1的bug和缺点的表达式都不再需要了;
我们期望不支持或者不标准的解释属性能够以一种标准的、可通用的方式来工作。
因为那些表达式支持更多特定的目的,他们所做的事情本身是可以通过标准的JavaScript来达到的,通常是通用的而且可以以较低的成本运行。
具体细节取决于你的应用程序。根据你在这篇日志的反馈,我们可能在以后的部分访问一些例子。
终止支持表达式:一个通常用来修复极端问题的功能,我们已经非常努力的工作以在这个版本中解决——将会使得IE8更标准、更快速以及对我们的用户来说更安全。
免费电话咨询
18955177249