input[type="file"]的樣式以及文件名的顯示


如何美化input[type="file"]

基本思路是:

(1)首先在 input 外層套一個 div ;

(2)將 div 和 input 設置為一樣大小(width和height);

(3)設置 div 為相對位置, input 為絕對位置,並將 input 的 top 和 right 設為 0 ;

這樣, div 和 input 就重疊了,點擊 div 就相當於點擊 input ;

(4)設置 input 的 opacity 為 0 ,全透明,這樣就只能看見 div 了;

至於 div 的樣式就隨便設置了。

html:

<form action="#" enctype="multipart/form-data" method="post">
    <div class="fileupload">
                <script>
      function getFilename(){
        var filename=document.getElementById("file").value;
        if(filename==undefined||filename==""){
          document.getElementById("filename").innerHTML="點擊此處上傳文件";
        } else{
          var fn=filename.substring(filename.lastIndexOf("\\")+1);
          document.getElementById("filename").innerHTML=fn; //將截取后的文件名填充到span中
        }
      }
    </script>
   <span id="filename">點擊此處上傳文件</span>
   <input type="file" name="file" id="file" onchange="getFilename()"/>
    </div>
</form>

 

css:

 1 /*文件上傳*/
 2 .fileupload{
 3     position: relative;
 4     width:200px;
 5     height:35px;
 6     border:1px solid #66B3FF;
 7     border-radius: 4px;
 8     box-shadow: 1px 1px 5px #66B3FF;
 9     line-height: 35px;
10     padding-left: 8px;
11     overflow: hidden;
12 }
13 .fileupload input{
14     position: absolute;
15     width:200px;
16     height:35px;
17     right: 0;
18     top: 0;
19     opacity: 0;
20     filter: alpha(opacity=0);
21     -ms-filter: 'alpha(opacity=0)';
22 }

注意:input[type="file"] 的文件路徑是受保護的,用 js 獲取不到,使用上傳的插件可以獲取到。(只是從前端的角度講)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM