R D*_*abh 23 javascript css safari html5
我有一个datalist标签,允许我的用户有一个建议框.但是,我注意到Safari中不支持此功能.这个问题有解决方法吗?
这是我的代码 - 我实际上是用ajax方法填充我的值,但这是它填充后的样子:
<datalist id="languages">
<option value="HTML">
<option value="CSS">
<option value="JavaScript">
<option value="Java">
<option value="Ruby">
<option value="PHP">
<option value="Go">
<option value="Erlang">
<option value="Python">
<option value="C">
<option value="C#">
<option value="C++">
</datalist>
Search:
<input type="text" list="languages">
Run Code Online (Sandbox Code Playgroud)
我这里也有一个小提琴
Dav*_*itt 27
iOS或桌面Safari仍然不支持datalist,到目前为止还没有迹象表明这种变化.所以这是一个黑客使它似乎解决了这个问题.克里斯·科伊尔(Chris Coyier)也曾在2011年参加过数据主义的polyfill.我们希望Safari能够在未来实施现有的W3C建议书.
您可以使用一个select元素里面datalist,并复制option标记值在这些可读文本.例如:
<!DOCTYPE html>
<html>
<head>
<title>test</title>
<style>
input[list="languages"] {
width: 12em;
border: none;
background: #eee;
}
select {
width: 12em;
margin: 0;
margin-left: -12.75em;
}
</style>
</head>
<body>
Choose: <input type="text" list="languages">
<label for="languages">
<datalist id="languages">
<select>
<option value="JavaScript">JavaScript</option>
<option value="Haskell">Haskell</option>
<option value="Ruby">Ruby</option>
<option value="Go">Go</option>
<option value="Python">Python</option>
<option value="etc">etc</option>
</select>
</datalist>
</label>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
支持浏览器只显示datalist,Safari和旧浏览器将显示option标签的innerHTML.该input标签有一个默认的边界上,在Safari很糟糕的背后select因素,但在这个例子中,如图一点点的造型,让您可以Safari的缺乏支持并保持相同的功能外观.无需Javascript和/或polyfill.
Tim*_*orn 22
Safari不支持Datalist元素. http://caniuse.com/#feat=datalist
我意识到它有点晚了,但是,对于那些想要在Safari上模仿datalist的解决方案而不是用select替换它的人:
https://github.com/Fyrd/purejs-datalist-polyfill
基本上你可以在你的html中包含一个短而甜的.js和.css,它使得数据列表链接输入在Safari和Opera mini上的行为与在Chrome,Firefox和Android浏览器上的行为相同.
| 归档时间: |
|
| 查看次数: |
40139 次 |
| 最近记录: |