样式 <input type="file">

IT技术 javascript css webforms input
2021-01-14 12:20:39

可能的重复:
样式输入类型=“文件”按钮

我试图风格

<input type="file">

但我没有太多运气。我想让文本框消失,只保留按钮。我该怎么做?

5个回答

CSS 方式(基本代码在这里找到):

<html>
    <style type="text/css">
        div.fileinputs {
            position: relative;
        }

        div.fakefile {
            position: absolute;
            top: 0px;
            left: 0px;
            z-index: 1;
        }

        div.fakefile input[type=button] {
            /* enough width to completely overlap the real hidden file control */
            cursor: pointer;
            width: 148px;
        }

        div.fileinputs input.file {
            position: relative;
            text-align: right;
            -moz-opacity:0 ;
            filter:alpha(opacity: 0);
            opacity: 0;
            z-index: 2;
        }
    </style>

    <div class="fileinputs">
        <input type="file" class="file" />

        <div class="fakefile">
            <input type="button" value="Select file" />
        </div>
    </div>
</html>
最好只使用 css 伪元素作为 :before 或 :after 以及它们的样式。
2021-03-20 12:20:39
遗憾的是,仅靠 CSS 并不能在所有浏览器中使用 :(
2021-03-24 12:20:39

没有简单的跨浏览器方式来设置文件的输入类型。因此存在甚至使用javascript的解决方案。

这是一个 jQuery 插件,您可以使用它以跨浏览器的方式设置文件类型的样式:

浏览器不允许您设置文件输入的样式。文件样式插件修复了这个问题。它使您能够将图像用作浏览按钮。您还可以使用 css 将文件名字段设置为普通文本字段。它是使用 JavaScript 和 jQuery 编写的。

你可以在这里查看演示


也发布在流行的 ajaxian.com 上,你也可以看看这个:

Shaun Inman 有一个可爱的小技巧,可以让您使用 CSS 和 DOM 来设置文件输入的样式。

众所周知,这些元素处理起来很痛苦,现在我们选择了在 IE 上运行良好的盒装,我们需要一些其他的东西来修复 :)

我编写了这个 jQuery 插件,使文件输入的样式变得更加简单。使用 CSS 和“假元素”来获得你想要的结果。

http://github.com/jstnjns/jquery-file

希望有帮助!

我知道你说你想摆脱文本框,但这是一个巨大的可用性缺陷..无论如何,你可以在我的例子中用 CSS 隐藏它。
2021-03-22 12:20:39
我认为没有人试图变得“更好”。但是,使用我构建的 jQuery 插件,您可以在选择后看到文件的名称,以及设置文本输入和按钮的样式(不仅仅是按钮,如您的示例所示)。
2021-04-03 12:20:39
以及如何解决问题。我的更好,最重要的是有效。Royalsofts.moon.pk/careers.php点击浏览按钮
2021-04-05 12:20:39
2021-04-09 12:20:39
<label for="file" style="/* style this one, as you want */">Upload file</label>
<input id="file" name="file" type="file" style="display:none;">
你确定这有效吗?我正在 chrome 中尝试它。最初它显示自定义按钮,但一旦我点击选择文件,它就会回到默认状态
2021-03-21 12:20:39
2021-03-22 12:20:39
当我尝试时,恐怕这不起作用;当您尝试单击“上传文件”时没有任何反应。
2021-04-01 12:20:39
这种方法在 Safari 和 Chrome 中运行良好(在其他地方未经测试)......最好将cursor: pointer;CSS添加到标签。
2021-04-01 12:20:39

一些浏览器需要文件输入可见并手动单击浏览按钮,否则它不会向服务器提交任何内容。所以我建议 Saefraz 的第一个解决方案:用于 jQuery 的文件样式插件