css表达式是什么


本文摘自PHP中文网,作者青灯夜游,侵删。

css表达式就是在css属性后使用expression()连接一段JavaScript表达式,css属性的值是JavaScript表达式的结果;语法格式“css属性:expression(JavaScript表达式);”。

本教程操作环境:windows7系统、CSS3&&javascript1.8.5版、Dell G3电脑。

IE5及其以后版本支持在CSS中使用expression,用来把CSS属性和Javascript脚本关联起来,这里的CSS属性可以是元素固有的属性,也可以是自定义属性。

css表达式就是在css属性后使用expression()连接一段JavaScript表达式,css属性的值是JavaScript表达式的结果。

在表达式中可以直接引用元素自身的属性和方法,也可以使用其他浏览器对象。这个表达式就似乎是在这个元素的一个成员函数中一样。

是不是感觉上面的文字有点晦涩?没有关系,你只需要知道:我们可以通过expression把Javascript脚本写放在css文件中,通过它来实现一些很方便的功能与效果。

表达式应用:

1、给元素固有属性赋值  下面的实例是依照浏览器的大小来安置一个元素的位置。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>mid.lt263.com/mb</title>

<style type="text/css">

#myDiv {

position: absolute;

width: 100px;

height: 100px;

background:#c00;

left: expression(document.body.offsetWidth - 180   "px");

top: expression(document.body.offsetHeight - -80   "px");

text-align:center;

line-height:90px;

color:#fff;

}

</style>

</head>

<body>

<div id="myDiv">mb5u.com</div>

</body>

</html>

2、给元素自定义属性赋值

我们看下面的例子:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>mid.lt263.com/mb</title>

<style type="text/css">

a {star:expression(this.onFocus=this.blur())}

</style>

</head>

<body>

<a href="#" _fcksavedurl="#">模板天下 - mid.lt263.com/mb

</p>

</body>

</html>

说明:里面的star就是自己任意定义的属性,你可以随自己喜好另外定义,接着包含在expression()里的语句就是JS脚本,在自定义属性与expression之间可别忘了还有一个引号,因为实质还是CSS,所以放在style标签内,而非script内。这样就很轻易地用一句话实现了页面中的链接虚线框的消除。需要引起你非凡重视的:若不是非常非凡的需要用到expression,一般不建议使用expression,因为expression对浏览器资源要求比较高。

注:

CSS表达式是动态设置CSS属性的强大(但危险)方法。Internet Explorer从第5个版本开始支持CSS表达式。下面的例子中,使用CSS表达式可以实现隔一个小时切换一次背景颜色:

1

background-color: expression( (new Date()).getHours()%2 ? "#B8D4FF" : "#F08A00" );

如上所示,expression中使用了JavaScript表达式。CSS属性根据JavaScript表达式的计算结果来设置。expression方法在其它浏览器中不起作用,因此在跨浏览器的设计中单独针对Internet Explorer设置时会比较有用。

表达式的问题就在于它的计算频率要比我们想象的多。不仅仅是在页面显示和缩放时,就是在页面滚动、乃至移动鼠标时都会要重新计算一次。给CSS表达式增加一个计数器可以跟踪表达式的计算频率。在页面中随便移动鼠标都可以轻松达到10000次以上的计算量。

一个减少CSS表达式计算次数的方法就是使用一次性的表达式,它在第一次运行时将结果赋给指定的样式属性,并用这个属性来代替CSS表达式。如果样式属性必须在页面周期内动态地改变,使用事件句柄来代替CSS表达式是一个可行办法。如果必须使用CSS表达式,一定要记住它们要计算成千上万次并且可能会对你页面的性能产生影响。

(学习视频分享:css视频教程)

以上就是css表达式是什么的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

css表达式是什么

更多相关阅读请进入《css表达式》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...