我知道这个问题很多次,我在此之前做研究,然后问,
我得到了这样的HTML,
<div id="camerathumbnail">
<input type="file" id="thumbUpload" onchange="fileSelectHandler('module','false')" accept="image/gif, image/jpeg,image/jpg,image/bmp,image/pjpeg,image/png">
</div>
和css这样的类:
#camerathumbnail {
width: auto;
height: auto;
position: absolute;
visibility: hidden;
margin-top: -5px;
margin-left: 87px;
padding: 2px;
border: 1px solid #d7d7d7;
background: url(/Images/Camera_import_24.png) no-repeat center;
background-color: #fff;
cursor: pointer
}
#thumbUpload {
position: relative;
z-index: 2;
width: 24px;
height: 24px;
opacity: 0;
cursor: pointer;
margin: 0;
background: #fff;
}
使用这个css,我无法看到手形图标,我真的想要这个div上的手形图标,由于输入type=file
,我无法获得手形图标,
请为我提供最简单的解决方法,我肯定不会使用旧的浏览器
答案 0 :(得分:5)
您始终可以使用attribute selector:
input[type='file'] {
cursor: pointer;
}
&#13;
<input type="file" />
&#13;
答案 1 :(得分:3)
如果你真的希望整个 div
作为一只手,你可以使用::after
伪元素来覆盖整个div
并将其设置为而是cursor:pointer
(已将背景更改为黄色以突出显示div区域):
#camerathumbnail input {
width: auto;
height: auto;
position: absolute;
visibility: visible;
margin-top: -5px;
margin-left: 87px;
padding: 2px;
border: 1px solid #d7d7d7;
background: url(/Images/Camera_import_24.png) no-repeat center;
background-color: #ff0;
}
input::after {
content:'';
cursor:pointer;
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
display:block;
}
&#13;
<div id="camerathumbnail">
<input type="file" id="thumbUpload" onchange="fileSelectHandler('module','false')" accept="image/gif, image/jpeg,image/jpg,image/bmp,image/pjpeg,image/png"/>
</div>
&#13;
这样说,我一般不想搞砸输入控件的默认行为,因为让他们做的事情是人们不希望它对可用性有好处。