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/56763550/

相关文章:

javascript - 通过给它你想要突出显示的单词来突出显示文本

javascript - 单击一次添加文本以输入

javascript - jQuery slideDown() 将下面的所有内容向下移动。如何防止这种情况?

html - 让图片横向滚动

php - 处理 PHP 中 mySQL 的 "unknown column in field list"错误?

css - 为什么我的背景是透明的?

jquery - DOM 元素的大小为 "auto"

javascript - 用于 iPhone 应用程序的 jquery 中的 slider 导航菜单

javascript - 需要 div 悬停然后在 ipad/iphone 上通过两次触摸转到其他页面

html - 使显示标题具有响应性