`
CN.Silva...
  • 浏览: 46543 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
最近访客 更多访客>>
社区版块
存档分类
最新评论

CSS中expression使用简介

阅读更多
定义 
  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;
}

  给元素自定义属性赋值

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

<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对浏览器资源要求比较高。

分享到:
评论

相关推荐

    CSS中使用expression表达式

    主要介绍了CSS中使用expression表达式,需要的朋友可以参考下

    css expression使用概述及其优缺点介绍

    概述 css [removed]css表达式)又称Dynamic properties(动态属性)是早期微软DHTML的产物,以其可以在Css中定义表达式(公式)来达到建立元素间属性之间的联系等... 一般最常用的是直接在css中使用expression,例如: 复

    尽量不要使用CSS Expression的原因

    在CSS Expression中使用JavaScript表达式。CSS属性根据JavaScript表达式的计算结果来设置。CSS Expression在其它浏览器中不起作用,因此在跨浏览器的编码中单独针对IE设置时会比较有用。从IE5开始支持CSS Expression...

    CSS自定义属性Expression

    CSS自定义属性ExpressionCSS自定义属性Expression

    JavaScript和CSS通过expression实现Table居中显示

    至于居中的原理就不说了,可以看一下我的上篇博客,这次没有使用window的两个事件,而是使用一个叫expression的函数。现在多数的浏览器都支持这个函数。在写上一篇博客的时候,我脑里想能不能把计算后的值赋给css的...

    CSS expression在Chrome的问题

    CSS中写expression可能会在Chrome中有问题.

    CSS中使用expression完美设置页面最小宽度(兼容ie)

    CSS中使用expression有ie才能识别,其把CSS属性和Javascript表达式关联起来,效果相当于min-width,即实现了兼容ie,示例如下,感兴趣的朋友可以参考下,希望对大家有所帮助

    CSS文集

    利用CSS的Expression自定义属性来实现表格的OnMouseOver 特效 需要掌握...important标记区别Firefox和IE6 DIV+CSS页面布局中注意的问题以及常用的CSS使用方法 网页布局基础-XHTML与CSS基础 CSS命名规则

    不要使用CSS Expression的原因分析

    CSS Expression也称为CSS表达式,它是动态设置CSS属性的强大方法,但也存在着一定的危险性。

    CSS expression 隔行换色效果

    CSS expression 隔行换色效果实现代码,需要的朋友可以参考下。

    CSS expression判断表达式设置input样式

    用CSS的expression判断表达式设置input样式,简单,轻量级。缺点在于expression判断表达式FireFox是不支持的。致命的是只能区分出一个(例如例子中就只能区分出text文本框),不要试图设置多个… 代码: [code] &lt;...

    css3-frog-expression.zip

    css3-frog-expression.zip

    Thingworx Expression&Eventsrouter Widget

    高级用法—Expression&Eventsrouter Widget,文档含有详细的使用说明;对初入Thingworx平台的朋友具有很好的指导作用

    如何用CSS实现在新窗口打开链接?.rar

    介绍: 辛苦的完成了一个站点的开发即将交付使用了,用户提出了一个要求,希望导航或产品或其它某一类...需要注意的是:expression是在css中嵌入javascript语句执行了target="_blank",对IE5及更高版本的浏览器有效。

    CSS行为expression轻松实现IE6无抖动固定定位

    概述: IE6不支持固定定位(position:fixed)是众所周知的事情,所以我们要想在IE6做出固定定位的效果就只能用JS,但是用js会出现“跳动”的...为什么使用行为(expression)能解决问题: 因为CSS中使用expression只有I

    CSS Expression 优化

    IE 浏览器中 CSS Expression 特性的最大的问题:会反复执行,每秒钟可能执行了成百上千次,有严重的性能问题。 如何对 CSS Expression 进行优化呢? 至少:如果我们将 CSS Expression 在匹配的元素中仅执行一次,...

Global site tag (gtag.js) - Google Analytics