IE 访问器中 CSS Expression 特点的最大的难题:会不断实行,每秒钟将会实行了不计其数次,有比较严重的特性难题。
怎样对 CSS Expression 开展提升呢?
最少:假如大家将 CSS Expression 在配对的元素中仅实行1次,特性可能提高很大。
old9 在 《CSS Expression Reloaded》1文中出示了1个处理计划方案:
在 CSS Expression 句子体里,将开启该 Expression 的 CSS 特性重设。
比如:
div {
zoom: expression(function(el){el.style.zoom = "1"; alert(el.tagName);}(this));
}
填补几点:
- CSS Expression 实行在随意1个配对的元素上。
- 在 CSS expression 内, “this”重要字指向当今配对的 HTML 元素。
- CSS 特性采用1些不常见的特性来开启,开启完重设回默认设置值。
近期在 Ajaxian 的文章内容《Creating a querySelector for IE that runs at “native speed”》 中看到作者 Dion Almaer 也出示了1个相近的处理方法:
div {
-singlex: expression(this.singlex ? 0 : (function(t) { alert(t.tagName); t.singlex = 0; } )(this));
}
但此编码并沒有彻底处理 CSS Expression 最大的特性难题。由于每次开启還是要去实行 Expression 脚本制作,例如你翻转电脑鼠标的正中间滚轮。
最终强调,仅是对 CSS Expression 做了提升,但仍未说 CSS Expression 就不存在别的层面的难题。