DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS詳解 >> 如何用css控制input中的text和radio
如何用css控制input中的text和radio
編輯:CSS詳解     

在制作表單頁面的時候,如果頁面有很多表單,我就不願意單獨定義一個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的辦法來解決這個問題

示例顯示:

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved