修改input表单中file的样式

673 阅读1分钟

我们在css中修改file的表单样式是一件比较麻烦的事情,最近学习到一种方法,隐藏表单的样式,添加一个div,div添加事件,触发表单事件,原理上等同于修改了file的样式。

另外写一个按钮的样式,然后将自己写的按钮和这个默认的样式的定位改为重合,并将默认的按钮设置opacity:0,即设置透明度为完全透明,这样就可以在表面上是点击自己定义的样式,而实际上是点击input这个按钮。

1、重写一个新的样式
2、将默认样式设置display:none;,即设为不可见
3、在js里调用:当点击新样式的时候,调用这个input的点击事件

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <meta name="viewport" content="width=device-width, initial-scale=1.0">  <title>上传</title>  <style>    .bg {      display: flex;      justify-content: center;      align-items: center;      width: 1920px;      height: 1080px;      background: url('./bg.jpg')no-repeat center / 100%;    }    .file1 {      display: none;    }    .img_one {      width: 300px;      height: 100px;    }  </style>  <script src="../jquery-1.11.1.min.js"></script></head><body>  <div class="bg">    <img src="./banner3.png" alt="" class="img_one">    <input type="file" class="file1">    <button>提交</button>  </div>  <script>    $(document).ready(function () {      $('.img_one').click(function () {        $('.file1').click()      })    })  </script></body></html>

代码如上

实际如下

提交按钮是另写 有兴趣可以同理,不过button比较好修改