每个人都希望(并且应该)知道如何以 html 形式设置文件输入的样式(并且有几种众所周知的技术)。但我更想知道为什么我们必须与一个看似微不足道的技术限制作斗争,而不是一切。
我对w3c 文档不太满意,所以也许我在研究过程中完全错过了它,但我找不到任何关于这个问题起源的可靠文档(参考文献会很好)。
此控件由操作系统呈现,而不是 HTML。它因平台而异。样式“很难”,因为它不是规范的一部分。
本质上,任何标准中都没有“浏览按钮”。这就是您的浏览器恰好呈现控件的方式。不同的浏览器以不同的方式呈现它——不同的颜色、不同的大小、不同的位置等。如果有一种方法可以更合理地设置输入样式就好了,但现在它们的内容就是所谓的“影子 DOM”,这基本上意味着“里面有东西,但你不能碰它,因为它不应该出现在标准中。”
这很难,因为拥有一个您无法识别为标准文件浏览按钮的按钮可能会导致安全风险。这就像 onBeforeUnload 上的对话框和其他有风险的功能一样:它们必须是可识别的。
暴露于文件系统是非常受保护的。有时甚至不授予访问权限(iPhone)。