Dra*_*ray 13 html browser upload
我很好奇为什么不同的浏览器有不同的<input type="file">按钮来浏览文件.有许多问题询问如何设计它们,显然某种"黑客"被用来改变它们.但没有人真正解释为什么浏览器控制它?
还记得只有一个浏览器的时间吗?如果样式中没有使用字体,则浏览器必须设置默认字体.不仅字体有默认值,按钮也有默认值.即使没有使用样式,也需要显示元素.
随着时间的推移,出现了更多的浏览器,它们可能具有相同的默认字体但不是,它们希望彼此区分.
想象一下,开发人员忘记按钮的样式,按钮没有默认值.怎么<input>样?在表格下方浮动的文字?那不是很好看.
回到问题:文件输入按钮.最初给它一个固定的名称,当前的浏览器只是继续执行最初实现的内容.随着时间的推移,人们习惯了他们在浏览器中看到的文件上传文本.就像下面的参考文献所述,某些人,例如老人或不熟悉计算机(不限于)不使用其他浏览器的人,可能会在看到另一串文本时感到困惑.
因此说控制有点过于强烈.后备听起来好多了.:)
正如@cweitat所指出的,这可以追溯到HTML和浏览器的早期开始(您还记得镶嵌浏览器吗?)。
那时,页面数据和浏览器之间的交互仅限于HTML语法和语义。没有javascript修改可用。
但是,人们普遍支持支持将文件(对于浏览器而言是本地的)上传到服务器(服务于该页面)。要走的路button是为此目的提供一种逻辑版本。按钮是一种HTML元素,它允许来自浏览器端的活动(链接除外)。
那时,页面上显示的元素在“小部件”方面没有想到,因此很可能没人考虑在HTML元素上提供足够的设置来影响与用于选择和上传文件的小部件有关的所有视觉和交互方面。
随着后来DOM标准化为“页面”的表示形式,而javascript作为以编程方式修改各个方面的机制,“用户”也试图越来越多地控制这种按钮的样式和视觉表示就不足为奇了。
另一方面,如今影响页面表示形式的可能性越来越大(并且几乎呈爆炸性增长),也减轻了“扩展”当前HTML元素语法的压力。(我已经看到很多网页避免使用大多数标准HTML元素,而是div使用某些javascript。)
<input type="file"/>之所以使用浏览器控件,是因为它们必须提供此元素的适当表示形式。由于没有内部表示的规范,因此必须遵循此元素的实现,但是有一些替代方法可以在不使用此类元素的情况下获得功能,因此浏览器供应商不太可能会为页面开发人员费心地暴露内部状态。 (这样可以实现更多控制)。
与其他按钮相比,文件输入按钮的视觉表示是一组不同的视觉组件。一个是按钮本身。另一个是显示所选文件的字段。同样(至少在逻辑上),一个弹出窗口显示可用文件,提示一些过滤逻辑以及更多按钮也是该功能的一部分。(即使以后的部分通常是从窗口或操作系统环境中引入的,但这也是实现的细节。)
现在,仅HTML元素不允许指定具有足够细节的样式。例如,指定背景色:这应该应用于按钮元素还是应用于反馈区域(选定文件),或者甚至应用于文件选择弹出窗口?浏览器开发人员可能已经决定向“用户”展示一些内部组件结构。但是,在过去的日子里,它不够“有趣”,今天您可以使用其他机制。
| 归档时间: |
|
| 查看次数: |
848 次 |
| 最近记录: |