`

expression将JS、Css结合起来

阅读更多

http://www.cnblogs.com/skylaugh/archive/2006/09/01/492122.html

 

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样式我们就知道, 可以定义一批对象的class属性来指定同一个样式来统一界面. 但如何统一同类型的对象的事件? 比如:界面有无数个 <img src="**.jpg"> 如何实现鼠标经过此图片, 图片的src变成是**_over.jpg?
 
 
解决方法: 使用css的expression方法,
具体实现要看看.css的写法:
 
/*替换图片CSS*/
#imgScript {   /*这里使用对象ID来通配样式, 也可以定义一个css函数*/
 star:expression(
    onmouseover = function()
    {
        /*替换图片*/
        if(this.hover != null){
          this.name = this.src;
          this.src = this.src.replace('.jpg', '_over.jpg');
          this.HasChg = 1;
       }
   },
   onmouseout = function()
  { 
       /*还原本来的图片*/
     if(this.HasChg != null){
        this.src = this.name;
        this.HasChg = null;
    }
 }
)

}/*end imgScript*/

分享到:
评论

相关推荐

    html+javascript+css(8本chm)

    此外,JavaScript还有许多库和框架,如jQuery简化DOM操作,React用于构建用户界面,Vue.js提供组件化开发。 4. **ASP (Active Server Pages)**:ASP是微软的一种服务器端脚本环境,用于创建动态交互式网页。在ASP中...

    CSS自定义属性Expression

    而CSS自定义属性Expression则打破了这一限制,它使得开发者能够结合CSS的样式控制和JavaScript的动态功能,对整个页面上的相同元素进行批量控制。 例如,一个常见的问题是如何去除链接的默认虚线轮廓。通常我们会为...

    jquery js css弹出居中的遮罩层

    本压缩包提供了两种实现方式:一种是基于JavaScript(JS)和CSS,另一种是利用jQuery库结合CSS。这两种方法都考虑了对旧版浏览器,如Internet Explorer 6、7、8以及Firefox的兼容性。 首先,我们来看纯JS+CSS的实现...

    css 新手的最佳助手

    css与js的结合点:expression 好看的按钮 CSS 背景属性详解 css圆角效果 清除浮动最佳方法 div 居中布局 五类CSS选择器 .....

    HTML CSS JAVASCRIPT课件

    JSP将HTML代码与Java代码结合,允许开发者在页面上嵌入Java表达式和脚本段。JSP经过服务器处理后,会转换成Servlet,由Servlet生成响应内容。JSP技术模型包括JSP指令(如`&lt;%@ page %&gt;`, `&lt;%@ include %&gt;`, `...

    JSF+JS+CSS的一个应用

    JSF与JS结合使用时,可以在服务器端处理业务逻辑和数据管理,而JavaScript则负责在用户的浏览器上进行交互和增强用户体验。例如,通过AJAX(异步JavaScript和XML)技术,可以实现在不刷新整个页面的情况下更新部分...

    GridView固定表头(不用javascript只用CSS!,很好用

    #### 三、HTML结构与CSS结合 要使CSS固定表头生效,HTML结构也很关键。在给定的示例中,`GridView`被包含在一个设置了`overflow-y: scroll;`和具体高度宽度的`div`中,这创建了一个可滚动的容器,而表头则通过CSS...

    css+js+c#+pro编码规范文档

    本压缩包"css+js+c#+pro编码规范文档"包含了针对CSS、JavaScript、C#以及存储过程的编码规范,旨在为开发者提供一套统一的标准,以提升代码的可读性、可维护性和团队之间的沟通效率。 **CSS编码规范**: 1. 使用有...

    可爱的CSS3卡通表情旋转动画特效

    将HTML和CSS结合起来,你就可以看到一个可爱的卡通表情在页面上持续旋转,为用户带来有趣的视觉体验。 总结来说,这个“可爱的CSS3卡通表情旋转动画特效”展示了CSS3的强大功能,特别是动画和转换特性。通过理解和...

    JSP动态网站开发 第1章 JSP使用基础第2章 HTML与CSS第3章 JavaScript脚本编程…………

    本教程的"JSP动态网站开发"结合了HTML、CSS和JavaScript的基础知识,旨在帮助开发者构建功能丰富的交互式Web应用。通过学习,你可以掌握JSP的使用,理解HTML和CSS的布局原理,以及利用JavaScript实现动态效果,从而...

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

    在IE浏览器(尤其是早期版本)中,`expression`是一个特有的特性,它允许我们将CSS属性与JavaScript表达式结合起来,以实现动态计算和设置样式的目的。 标题提到的问题是关于如何在IE浏览器中设置页面的最小宽度。...

    JS+CSS实现带关闭按钮DIV弹出窗口的方法.docx

    本文将详细介绍如何使用JavaScript(JS)和层叠样式表(CSS)来实现一个带关闭按钮的DIV弹出窗口。 首先,我们需要理解HTML结构。在提供的代码中,有两个主要的`div`元素:`#ly`和`#Layer2`。`#ly`是用来创建一个半...

    HTML,CSS,Js-学习资料

    CSS允许我们将样式与内容分离,使得页面设计更加灵活,易于维护。学习CSS包括选择器的使用、盒模型的理解、布局技术(如流体布局、网格布局、Flexbox和Grid)、响应式设计以及过渡和动画效果的实现。 JavaScript是...

    用css样式固定表头和列

    本文将深入探讨如何利用CSS实现这一功能,基于提供的HTML代码片段,我们将详细解析其背后的逻辑和技术要点。 ### CSS固定表头与列的核心原理 在网页中,当表格数据量庞大时,随着用户滚动页面,表头或列往往随之...

    CSS表情符号动画.zip

    总之,CSS表情符号动画是一种创新且实用的网页设计技术,它结合了CSS的灵活性和Unicode表情的广泛接受度,为网页增加了丰富的视觉体验。通过深入理解和熟练运用这些技术,开发者可以创建出引人入胜的交互式网页元素...

    根据图片大小自适应的CSS

    在探讨“根据图片大小自适应的CSS”这一主题时,我们深入分析了如何利用CSS(层叠样式表)来确保图片能够根据不同设备和屏幕尺寸自动调整其大小,从而实现响应式设计的效果。以下是对该主题的详细解析: ### 一、...

    用CSS防iframe型挂马

    1. **CSS Expression**: CSS表达式(expression)是IE特有的一个功能,允许在CSS样式中嵌入JavaScript代码。虽然这个特性在现代浏览器中已被废弃,但在某些情况下仍然可以用于防御特定类型的攻击。 - **语法**: `...

    CssStyle.txt

    在这段CSS规则中,使用了`css:expression()`语法,这是一个非标准但常被使用的功能,主要用于在JavaScript中动态地计算或更改CSS属性。具体来说,在这个例子中,当鼠标悬停在`&lt;tr&gt;`元素上时(`onmouseover`事件),...

    HTML_CSS_JAVASCRIPT

    此外,JavaScript还有许多库和框架,如jQuery简化DOM操作,React和Vue.js用于构建用户界面,Node.js则将其应用到服务器端开发。 4. 学习和实践:掌握这三门技术需要不断学习和实践。初学者可以从基础语法开始,逐步...

    jQuery官网CSS样式复刻

    下面我们将详细探讨这些知识点。 首先,jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画效果和Ajax交互。通过使用jQuery,开发者可以更加简洁高效地编写代码,减少跨浏览器兼容性问题。例如...

Global site tag (gtag.js) - Google Analytics