HTML中文件上傳時(shí)使用的<input type="file"
Web頁(yè)面中,在需要上傳文件時(shí)基本都會(huì)用到<input type="file">元素,它的默認(rèn)樣式:
chrome下:
IE下:
不管是上面哪種,樣式都比較簡(jiǎn)單,和很多網(wǎng)頁(yè)的風(fēng)格都不太協(xié)調(diào)。
根據(jù)用戶的需求,設(shè)計(jì)風(fēng)格,改變其顯示樣式的場(chǎng)合就比較多了。
如果,要像下面一樣做一個(gè)bootstrap風(fēng)格的上傳按鈕該如何實(shí)現(xiàn)。
搭建上傳按鈕所需的基本元素
效果(chrome):
現(xiàn)在看到的分兩行顯示。
外圍之所以沒有換成div,是因?yàn)樵贗E7-瀏覽器中,只要不是設(shè)成inline,它的寬度全都會(huì)撐開到能撐到的寬度。如果設(shè)成inline,那元素的寬度就無(wú)法調(diào)整,所以這里用span然后設(shè)成inline-block能解決這樣的問題。
增加樣式將兩行變成一行
css:
效果:
默認(rèn)是沒有淺藍(lán)色邊框,只有鼠標(biāo)去點(diǎn)擊后,才會(huì)顯示,這里顯示出來(lái)是為了看得清楚。
通過(guò)將外圍的span設(shè)成display:relative,將input設(shè)成display:absolute的方式讓他們都脫離文檔流。
通過(guò)將input限定在外圍的span中進(jìn)行絕對(duì)定位的方式讓本來(lái)兩行顯示的變成一行顯示。
實(shí)際上這里已經(jīng)overflow了,真正的寬度是“上傳”文字的寬度,修改fileinput-button樣式增加overflow: hidden
效果:
很有意思,能看到上邊后右邊的藍(lán)色邊框了吧,其實(shí)就是把左邊和下邊的溢出部分給隱藏了。
這時(shí)候用鼠標(biāo)去點(diǎn)擊“上傳”兩個(gè)字實(shí)際上是點(diǎn)在input上,能夠顯示“打開”對(duì)話框,因?yàn)轱@示層級(jí)上input要比“上傳”更靠近用戶。
注意input定位中的right,為什么不用left定位。
當(dāng)我們改成left后。
效果(chrome):
效果(IE):
在chrome下input元素中的選擇按鈕露出來(lái),但是沒關(guān)系,可以通過(guò)后面的設(shè)透明的方式把它透明掉。
但是在IE下確是會(huì)把輸入框露出來(lái),關(guān)鍵是鼠標(biāo)移到輸入框上時(shí),指針會(huì)變成輸入狀態(tài),這個(gè)就很沒法處理了。
通過(guò)right的定位方式把輸入框移到左邊去的方式,可以在IE下回避出現(xiàn)鼠標(biāo)指針變成輸入態(tài)的情況。
透明input元素
css:
效果:
input完全不見了蹤影,點(diǎn)擊“上傳”依然有效。
可以支持IE8+。
引入bootstrap,并添加按鈕樣式
head中增加外部css和js的引用。
增加按鈕樣式。
效果:
解決大小問題
如果為fileinput-button樣式增加width:100px,將外圍的span設(shè)成寬100px,會(huì)發(fā)現(xiàn)點(diǎn)擊下部是沒有反應(yīng)的,原因就是input是默認(rèn)大小,無(wú)法覆蓋下部。
可以通過(guò)為input設(shè)置一個(gè)很大的字號(hào)將其撐大的方式來(lái)解決覆蓋問題,這里就設(shè)個(gè)200px。
這樣就能解決覆蓋問題。
完成。
參考:jQuery-File-Upload
如果是要兼容IE7-可以參考jQuery-File-Upload中的寫法。
代碼:
- <!DOCTYPE html>
- <html>
- <head>
- <title></title>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
- <link rel="stylesheet" href="bootstrap/bootstrap.css">
- <link rel="stylesheet" href="bootstrap/bootstrap-theme.css">
- <script src="bootstrap/jquery-1.10.2.js"></script>
- <script src="bootstrap/bootstrap.js"></script>
- <style>
- .fileinput-button {
- position: relative;
- display: inline-block;
- overflow: hidden;
- }
- .fileinput-button input{
- position:absolute;
- right: 0px;
- top: 0px;
- opacity: 0;
- -ms-filter: 'alpha(opacity=0)';
- font-size: 200px;
- }
- </style>
- </head>
- <body style="padding: 10px">
- <div align="center">
- <span class="btn btn-success fileinput-button">
- <span>上傳</span>
- <input type="file">
- </span>
- </div>
- </body>
- </html>
欄 目:CSS/HTML
下一篇:html制作細(xì)線表格的簡(jiǎn)單實(shí)例
本文標(biāo)題:HTML中文件上傳時(shí)使用的&lt;input type="file"
本文地址:http://mengdiqiu.com.cn/a1/CSS_HTML/9625.html
您可能感興趣的文章
- 04-02好看的字體樣式css,好看的字體樣式圖片
- 04-02html中加入css樣式的簡(jiǎn)單介紹
- 04-02內(nèi)嵌樣式css,內(nèi)嵌樣式表,內(nèi)部樣式表,外部樣式表中優(yōu)先級(jí)最高的
- 04-02vue中的css樣式布局,vue添加css樣式
- 01-10利用iframe在網(wǎng)頁(yè)中顯示天氣附效果截圖
- 01-10通過(guò)html為FLASH加鏈接的實(shí)現(xiàn)代碼(div層)
- 01-10a標(biāo)簽中寫有文字如何隱藏文字顯示圖片兼容360模式渲染
- 01-10IE瀏覽器HTML Hack標(biāo)簽總結(jié)
- 01-10html用style添加屬性示例
- 01-10HTML中rel屬性分析


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 04-02表格樣式css樣式,css樣式表單
- 04-02好看的字體樣式css,好看的字體樣式圖
- 04-02分頁(yè)樣式css,分頁(yè)樣式j(luò)q
- 04-02分頁(yè)樣式css,分頁(yè)樣式欄里用來(lái)定義首
- 04-02css樣式的引入,css樣式怎么引入
- 04-02css滾動(dòng)條樣式,css滾動(dòng)條的樣式
- 04-02css樣式引入方式有幾種,網(wǎng)頁(yè)引入css樣
- 04-02html中加入css樣式的簡(jiǎn)單介紹
- 04-02vue中的css樣式布局,vue添加css樣式
- 04-02內(nèi)嵌樣式css,內(nèi)嵌樣式表,內(nèi)部樣式表
隨機(jī)閱讀
- 08-05織夢(mèng)dedecms首頁(yè)調(diào)用縮略圖為背景
- 01-10vue實(shí)現(xiàn)分頁(yè)加載效果
- 08-05DEDECMS點(diǎn)擊主欄目默認(rèn)顯示第一個(gè)子欄
- 01-10C++實(shí)現(xiàn)將數(shù)組中的值反轉(zhuǎn)
- 01-10C語(yǔ)言打印楊輝三角示例匯總
- 08-05dedecms織夢(mèng)模板全站調(diào)用收藏?cái)?shù)的方法
- 01-10C++ 類訪問控制的條件總結(jié)
- 01-10bat批處理徹底隱藏文件的方法(使用
- 08-05dedecms織夢(mèng)模板編輯文檔的同時(shí)自動(dòng)更
- 01-11常用的HTML富文本編譯器UEditor、CKEdi