如果你曾經試過,你就會知道,用純CSS樣式加HTML實現統一的上傳文件按鈕可能會很麻煩。看看下面的不同瀏覽器的截圖。很明顯的,他們長得很不一樣。
我們的目標是創造一個簡潔,用純CSS實現的,在所有瀏覽器里的樣子和布局是一樣的上傳文件按鈕。我們可以這樣:
步驟1.創建一個簡單的HTML標記
1
2
3
4
|
<
div
class
=
"fileUpload btn btn-primary"
>
<
span
>Upload</
span
>
<
input
type
=
"file"
class
=
"upload"
/>
</
div
>
|
第2步:CSS: 有點棘手了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
.fileUpload {
position
:
relative
;
overflow
:
hidden
;
margin
:
10px
;
}
.fileUpload input.upload {
position
:
absolute
;
top
:
0
;
right
:
0
;
margin
:
0
;
padding
:
0
;
font-size
:
20px
;
cursor
:
pointer
;
opacity:
0
;
filter: alpha(opacity=
0
);
}
|
為簡單起見,我使用應用了BootstrapCSS樣式的按鈕 (div.file-upload)。
演示:
上傳按鈕,顯示選中的文件
不幸的是純CSS的做不到這一點。但是,如果你真的想顯示所選文件,下面的JavaScript代碼片段可以幫助你。
JavaScript:
1
2
3
|
document.getElementById(
"uploadBtn"
).onchange =
function
() {
document.getElementById(
"uploadFile"
).value =
this
.value;
};
|
DOM:
1
2
3
4
5
|
<
input
id
=
"uploadFile"
placeholder
=
"Choose File"
disabled
=
"disabled"
/>
<
div
class
=
"fileUpload btn btn-primary"
>
<
span
>Upload</
span
>
<
input
id
=
"uploadBtn"
type
=
"file"
class
=
"upload"
/>
</
div
>
|
演示:
原文地址: geniuscarrier.com