带有向上/向下箭头的单行选择框,如多行选择框中所示

时间:2009-02-15 01:28:30

标签: javascript html css forms

基本上,我想要这个:

<select size="2">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
</select>

但我没有两条线,而是想要一条线。这可以在没有Javascript的情况下完成吗?

如果没有,我会想象它已经足够普遍(虽然我在Google上找不到任何相关链接)存在标准的跨浏览器解决方案,这将有所帮助。

编辑:该控件也称为stepperspinner(此链接还包含有关何时使用旋转控件的UI指南)

解决方案A:

<select size="2" style="height:40px; font-size:28px;">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
  <option>6</option>
</select>

此解决方案依赖于以下事实:选择框足够大以启用控件,但文本足够大,因此只显示一行文本。问题在于它需要相当大才能工作。它适用于IE / FF但由于浏览器默认文本大小不一致而仍然不稳定。

3 个答案:

答案 0 :(得分:4)

在努力寻找可行的无JavaScript解决方案之前,您可能需要重新考虑用户交互方面。

当向用户显示单行<select>时,默认行为是显示下拉列表。改变这种情况会违背用户的期望,并可能使您的表单更难使用,最终减少完成时间或至少增加使用它的时间。

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

除非您有合理的反馈意见,用户希望下拉列表的行为方式不同,否则您可能会走错方向,至少从用户体验的角度来看。

答案 1 :(得分:3)

如果您可以使用JavaScript,则看起来有some options for spinner controlsOne such control具有相当不错的用户界面和功能。例如:

alt text
(来源:extjs.com

答案 2 :(得分:2)

试试这个。

<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>

BTW我同意马克