如果你曾经试过,你就会知道,用纯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