An ordinary input of the file type in HTML
Ordinary input of type file in webpages comes with a default style and the caption, choose file. The good news is that we can style and tweak it to what we want.
<input type="file" accept="image/png, image/jpg, image/gif, image/jpeg"/>
Styling the input
There are three steps to this:
1. Wrap the input file inside a label
element
<label for="inputTag"> Select Image <input id="inputTag" type="file"/> </label>
2. Change the display of the input
tag to none
input{ display: none; }
3. Style the label
element
Here, you can add more elements or icons. This is where the magic comes in.
label{ cursor: pointer; }
Code
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <script src="https://use.fontawesome.com/3a2eaf6206.js"></script> <title>repl.it</title> <style> div{ text-align:center; padding:3%; border:thin solid black; } input{ display: none; } label{ cursor:pointer; } #imageName{ color:green; } </style> </head> <body> <div> <label for="inputTag"> Select Image <br/> <i class="fa fa-2x fa-camera"></i> <input id="inputTag" type="file"/> <br/> <span id="imageName"></span> </label> </div> <script> let input = document.getElementById("inputTag"); let imageName = document.getElementById("imageName") input.addEventListener("change", ()=>{ let inputImage = document.querySelector("input[type=file]").files[0]; imageName.innerText = inputImage.name; }) </script> </body> </html>
相关博文
如何使用 CSS 在表单中设置input file 类型的样式 How you can style the input file type in forms using CSS