<input type="file">美化例項程式碼

antzone發表於2017-03-15

文字域實在是不夠美觀和select下拉選單一樣都是非常難於美化的,更嚴重的是,在不同的瀏覽器中,文字域的外觀差距很大,所以如果對美觀度要求比較高的話,就需要對文字域進行一下美化,不過要採用一點特別的手段。

程式碼例項如下:

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
#thefile
{
  -moz-opacity:0;
  filter:alpha(opacity=0);
  opacity:0;
  position:absolute;
  left:166px;
}
#thetext
{
  color:green;
  border:1px solid green;
  width:300px;
}
#bt
{
  border:1px solid green;
  width:80px;
}
</style>
<script type="text/javascript">
window.onload=function()
{
  var thefile=document.getElementById('thefile');
  var thetext=document.getElementById('thetext');
  function getValue()
  { 
    thetext.value=thefile.value; 
  } 
  thefile.onchange=function(){getValue();}
}
</script> 
</head>
<body> 
<input type=file id="thefile"/> 
<input id="thetext"/> 
<input type="button" value="選擇檔案" id="bt"/> 
</body> 
</html>

程式碼實現了我們想要的功能,儘管文字域依然很醜,這裡只是演示一下如何實現此功能,下面簡單介紹一此美化效果的實現過程。

實現原理:

將<input type="file">文字域設定為全透明狀態,然後使用絕對定位覆蓋於文字框和按鈕之上,那麼當點選按鈕的時候,其實依然是點選的文字域的,這樣就會彈出一個檔案選擇框,當選擇檔案的時候就會觸發onchange事件,然後將文字域的value屬性值賦值給text文字框,這樣就實現了我們想要的效果。

相關文章