如果你曾经试过,你就会知道,用纯CSS样式加HTML实现统一的上传文件按钮可能会很麻烦。看看下面的不同浏览器的截图。很明显的,他们长得很不一样。
我们的目标是创造一个简洁,用纯CSS实现的,在所有浏览器里的样子和布局是一样的上传文件按钮。我们可以这样:
步骤1.创建一个简单的HTML标记
1234 | < div class = "fileUpload btn btn-PRimary" >
< span >Upload</ span >
< input type = "file" class = "upload" /> </ div > |
第2步:CSS: 有点棘手了
12345678910111213141516 | .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代码片段可以帮助你。
123 | document.getElementById( "uploadBtn" ).onchange = function () {
document.getElementById( "uploadFile" ).value = this .value; }; |
DOM:
12345 | < 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
新闻热点
疑难解答