CSS中expression的用法

作者:曾加 来源:曾加的blog 时间:2008-09-11 14:18:00 

Expression定义

IE5及其以后版本支持在CSS中使用expression,用来把CSS属性和Javascript表达式关联起来,这里的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; 
}

给元素自定义属性赋值

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

<a href="link1.htm" onfocus="this.blur()">link1</a> 
<a href="link2.htm" onfocus="this.blur()">link2</a> 
<a href="link3.htm" onfocus="this.blur()">link3</a>

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

采用expression的做法如下:

<style type="text/css"> 
a {star : expression(onfocus=this.blur)} 
</style> 
<a href="link1.htm">link1</a> 
<a href="link2.htm">link2</a> 
<a href="link3.htm">link3</a>

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


<style type="text/css"> 
input 
{star : expression(onmouseover=this.style.backgroundColor="#FF0000"; 
onmouseout=this.style.backgroundColor="#FFFFFF")} 
</style> 
<style type="text/css"> 
input {star : expression(onmouseover=this.style.backgroundColor="#FF0000"; 
onmouseout=this.style.backgroundColor="#FFFFFF")} 
</style> 
<input type="text"> 
<input type="text"> 
<input type="text">

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

<style type="text/css"> 
input {star : expression(onmouseover=function() 
{this.style.backgroundColor="#FF0000"}, 
onmouseout=function(){this.style.backgroundColor="#FFFFFF"}) } 
</style> 
<input type="text"> 
<input type="text"> 
<input type="text">

注意

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

标签:Expression,css,优化
0
投稿

猜你喜欢

  • SQL SERVER 日志已满的处理方法

    2010-07-31 13:32:00
  • asp检测是否为中文字符函数

    2011-04-07 11:19:00
  • 什么是Dynamic HTML(Dhtml)

    2010-03-16 12:40:00
  • Oracle中返回结果集的存储过程分享

    2012-07-11 15:50:16
  • ASP ajax分页教程一

    2011-04-10 10:51:00
  • asp版FCKEditor编辑器的用法

    2008-07-05 12:15:00
  • 定义列表 dt dl

    2008-08-03 17:14:00
  • 如何从SQL数据库中调用图片?

    2009-11-15 19:59:00
  • Oracle 数据库导出(exp)导入(imp)说明

    2009-03-06 10:49:00
  • oracle数据库添加或删除一列的sql语句

    2012-06-06 19:46:54
  • FrontPage 2000主页设计问与答

    2008-08-02 12:37:00
  • asp无限级分类加js收缩伸展功能代码

    2009-12-08 12:25:00
  • 用ASP木马实现FTP和解压缩

    2008-02-13 08:47:00
  • 学习完全掌握纯CSS布局网页

    2008-05-28 17:14:00
  • 栅格:从混乱到秩序

    2008-07-02 12:09:00
  • 快速认识CSS中的overflow属性

    2009-05-29 16:36:00
  • Oracle 存储过程总结 二、字符串处理相关函数

    2009-07-07 10:28:00
  • 仿DW的图形菜单 DIV+CSS

    2007-08-14 10:07:00
  • Asp Object 之:AddHeader

    2008-05-05 12:58:00
  • 限制文本框只能输入数字和小数点

    2009-05-29 18:19:00
  • asp之家 网络编程 m.aspxhome.com