主頁 > 知識(shí)庫 > input元素[type="file"]時(shí)的樣式定制及瀏覽器兼容性問題探討

input元素[type="file"]時(shí)的樣式定制及瀏覽器兼容性問題探討

熱門標(biāo)簽:最簡單的百度地圖標(biāo)注店鋪 錦州企業(yè)外呼系統(tǒng) 禹州電話外呼系統(tǒng) AI外呼系統(tǒng) 價(jià)格 梧州地圖標(biāo)注app 營口400電話申請 青海保險(xiǎn)智能外呼系統(tǒng)商家 新鄉(xiāng)機(jī)器人外呼系統(tǒng) 水經(jīng)注萬能地圖標(biāo)注
這兩天在做百姓網(wǎng)的筆試題的時(shí)候遇到了這樣一個(gè)問題,用 HTML5 的新特性實(shí)現(xiàn)百姓網(wǎng)現(xiàn)有的一個(gè)模塊,在百姓網(wǎng)中逛了一陣后最終選定了發(fā)布信息所用的表單模塊,原因很簡單,在 HTML5 中針對(duì)表單有很多新特性可以使用,這些新特性也很有實(shí)用性,畢竟有表單的地方實(shí)在是太多了,比如注冊啦,登錄啦,發(fā)帖啦......(喂,有點(diǎn)跑題了親。)


這個(gè)時(shí)候,我看到原始網(wǎng)頁中的表單里有這么個(gè)元素


我的第一反應(yīng)就是,哈,input元素而已,用CSS定制一下樣式就可以了,然后我很自然的準(zhǔn)備“右鍵”-“審查元素”來看看具體的樣式百姓網(wǎng)是怎么寫的以后發(fā)現(xiàn)......


一定是我的打開方式不對(duì)......既然這樣,當(dāng)然是自己動(dòng)手豐衣足食了,有一點(diǎn)我可以確認(rèn)的是,這種上傳文件的表單控件跑不了是要用input[type="file"]的,好吧,直接添加這么一行代碼:

復(fù)制代碼
代碼如下:

<input type="file" />

在chrome瀏覽器中刷新看看:


毫無疑問,這是預(yù)設(shè)的樣式,而且我發(fā)現(xiàn)這種預(yù)設(shè)的樣式還很不好修改,最讓人惱火的是,不同的瀏覽器預(yù)設(shè)的樣式都是不一樣的,借用網(wǎng)上的一張圖片就很清楚了:


(所以我就說嘛,你們這些瀏覽器一點(diǎn)都不聽話,彼此之間又不好好溝通,自high得特別爽,苦的可是前端的同學(xué)啊你妹)
不過辦法還是很好想到的,用一個(gè)元素把 input 包裹起來,在元素中添加所需要的其他元素,并設(shè)置樣式,做成需要達(dá)到的效果,將 input 元素的 position 值設(shè)為 absolute 填充外圍元素,再將 input 透明即可。
HTML代碼如下:

復(fù)制代碼
代碼如下:

<div id="input-file">
<span id="text">點(diǎn)擊上傳</span>
<input id="file" type="file" />
</div>

對(duì)應(yīng)的CSS代碼如下:

復(fù)制代碼
代碼如下:

#input-file {
position: relative; /* 保證子元素的定位 */
width: 120px;
height: 30px;
background: #eee;
border: 1px solid #ccc;
text-align: center;
cursor: pointer;
}
#text {
display: inline-block;
margin-top: 5px;
color: #666;
font-family: "黑體";
font-size: 18px;
}
#file {
display: block;
position: absolute;
top: 0;
left: 0;
width: 120px; /* 寬高和外圍元素保持一致 */
height: 30px;
opacity: 0;
-moz-opacity: 0; /* 兼容老式瀏覽器 */
filter: alpha(opacity=0); /* 兼容IE */
}

顯示效果如圖:

kimoji......
八過,這里仍有一個(gè)bug,當(dāng)做成這樣的按鈕時(shí),當(dāng)鼠標(biāo)懸停時(shí)應(yīng)該是可點(diǎn)擊狀態(tài),但即使給所有元素都添加了 cursor: pointer; 屬性,仍然會(huì)有某些區(qū)域顯示為指針狀態(tài),有沒有高手能夠解決呢?

標(biāo)簽:山南 荊門 潮州 懷化 青島 哈密 昭通 延邊

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《input元素[type="file"]時(shí)的樣式定制及瀏覽器兼容性問題探討》,本文關(guān)鍵詞  input,元素,type,file,時(shí),的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《input元素[type="file"]時(shí)的樣式定制及瀏覽器兼容性問題探討》相關(guān)的同類信息!
  • 本頁收集關(guān)于input元素[type="file"]時(shí)的樣式定制及瀏覽器兼容性問題探討的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章