Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 具有向上/向下箭头的单行选择框,类似于多行选择框_Javascript_Html_Css_Forms - Fatal编程技术网

Javascript 具有向上/向下箭头的单行选择框,类似于多行选择框

Javascript 具有向上/向下箭头的单行选择框,类似于多行选择框,javascript,html,css,forms,Javascript,Html,Css,Forms,基本上,我想要这个: <select size="2"> <option>1</option> <option>2</option> <option>3</option> <option>4</option> </select> 但是我不想有两行,我想在一行上。没有Javascript可以做到这一点吗 如果不是的话,我想这已经足够普遍了,虽然我在谷歌上找不到任

基本上,我想要这个:

<select size="2">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
</select>
但是我不想有两行,我想在一行上。没有Javascript可以做到这一点吗

如果不是的话,我想这已经足够普遍了,虽然我在谷歌上找不到任何相关链接,但是有一个标准的跨浏览器解决方案可以帮助我

编辑:该控件也称为a或a。此链接还提供了有关何时使用旋转控件的UI指南

解决方案A: 此解决方案依赖于这样一个事实:选择框足够大,可以启用控件,但文本足够大,因此只显示一行文本。问题是,它需要相当大的规模才能起作用。它适用于IE/FF,但由于浏览器默认文本大小的差异,仍然不稳定。

试试这个

<select size="2" style="height:2em;">
   <option>1</option>
   <option>2</option>
   <option>3</option>
   <option>4</option>
   <option>5</option>
   <option>6</option>
</select>

顺便说一句,我同意Mark的观点,在努力找到一个可行的无JavaScript解决方案之前,您可能需要重新考虑用户交互方面的问题

当向用户显示单行时,默认行为是显示下拉列表。更改此选项违背了用户的期望,可能会使表单更难使用,最终会减少完成时间或至少增加使用表单的时间

如果您最终想要允许多个选择,那么单行输入几乎不可能使用

除非您有合理的反馈,用户希望下拉列表表现不同,否则您可能会朝着错误的方向前进,至少从用户体验的角度来看是这样的。

如果您可以使用JavaScript,看起来确实有。有相当好的用户界面和功能。例如:


资料来源:

即使在调整了宽度后,我也不会用这种方法看到上下箭头。我用这种方法在IE6中得到了一个微调器。很好。不过我在FF3里没有旋转器这只会增加选项周围选择的高度,不会暴露更多选项。嗯,我不知道IE6,很酷。虽然它不是w3c规范的一部分,所以不能像扎克指出的那样依赖它。在重新阅读了你的问题后,我不确定你是否在寻找一个旋转器。我的缺点。微调器和我想找的差不多。我不知道它叫什么,虽然我想避免使用JS,但似乎没有其他好的选项。UX/UI都值得。在我的情况下,这是一个数字计数器,其规模有限,对收音机来说太大,但仍然需要压缩,因此文本字段不是一个选项。具体是什么是您需要显示的范围吗?我认为对于最终用户来说,常规下拉列表可能比微调器控件更有效。相反,您可以包含说明“仅允许值x到y”的指令文本,并在服务器端验证它,因为客户端JS已退出。
<select size="2" style="height:2em;">
   <option>1</option>
   <option>2</option>
   <option>3</option>
   <option>4</option>
   <option>5</option>
   <option>6</option>
</select>