html - 为输入类型 ="file"按钮设置样式

标签 html css

如何设置输入 type="file" 按钮的样式?

<input type="file" />

最佳答案

您不需要 JavaScript!这是一个跨浏览器的解决方案:

See this example! - 它适用于 Chrome/FF/IE - (IE10/9/8/7)

最好的方法是将带有 for 属性的自定义标签元素附加到 hidden 文件输入元素。 (标签的 for 属性必须与文件元素的 id 匹配才能正常工作)。

<label for="file-upload" class="custom-file-upload">
    Custom Upload
</label>
<input id="file-upload" type="file"/>

作为替代方案,您也可以直接用标签包装文件输入元素:(example)

<label class="custom-file-upload">
    <input type="file"/>
    Custom Upload
</label>

在样式方面,只需使用 attribute selector 隐藏1 输入元素.

input[type="file"] {
    display: none;
}

那么您需要做的就是设置自定义 label 元素的样式。 (example) .

.custom-file-upload {
    border: 1px solid #ccc;
    display: inline-block;
    padding: 6px 12px;
    cursor: pointer;
}

1 - 值得注意的是,如果您使用 display: none 隐藏元素,它在 IE8 及以下版本中将不起作用。还要注意 jQuery 验证 doesn't validate hidden fields 的事实。默认。如果其中任何一个对您来说是个问题,这里有两种不同的方法可以隐藏在这些情况下有效的输入(12)。

关于html - 为输入类型 ="file"按钮设置样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/572768/

相关文章:

javascript - react native Flexbox : Distributing the items evenly

jquery - 有更好的方法吗?代替单独的点击功能

javascript - xml 自动收报机在谷歌浏览器中不起作用

javascript - 如何根据输入的行数生成html表格?

html - 为什么我的 Font Awesome 图标被复制

jquery - 将模态图像居中 : which <div> to style?

javascript - 如何使复选框显示在联系表单中

javascript - 价格范围 slider 在 mozilla 浏览器中不起作用,但在 chrome 和 opera 浏览器中起作用

html - 使用 Stylus 将 CSS 样式应用到所有 HTML 标签

javascript - 进程注册后显示div,woocommerce