当你看到<input>这个html标签的时候,你会想到什么?一个文本框?一个按钮?一个单选框?一个复选框?……对,对,对,它们都对。也许你可能想不到,这个小小的input竟然可以创造出10个不同的东西,下面是个列表,看看,哪些是你没有想到的:

<input type="text" /> 文本框 
<input type="password" /> 密码框 
<input type="submit" /> 提交按钮 
<input type="reset" /> 重置按钮 
<input type="radio" /> 单选框 
<input type="checkbox" /> 复选框 
<input type="button" /> 普通按钮 
<input type="file" /> 文件选择控件 
<input type="hidden" /> 隐藏框 
<input type="image" /> 图片按钮

所以你可能会说,input真是一个伟大的东西,竟然这么有“搞头”,但是当你真正在项目中试图给不同的控件设置不同的样式时,你就会发现,input真的可以把“你的头搞大”。我不知道为什么当初要给input赋予那么多身份,但是,他的“N重身份”给网站设计者的确带来了不少的麻烦。好在,劳动人民是伟大的,解决问题的办法还是有滴~,虽然它们都有各自致命的缺点 Orz… 解放方法大致归纳一下,列表如下(小弟才疏,错误遗漏难免,还请各位高人指点):

1.用css的expression判断表达式

2.用css中的type选择器

3.用javascript脚本实现

4.如果你用Microsoft Visual Studio 2005 或者后续版本开发项目,恭喜,你还可以使用skin。

下面就来讲解一下各个办法的详细实现和它们的优缺点。

1:用css的expression判断表达式

实现代码参考:

<!doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

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

<head>

<title> diffInput2 </title>

<meta name="Author" content="JustinYoung"/>

<meta name="Keywords" content=""/>

<meta name="Description" content=""/>

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

<style type="text/css">

input

{

background-color:expression(this.type=="text"?'#FFC':'');

}

</style>

</head>

<body>

<dl>

<dt>This is normal textbox:<dd><input type="text" name="">

<dt>This is normal button:<dd><input type="button" value="i'm button">

</dl>

</body>

</html>

优点:简单,轻量级

缺点:expression判断表达式FireFox是不支持的。致命的是只能区分出一个(例如例子中就只能区分出text文本框),不要试图设置多个,下面的会将上面的覆盖掉 Orz…

★★★★★★★★★★★★★★★★★★★★★★★★★★★

另一种方法:

input{
    zoom: expression(function(ele){(ele.className)?ele.className+=" "+ele.type:ele.className=ele.type; ele.style.zoom = "1";}(this));
}

两点:

1、将 input 的属性取出来,赋给 className。

2、对于 expression,这里使用一个无关紧要的属性(此处是zoom)来触发,处理完需要做的事情之后,再将此属性覆盖掉以解决 expression 不断执行的效率问题。

<!--[if lt IE 7]>

<style type="text/css" media="screen">
input{ 
zoom: expression(function(ele){(ele.className)?ele.className+=" "+ele.type:ele.className=ele.type; ele.style.zoom = "1";}(this));
}
input.text{
border: 1px solid; border-color: #CCC #EEE #EEE #CCC;
background: #F5F5F5;
}
input.password{
border: 1px solid; border-color: #CCC #EEE #EEE #CCC;
color: #000; background: #F5F5F5;
width: 50px;
}
input.button{
border: 1px solid; border-color: #EEE #CCC #CCC #EEE;
color: #000; font-weight: bold; background: #F5F5F5;
}
input.reset{
border: 1px solid; border-color: #EEE #CCC #CCC #EEE;
color: #666; background: #F5F5F5;
}
</style>
<![endif]-->

<style type="text/css" media="all">
input[type="text"]{
border: 1px solid; border-color: #CCC #EEE #EEE #CCC;
background: #F5F5F5;
}
input[type="password"]{
border: 1px solid; border-color: #CCC #EEE #EEE #CCC;
color: #000; background: #F5F5F5;
width: 50px;
}
input[type="button"]{
border: 1px solid; border-color: #EEE #CCC #CCC #EEE;
color: #000; font-weight: bold; background: #F5F5F5;
}
input[type="reset"]{
border: 1px solid; border-color: #EEE #CCC #CCC #EEE;
color: #666; background: #F5F5F5;
}
</style>
</head>
<body>
<input type="text" name="xx" />
<input type="password" name="yy" />
<input type="checkbox" name="oo" />
<input type="radio" name="pp" />
<input type="button" name="qq" value="button" />
<input type="reset" name="oo" value="reset" />
</body>
</html>

★★★★★★★★★★★★★★★★★★★★★★★★★★★

