我正在尝试创建一个需要多张图片的上传表单。我希望能够删除 "选择文件" 按钮,但保留 "否选择文件" 以通知用户他们将要上传哪些文件。
据我所知,我可以在输入类型文件样式上将不透明度设置为0,但这会同时删除"选择文件" 和"否选择文件" 文字。
Here is the codepen of the image uploader so far.
总结:
这是HTML:
<div class="upload">
<div class="container">
<div class="row">
<div class="col-md-12">
<h1>Would you like to <span style='color: lightgreen;'>Upload</span> or <span style='color: orangered;'>Delete</span> a file?</h1>
<div style="position: relative; height: 275px;">
<form action="" method="post" enctype="multipart/form-data" class="formUp">
<input type="file" name="fileToUpload[]" id="fileToUpload" accept="image/*" multiple="multiple"><p>Click here to upload images.</p></input>
<input type="submit" value="Upload Images" name="submitUpload" />
</form>
</div>
</div>
</div>
</div>
</div>
这是CSS:
.up {
border: none;
}
.upload {
padding-top: 6%;
}
.upload input[type='file'] {
outline: none;
width: 100%;
height: 100%;
position: absolute;
}
.formUp {
border: 4px dashed black;
width: 400px;
height: 200px;
position: absolute;
}
.formUp p {
text-align: center;
width: 100%;
height: 100%;
line-height: 170px;
font-weight: bold;
font-size: 1.5em;
}
.upload input[type='submit'] {
margin-top: 2%;
width: 100%;
height: 20%;
}
.upload input[type='submit'] {
background: #0AC986;
dispaly: inline-block;
width: 100%;
font-size: 16px;
height: 50px;
color: #fff;
text-decoration: none;
border: none;
border-radius: 4px;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
}
.upload input[type='submit']:hover {
color: #F37272;
background-color: palegreen;
}
.upload input[type='submit'] {
-o-transition: all .3s;
-moz-transition: all .3s;
-webkit-transition: all .3s;
-ms-transition: all .3s;
}
.upload input[type='submit']:hover {
color: red;
}
答案 0 :(得分:2)
AFAIK,我们对样式输入文件做不了多少事。我们可以做的是使用不透明度和外观技巧并使输入文件覆盖父元素,因此用户仍然会收到输入文件的click事件。
此外,您还需要使用javascript / jQuery来处理您需要的内容。如果使用javascript / jQuery对你来说不是问题,请在你的[Codepen] [1]的示例实现之下。
[1]: http://codepen.io/mahdaen/pen/Ejwodb
答案 1 :(得分:0)
text-indent
属性将操纵选择文件按钮的位置,但保留无文件选择文本。
.upload input[type='file'] { text-indent: -999em; outline: none; width: 100%; height: 100%; position: absolute; }