2012-07-21 86 views
98

我刚刚开始使用HTML5的新表单输入字段来处理HTML5。当我使用表单输入字段时,尤其是<input type="text" /><input type="search" /> IMO,在包括Safari,Chrome,Firefox和Opera在内的所有主流浏览器中没有任何区别。搜索字段的行为也像普通的文本字段。输入类型=“文本”vs输入类型=“搜索”在HTML5中

那么,HTML5中的input type="text"input type="search"有什么区别?

<input type="search" />的真正目的是什么?

+0

http://www.html5tutorial。info/html5-search.php – 2012-07-21 05:41:38

回答

144

眼下,没有它们之间存在着巨大的交易 - 也许有永远不会。然而,重点是让浏览器制造商有能力做一些特殊的事情,如果他们想要的话。

想想手机上的<input type="number">,启动数字键盘,或者拨打type="email"来创建一个特殊版本的键盘,使用@和.com等。

在手机上,搜索可能会出现一个内部搜索小程序,如果他们想要的话。

另一方面,它帮助当前的开发人员与CSS。

input[type=search]:after { content : url("magnifying-glass.gif"); } 
+10

+1两个有效点, 1)'手机内部搜索小程序'。 2)“更好地呈现的能力”。 但是,我应该等待接受答案,因为我想确保没有任何其他目的:) – 2012-07-21 08:04:54

+0

现在,没有。 输入全部或者只是当前的名字(比如只有部分支持input [type = color]),或者浏览器已经实现了自己的特殊处理(如type = number或者type = email或者type = range) 。没有其他的选择 - 它要么由浏览器进行特殊处理,要么没有。现在,在大多数浏览器中,type = search没有,并且可能不会(除了MAYBE使它看起来像iTunes或其他应用中的搜索框)。目前,它在那里,因此您可以通过了解它是一个搜索框来添加额外的功能/演示文稿。 – Norguard 2012-07-21 15:07:41

+21

一个区别是在搜索输入中按[Esc]将清除结果。超级方便,如果您的用户经常使用它。 – 2014-02-28 02:46:12

26

它在大多数浏览器中绝对没有。它的行为就像一个 文本输入。这不是问题。该规范并不要求它做任何特别的事情 。但WebKit浏览器确实对待它有点不同 虽然主要与样式。

默认情况下,WebKit中的搜索输入具有嵌入边框,圆角 拐角和严格的印刷控制。

此外,

这是不记录任何地方,我知道的也不是在规范, 但你,如果你输入添加一个结果参数,将WebKit的应用 一点带有显示前 结果的下拉箭头的放大镜。

<input type=search results=5 name=s> 

Reference

首先,它提供了一个语义到input type

更新:

Chrome 51 removed support for the results attribute:

+2

Chrome 51取消了对“结果”属性的支持:https://developers.google.com/web/updates/2016/08/chrome-53-deprecations#remove-results-attribute-for -input-typesearch – Flimm 2016-09-09 16:01:52

0

但它有YOUT输入元件上的不良影响,如果你设置

<input type="search"> 

而且在你的CSS设置

input {background: url("images/search_bg.gif");} 

它不会showup可言。

3

其实是非常谨慎假定它什么都不做。当您使用类型搜索来转换样式输入时,他们具有某些无法更改的属性。尝试改变一个边界,你会发现它是不可能的。还有其他几个不允许的CSS属性,请查看this了解所有细节。

也由Jashwant提到有结果的属性,但它并不能很好地工作,除非你还包括自动保存属性。然而,在大多数浏览器中,下拉菜单不起作用,因此请自行使用。

7

在某些浏览器,它也支持了“结果”和“自动保存”属性,它提供了自动“最近搜索”用放大镜图标功能。

More info

+0

Chrome 51取消了对“结果”属性的支持:https://developers.google.com/web/updates/2016/08/chrome-53-弃用#删除-结果的属性换输入typesearch – Flimm 2016-09-09 16:02:34

2

有在行动浏览器的差异,当你输入一些单词,然后在Chrome/Safari浏览器键入ESC输入type="search"输入框将被清除。但在type="text"的情况下,单词不会被清除。所以要小心选择类型,特别是当你使用它的自动完成或搜索相关功能

2

加分:input type="search“有能力使用onsearch属性(虽然我注意到这不适用于微软新的边缘浏览器),这样就无需编写自定义onkeypress=if(key=13) { function() }事情

12

视觉/功能,如果2个不同的输入类型为“搜索‘: - 。

  1. 你得到在’X”符号输入/搜索框的结束清除文本框中
  2. 按下“Esc键”键在键盘上也清除文本
1

这取决于视图的程序员点,程序员可以很容易地确定通过查看类型的输入目的,CSS样式很容易,JavaScript或JQuery可以验证输入中的规则。

2

使用INPUT TYPE =“搜索”使keybord enterkey的文戏“搜索”,这可以改善用户体验。但是,如果使用此类型,则必须调整样式。

2

大部分功能都是一样的,但我们可以看到使用浏览器的一个区别是,在SAFARI和CHROME中,输入有点不同。 它们添加在右侧“X”图标,但它是对于Firefox,IE

总之同样的事情,为Firefox,IE,歌剧只针对Safari和Chrome没有区别。 RAW粘贴数据 大部分功能都是一样的,但1间的区别,我们可以看到使用的浏览器是search输入是在Safari和Chrome有一点不同。 它们添加在右侧“X”图标,但它是对于Firefox,IE

总之同样的事情,为Firefox,IE,歌剧只针对Safari和Chrome没有区别。