2:用css中的type选择器

实现参考代码:

<!doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

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

<head>

<title> diffInput2 </title>

<meta name="Author" content="JustinYoung"/>

<meta name="Keywords" content=""/>

<meta name="Description" content=""/>

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

<style type="text/css">

input[type="text"]

{

background-color:#FFC;

}

input[type="password"]

{

background-image:url(BG.gif);

}

input[type="submit"]

{

background-color:blue;

color:white;

}

input[type="reset"]

{

background-color:navy;

color:white;

}

input[type="radio"]

{

/*In FF,Some radio style like background-color not been supported*/

margin:10px;

}

input[type="checkbox"]

{

/*In FF,Some checkbox style like background-color not been supported*/

margin:10px;

}

input[type="button"]

{

background-color:lightblue;

}

</style>

</head>

<body>

<dl>

<dt>This is normal textbox:<dd><input type="text" name="">

<dt>This is password textbox:<dd><input type="password" name="">

<dt>This is submit button:<dd><input type="submit">

<dt>This is reset button:<dd><input type="reset">

<dt>This is radio:<dd><input type="radio" name="ground1"> <input type="radio" name="ground1">

<dt>This is checkbox:<dd><input type="checkbox" name="ground2"> <input type="checkbox" name="ground2">

<dt>This is normal button:<dd><input type="button" value="i'm button">

</dl>

</body>

</html>

优点:简单,明了,可以分区出各个input控件形态。

缺点:type选择器,IE6之前的对web标准支持的不太好的浏览器不能支持(致命呀 Orz…)

3:用javascript脚本实现

实现参考代码:

前台html代码:

<!doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

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

<head>

<title> diffInput </title>

<meta name="Author" content="JustinYoung">

<meta name="Keywords" content="">

<meta name="Description" content="">

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

<style type="text/css">

input{behavior:url('css.htc');}

</style>

</head>

<body>

<dl>

<dt>This is normal textbox:<dd><input type="text" name="">

<dt>This is password textbox:<dd><input type="password" name="">

<dt>This is submit button:<dd><input type="submit">

<dt>This is reset button:<dd><input type="reset">

<dt>This is radio:<dd><input type="radio" name="ground1"> <input type="radio" name="ground1">

<dt>This is checkbox:<dd><input type="checkbox" name="ground2"> <input type="checkbox" name="ground2">

<dt>This is normal button:<dd><input type="button" value="i'm button">

</dl>

</body>

</html>

Css.htc代码:

<script language=javascript>

switch(type)

{

case 'text':

style.backgroundColor="red";

break;

case 'password':

style.backgroundImage="url(BG.gif)";

break;

case 'submit':

style.backgroundColor="blue";

style.color="white";

break;

case 'reset':

style.backgroundColor="navy";

style.color="white";

break;

case 'radio':

style.backgroundColor="hotpink";

break;

case 'checkbox':

style.backgroundColor="green";

break;

case 'button':

style.backgroundColor="lightblue";

break;

default: ;//others use default style.

}

</script>

优点:可以分区出各个input控件形态。多种技术的混合使用,满足“我是高手”的虚荣心。

缺点:技术牵扯面教广,因为用js后期处理,所以在js没有起作用之前,各个input还是原始状态,然后突然“变帅”会让你的页面很奇怪。较致命的是FireFox不支持 Orz…

4:Microsoft Visual Studio 2005中使用skin。

Skin文件参考代码:

<%--Style for common TextBox--%>

<asp:TextBox runat="server" style="background-color:#FFC "></asp:TextBox>

<asp:Button runat="server" style=”background-color:red”></asp:Button>

注意里面的样式是用style加上的,而不是用cssClass,道理很简单,如果用cssClass,前面的再用cssClass就会覆盖这个cssClass。导致失败。当然,skin不能单独使用,还要配合css样式表。

优点:可以分区出各个控件形态(注意:skin只能对服务器端控件使用,所以现在已经不是单纯的input标签了,虽然这些服务器端控件“打到”前台的时候仍然是input控件)。除了css,又被分离一层,使得样式的设置能有更好的定制性。其他优点(参考skin的优点)。

缺点:只能对服务器端控件使用。不是所有的项目都能使用skin功能 Orz…

转自:http://hi.baidu.com/o0o%CD%F5%D4%F3%C3%F1o0o/blog/item/23164a4ecd0a8d3eaec3ab13.html

转载于:https://www.cnblogs.com/ybbqg/archive/2012/03/16/2399672.html

