【转载】给不同 type 的 input 自动设置样式

input 有一堆 type 属性,不同的 type 对应不同的表单元素。CSS 定义的时候,对于支持 CSS2 选择符的浏览器,可以使用
复制内容到剪贴板
代码:
input[type="checkbox"]
input[type="text"]
等等来对 input 分别做不同定义,但是对于 IE6,这法子行不通。
一般的解决方案是给不同的 input 加不同的 class,可以手动加,也可以用 js 遍历自动加,刚由一个问题想到可以用 expression 加。
关键代码:
复制内容到剪贴板
代码:
input{
    zoom: expression(function(ele){(ele.className)?ele.className+=" "+ele.type:ele.className=ele.type; ele.style.zoom = "1";}(this));
}
两点:

  • 将 input 的属性取出来,赋给 className。
  • 对于 expression,这里使用一个无关紧要的属性(此处是zoom)来触发,处理完需要做的事情之后,再将此属性覆盖掉以解决 expression 不断执行的效率问题。
Code
posted @ 2008-12-25 11:25  CB  阅读(337)  评论(0)    收藏  举报