cursor:pointer属性不适用于Webkit浏览器中的文件上载按钮

hom*_*rrr 18 html css webkit cursor

我有CSS代码,它不适用于Safarikit浏览器,如safari和chrome

如果你想在这里的实例,它是http://jsfiddle.net/mnjKX/1/

我有这个CSS代码

.file-wrapper {
    cursor: pointer;
    display: inline-block;
    overflow: hidden;
    position: relative;
}
.file-wrapper input {
    cursor: pointer;
    font-size: 100px;
    height: 100%;
    filter: alpha(opacity=1);
    -moz-opacity: 0.01;
    opacity: 0.01;
    position: absolute;
    right: 0;
    top: 0;
}
.file-wrapper .button {
    background: #79130e;
    -moz-border-radius: 5px;
    -webkit-border-radius: 5px;
    border-radius: 5px;
    color: #fff;
    cursor: pointer;
    display: inline-block;
    font-size: 11px;
    font-weight: bold;
    margin-right: 5px;
    padding: 4px 18px;
    text-transform: uppercase;
}
Run Code Online (Sandbox Code Playgroud)

这个HTML代码:

<span class="file-wrapper">
   <input type="file" name="photo" id="photo" />
   <span class="button">Choose a Photo</span>
</span>
Run Code Online (Sandbox Code Playgroud)

这段代码显示隐藏的输入文件标签,这里的问题是游标:指针在webkit浏览器上不起作用,

我怎么解决它或绕过/超越这个?

Šim*_*das 69

对于初学者,如果您heightinput规则中删除声明,则它适用于Chrome .

现场演示: http ://jsfiddle.net/mnjKX/16/

但这个透明的输入字段是一个黑客的地狱......我不会依赖它.


更新:

这是正确的解决方案:

::-webkit-file-upload-button { cursor:pointer; }
Run Code Online (Sandbox Code Playgroud)

我认为文件上传按钮无法访问,但Chrome的用户代理样式表证明我错了 :)


小智 15

我提出了一个有趣的(跨浏览器)解决方案:

为输入提供cursor:pointer的CSS属性,将输入放在div中(使用overflow:hidden)并为输入提供100%的左边距.填充区域将具有指针属性.

我个人不相信-webkit和-moz修复,因为我觉得它们是任意的和临时的,很快就会被替换.