CSS分别设置Input样式(按input类型)相关推荐

  1. EasyExcel 设置边框样式(线条类型和线条颜色)

    1 Maven配置 <!--hutool工具包--><dependency><groupId>cn.hutool</groupId><artifa ...

  2. css边框设置阴影样式

    css边框设置阴影样式 box-shadow上下左右四个边框设置阴影样式 语法 值/说明 四个不同样式 实现效果 语法 box-shadow: h-shadow v-shadow blur sprea ...

  3. php设置字体为黑体,css如何设置黑体样式

    css设置黑体样式的方法:可以利用font-family属性来进行设置,如[font-family: 黑体;].font-family属性用于指定一个元素的字体. 属性介绍: font - famil ...

  4. html如何修改字体黑体,css如何设置黑体样式

    css设置黑体样式的方法:可以利用font-family属性来进行设置,如[font-family: 黑体;].font-family属性用于指定一个元素的字体. 属性介绍: font - famil ...

  5. CSS中设置字体样式

    CSS设置字体样式: 1.字体大小设置 字体大小设置,常见的有四种不同的方法: body{ font-size:14px; } h1{ font-size:150%; } h2{ font-size: ...

  6. Css中设置列表项目符号属性,CSS如何设置列表样式属性,分享

    列表样式属性 在HTML中有2种列表.无序列表和有序列表,在工作中无序列表比较常用,无序列表就是ul标签和li标签组合成的称之为无序列表,那什么是有序列表呢?就是ol标签和li标签组合成的称之为有序列 ...

  7. php超链接样式,html和css中设置超链接样式方法的总结

    在之前的文章中我们介绍了关于html中超链接的颜色设置,我们都也知道超链接在网站中都是无处不在的,超链接是跳转到另一个页面的入口,当你把鼠标移动到超链接上,会有颜色或者样式的改变,那么我们今天就给大家 ...

  8. CSS中设置字体样式的5种常用属性—让字体设置再无难点

    设置字体样式的5中常用属性如下 1:color 设置字体颜色,也可以设置其他颜色 2:font-size 设置字体大小 (1).设置的并不是文字本身的大小,在页面中,每个文字都是处在一个看不见的框中的 ...

  9. css如何设置超链接样式

    css设置超链接样式是通过伪类来实现的 (1) :link:设置a对象在未被访问前的样式表属性. (2) :visited:设置a对象在其链接地址已被访问过时的样式表属性. (3) :hover:设置 ...

  10. css链接样式_如何在CSS中设置链接样式

    css链接样式 样式链接 (Styling Links) Links can be styled with any CSS property, such as color, font-family, ...

最新文章

  1. 他给女朋友做了个树莓派复古相机,算法代码可自己编写,成本不到700元
  2. 拓扑学+计算机,吴国平: 拓扑学到底有多重要? 在数学中占据多高的地位?
  3. yum安装nginx php mysql_yum安装nginx+mysql+php
  4. 计算机系统优化的目的和原理,优化原理
  5. win7安装nodejs 高版本不支持 换低版本
  6. python怎么输入三个数按大小输出_Python练习一 : 随机输入三数字,按大小顺序输出...
  7. OpenShift 4 Tekton (5) - Task/Pipeline/Workspace/PipelineResource
  8. 单线程模型中Message、Handler、Message Queue、Looper之间的关系
  9. win10隐藏任务栏_让你的 Windows 任务栏智能化起来
  10. 材料成型计算机基础,材料成型及控制工程 主干课程
  11. Muzli – 所有你需要的设计灵感都在这
  12. 三大移动终端操作系统比较
  13. 二建带记忆功能计算机,二建实务记忆技巧
  14. Android软件开发面试题,安卓面试题库
  15. 万能页面加载loading
  16. Invalid component name: “_compiled“. Component names should conform to valid custom element name组件报错
  17. C程序编译时错误与运行时错误
  18. 逻辑运算符 与、或、非
  19. 贝塞尔曲线 unity两点画曲线弧线三点
  20. 程序大牛必备精品社区

热门文章

  1. 第二次讲课内容(函数和快速幂)
  2. 坑 之 tensorflow使用sess.run处理图片时越来越慢,占用内存越来越大的问题
  3. Python基础 列表的详解(纯干货)
  4. mysql bit类型 使用select查询无法看到其值
  5. 4.1 多层感知机从0开始 4.2 多层感知机简洁实现(API调用)
  6. 概率论-1.3 概率的性质(重点:可列与极限之间的互相转换)
  7. 数据结构课程设计(VS2012-c语言):算术表达式实现(加减乘除)
  8. 计算机接口技术试题及答案,2014.3计算机接口技术总复习题及答案
  9. 5G NR 随机接入--PRACH
  10. [Java]Thinking in Java 练习2.2