当前位置: 首页 > 图文教程 > 网页制作 > CSS样式表 > 如何用css控制input中的text和radio

CSS样式表
CSS 表单元素不继承body的字体属性
网页制作学习教程 CSS Position
网页设计学习教程 CSS盒模型
vertical-align 表单元素垂直对齐的解决方法
不用Cookie的仿刷新二级高亮菜单
CSS3 优势以及网页设计师如何使用CSS3技术
CSS 网页制作 提高CSS可阅读性
CSS 样式表中引用图片地址在各浏览器中的差异
CSS Sprite优化 减少HTTP链接数
网页制作中应用的50个CSS技巧(国外)
CSS 英文教程 CSS语法
CSS 网页文字渐变效果
纯css 圆角实现代码
CSS 新的图像替换方法
不必需的样式脚本文件导致页面不能及时更新
CSS 约定写法 利用扩展
最全的CSS浏览器兼容问题小结
CSS 网页图文混排的10个技巧
IE的CSS制作网页技巧3则
创造100% 自适应css布局的行之有效的方法

CSS样式表 中的 如何用css控制input中的text和radio


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 516 ::
收藏到网摘: n/a

在制作表单页面的时候,如果页面有很多表单,我就不愿意单独定义一个input样式 然后每个input text下都去调用这个css(<input type="text" name="textfield" class="" />).我觉得这样每个input引用css的做法不理想,而且也太麻烦了.我习惯定义一个总的input样式。如input { border:1px solid #f00} ,这样为所有的input定义了一个红色边框。这样就必须在radio调用一个无红色边框的css 如:.radio { border:none} 把radio的红色边框去掉.但这样radio的外观就和默认情况下的相比不美观了很多。我在做网站的时候就碰到这样的问题,如图:

没有定义input,默认的情况下:

定义了input全局样式的情况下 radio的外观就难看了许多:


那如何用css控制input中的text和radio呢?软晨学习网找到了两个解决办法,还是以示例来说明:

方法一:

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>css如何控制input中的text和radio</title>
<style type="text/css">
<!--
input{behavior:url(text.htc)} 
-->
</style> 
</head>
<body>
<input type="text" name="textfield" />
<input type="radio" name="radiobutton" value="radiobutton" />
</body>
</html>

就是在css中调用了text.htc文件。何谓htc文件?htc的全称就是Html Components,由微软在IE5.0后开始提供的一种新的指令组合,它是一个JavaScript的代码文件,主要把JavaScript代码封装起来。所以htc文件只在IE下有效。

在text.htc文件中写入代码:
<public:component>  
  <public:attach   event="oncontentready"   onevent="init()"   />  
  <public:attach   event="ondetach"   onevent="on_deatch()"   />  
  <script>  
  function init()  
  {  
  if(element.type=="text")  
  {  
  element.style.border="1px solid #f00"  
  }  
  }  
  </script>  
</public:component> 

ps:此方法的一个bug是在firefox下不支持。而且据说用htc比较占资源。所以不推荐使用。

方法二:

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>css如何控制input中的text和radio</title>
</head>
<body>
<input type="text" name="textfield" />
 <input type="radio" name="radiobutton" value="radiobutton" />
</body>
</html>
<script language="javascript" type="text/javascript">
var obj = document.getElementsByTagName("input");
for (var i=0; i<obj.length; i++)
{
    if (obj[i].type=="text"){obj[i].style.border="1px solid #f00" }
}
</script>

ps:就是在页面最下面加上这端JS代码。这个方法比较实用,也可以推荐使用,特别感谢可乐用JS的办法来解决这个问题

示例显示: