输入类型=“文件”上的手形光标

时间:2014-11-18 16:10:30

标签: jquery html css

我知道这个问题很多次,我在此之前做研究,然后问,

我得到了这样的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,我无法获得手形图标,

请为我提供最简单的解决方法,我肯定不会使用旧的浏览器

2 个答案:

答案 0 :(得分:5)

您始终可以使用attribute selector

&#13;
&#13;
input[type='file'] {
    cursor: pointer;
}
&#13;
<input type="file" />
&#13;
&#13;
&#13;

答案 1 :(得分:3)

如果你真的希望整个 div作为一只手,你可以使用::after伪元素来覆盖整个div并将其设置为而是cursor:pointer(已将背景更改为黄色以突出显示div区域):

&#13;
&#13;
 #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;
&#13;
&#13;

这样说,我一般不想搞砸输入控件的默认行为,因为让他们做的事情是人们不希望它对可用性有好处。