javascript - 如何在 CSS 中为浏览按钮指定样式(图像)?

标签 javascript jquery css

如何为浏览按钮应用样式(图像)?

我需要为浏览按钮提供图像,我是按照以下方式完成的,但问题是 光标指针不起作用,所以我无法单击 IPAD 中的浏览按钮...

input.file {
    cursor: pointer;
    border: 0 solid #33CCFF;
    opacity: 0;
    padding: 5px;
    position: relative;
    text-align: right;
    width: 350px;
    z-index: 2;
}

谁能帮帮我..

最佳答案

您不能使用 CSS 设置文件输入按钮的样式。这不是唯一不能设置样式的元素。其他一些输入不接受样式。看这个fiddle查看多种类型的输入。根据您的浏览器,一些输入呈现不同。范围输入或日期输入等输入使用的是操作系统级别的 UI,无法通过 CSS 进行编辑。

你可以做的是隐藏文件输入并显示另一个元素,如 div 或另一个接受样式的输入,如按钮类型输入作为你的文件输入,并触发触发点击和提交(点击输入)事件在你隐藏的实际文件上输入。

代码示例:

HTML

<input type="file" />
<label>Select file to upload: <input type="button" /></label>

CSS

input[type="file"]{visibility:hidden; width:0;}

JavaScript:

var fileInput = document.querySelectorAll('input[type="file"]')[0],
    fakeFileInput = document.querySelectorAll('label')[0],
    clickEvent = document.createEvent('MouseEvent');
clickEvent.initMouseEvent('click',true,true,document.defaultView,1,0,0,0,0,false,false,false,false,0,null);

fakeFileInput.addEventListener('click', function(event){
   fileInput.dispatchEvent(clickEvent);
}, false);

fiddle in action

所以你的问题的答案是:不,不幸的是你不能设置文件输入按钮的样式!

关于javascript - 如何在 CSS 中为浏览按钮指定样式(图像)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6774593/

相关文章:

javascript - 使用代码中的多行将行 append 到 HTML 表

JavaScript 向 stringToColour 函数添加透明度选项

jquery - 文本框内的 Bootstrap 弹出窗口

javascript - 如何为 jquery 对话框应用自定义主题?

css - 如何使用CSS将div的 'clip away'部分?

javascript - 将 setTimeout 函数分配给 Vue 方法

javascript - JQuery .slideDown() 向上滑动

javascript - 将类添加到具有数组 id 的元素

javascript - boolean 值未通过 jQuery/$.get 传递 - 为什么?

html - CSS & HTML 移动元素