input type="file"与cursor:pointer的兼容性问题

表单控件type=file的手势在chrome中自定义不起作用,一直都是箭头的形状,即使设置为cursor:pointer;也是不管用。具体表现如下:

 

默认样式“选择文件”的手势一直是“”,这是chrome的内设样式,没法修改。

解决方法:

  (1)、搜索网上的解决方法都是设置font-size:0;opacity:0;但是设置之后只有“未选择”会消失,而“选择文件按钮”依然存在(只是透明度为0而已)。(抛弃);

  (2)、我认为的方法是把“选择文件”脱离视线,具体实现有很多方法,以下列举一些

    第一、使用label,使用label的for属性与input的id属性,两者进行挂钩,input的opacity设为0,label做绝对定位处理。

    第二、input的父元素做overflow:hidden;处理,然后input做font-size: 0;opacity:0;margin-left:-100px;然后设置一个比较大的宽高;

    第三、其他方法比如给input定位了,或者其他都是和方法二一样的原理;

 

转载于:https://www.cnblogs.com/fqlGlog/p/7569823.html

<div class="form-group"> <label class="col-sm-3 control-label">任务图标</label> <div class="col-sm-6"> l<input type="file" id="iconInput" class="image-input" style="display: none;"> <img id="previewIcon" class="preview-image" src="taskimg/task01.svg" alt="默认图片" width="50px" height="50px" style="cursor: pointer;" onclick="selectImage('iconInput', 'previewIcon')"> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">任务图片</label> <input type="file" id="imageInput1" class="image-input" style="display: none;"> <img id="previewImage1" class="preview-image" src="images/tianjia.png" alt="默认图片" width="150px" height="200px" style="cursor: pointer;" onclick="selectImage('imageInput1', 'previewImage1')"> <input type="file" id="imageInput2" class="image-input" style="display: none;"> <img id="previewImage2" class="preview-image" src="images/tianjia.png" alt="默认图片" width="150px" height="200px" style="cursor: pointer;" onclick="selectImage('imageInput2', 'previewImage2')"> <input type="file" id="imageInput3" class="image-input" style="display: none;"> <img id="previewImage3" class="preview-image" src="images/tianjia.png" alt="默认图片" width="150px" height="200px" style="cursor: pointer;" onclick="selectImage('imageInput3', 'previewImage3')"> </div> <div class="form-group"> <label class="col-sm-3 control-label">示例图片</label> <input type="file" id="imageInput1" class="image-input" style="display: none;"> <img id="previewImage1" class="preview-image" src="images/tianjia.png" alt="默认图片" width="150px" height="200px" style="cursor: pointer;" onclick="selectImage('imageInput1', 'previewImage1')"> <input type="file" id="imageInput2" class="image-input" style="display: none;"> <img id="previewImage2" class="preview-image" src="images/tianjia.png" alt="默认图片" width="150px" height="200px" style="cursor: pointer;" onclick="selectImage('imageInput2', 'previewImage2')"> <input type="file" id="imageInput3" class="image-input" style="display: none;"> <img id="previewImage3" class="preview-image" src="images/tianjia.png" alt="默认图片" width="150px" height="200px" style="cursor: pointer;" onclick="selectImage('imageInput3', 'previewImage3')"> </div> <script> function selectImage(inputId, imageId) { document.getElementById(inputId).click(); document.getElementById(inputId).onchange = function(event) { previewImage(event, imageId); } } function previewImage(event, imageId) { var input = event.target; var reader = new FileReader(); reader.onload = function() { var image = document.getElementById(imageId); image.src = reader.result; } reader.readAsDataURL(input.files[0]); } </script>请修正一下以上代码的问题,修改后点击每一个图片,可以选择本地图片并更换默认图片显示
07-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值