CSS中应用expression表述式

2021-01-20 08:02 jianzhan

逛到发现这个实际效果,本人觉得十分赞

下面是CSS款式

input { 
border:1px solid #B三d6EF;  
background:#ffffff;  

input { 
    star : expression( 
    onmouseover=function(){this.style.backgroundColor="#D5E9F6"}, 
    onmouseout=function(){this.style.backgroundColor="#ffffff"}) 
    } 


益处在于 无需在网页页面中写1堆1堆的onMouseover涵数了

lolo
一些难题必须留意下,这类写法有将会在IE6下导致访问器卡死,现阶段做的1个旧出現了卡死状况...

这里引入下怪飞的1篇CSS提升的文章内容

访问器中 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));
}


拷贝编码
编码以下:

div {
-singlex: expression(this.singlex ? 0 : (function(t) { alert(t.tagName); t.singlex = 0; } )(this));
}

表明1下~:
CSS Expression 实行在随意1个配对的元素上。
在 CSS expression 内, “this”重要字指向当今配对的 HTML 元素。
CSS 特性采用1些不常见的特性来开启,开启完重设回默认设置值。

有关Expression,yahoo精英团队提到这些

防止应用CSS表述式(Expression) 
      CSS表述式是动态性设定CSS特性的强劲(但风险)方式。Internet Explorer从第5个版本号刚开始适用CSS表述式。下面的事例中,应用CSS表述式能够完成隔1个小时切换1次情况色调:
      background-color: expression( (new Date()).getHours()%2 ? "#B8D4FF" : "#F08A00" ); 
如上所示,expression中应用了JavaScript表述式。CSS特性依据JavaScript表述式的测算結果来设定。expression方式在其它访问器中不起功效,因而在跨访问器的设计方案中独立对于Internet Explorer设定时会较为有效。
      表述式的难题就在于它的测算频率要比大家想像的多。不仅是在网页页面显示信息和放缩时,便是在网页页面翻转、甚至挪动电脑鼠标时都会要再次测算1次。给CSS表述式提升1个计数器能够追踪表述式的测算频率。在网页页面中随意挪动电脑鼠标都可以以轻轻松松做到10000次以上的测算量。
      1个降低CSS表述式测算次数的方式便是应用1次性的表述式,它在第1次运作时将結果赋给特定的款式特性,并用这个特性来替代CSS表述式。假如款式特性务必在网页页面周期限内动态性地更改,应用恶性事件句柄来替代CSS表述式是1个可行方法。假如务必应用CSS表述式,1定要记牢它们要测算不计其数次而且将会会对你网页页面的特性造成危害。