Maison  >  Article  >  interface Web  >  l'expression combine JS et Css_CSS/HTML

l'expression combine JS et Css_CSS/HTML

WBOY
WBOYoriginal
2016-05-16 12:11:011570parcourir

IE5及其以后版本支持在CSS中使用expression,用来把CSS属性和Javas cript表达式关联起来,这里的CSS属性可以是元素固有的属性,也可以是自定义属性。就是说CSS属性后面可以是一段Javas cript表达式,CSS属性的值等于Javas cript表达式计算的结果。 在表达式中可以直接引用元素自身的属性和方法,也可以使用其他浏览器对象。这个表达式就好像是在这个元素的一个成员函数中一样。

  给元素固有属性赋值

  例如,你可以依照浏览器的大小来安置一个元素的位置。

#myDiv {
position: absolute;
width: 100px;
height: 100px;
left: expression(document.body.offsetWidth - 110 + "px");
top: expression(document.body.offsetHeight - 110 + "px");
background: red;
}

  给元素自定义属性赋值

  例如,消除页面上的链接虚线框。 通常的做法是:

link1
link2
link3

  粗看或许还体现不出采用expression的优势,但如果你的页面上有几十甚至上百个链接,这时的你难道还会机械式地Ctrl+C,Ctrl+V么,何况两者一比较,哪个产生的冗余代码更多呢?

  采用expression的做法如下:


link1
link2
link3

  说明:里面的star就是自己任意定义的属性,你可以随自己喜好另外定义,接着包含在expression()里的语句就是JS脚本,在自定义属性与expression之间可别忘了还有一个引号,因为实质还是CSS,所以放在style标签内,而非s cript内。OK,这样就很容易地用一句话实现了页面中的链接虚线框的消除。不过你先别得意,如果触发的特效是CSS的属性变化,那么出来的结果会跟你的本意有差别。例如你想随鼠标的移进移出而改变页面中的文本框颜色更改,你可能想当然的会认为应该写为





  可结果却是出现脚本出错,正确的写法应该把CSS样式的定义写进函数内,如下所示:




  注意

  不是非常需要,一般不建议使用expression,因为expression对浏览器资源要求比较高。

实例:利用css里expression来实现界面对象的批量控制

Description du problème : Nous savons grâce à l'utilisation des styles CSS que nous pouvons définir les attributs de classe d'un lot d'objets pour spécifier le même style pour unifier l'interface. Mais comment unifier les événements d'objets du même type ? l'interface possède d'innombrables Comment se rendre compte que lorsque la souris passe sur cette image, le src de l'image devient **_over.jpg ?


Solution : Utilisez la méthode d'expression de CSS,
L'implémentation spécifique dépend de la façon d'écrire .css :

/*Remplacez l'image CSS*/
#imgScript { /*Ici, l'ID de l'objet est utilisé pour génériquer le style, ou vous pouvez définir une fonction CSS*/
star:expression(
onmouseover = function()
{
/*replace image*/
if(this. survolez != null){
this.name = this.src;
this.src = this.src.replace(''.jpg'', ''_over.jpg''
this .HasChg = 1;
}
},
onmouseout = function()
{
/*Restaurer l'image originale*/
if(this.HasChg != null){
this.src = this.name;
this.HasChg = null;
}
}
)

}/*fin imgScript*/

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn