简体   繁体   English

如何添加垂直滚动条以选择框选项列表?

[英]How to add vertical scrollbar to select box options list?

I need vertical scrollbar for select box options list.我需要选择框选项列表的垂直滚动条。 I have to show only first few items of the list.我只需要显示列表的前几项。 I don't have any control over number of items in the list.我对列表中的项目数量没有任何控制权。

I have checked all similar questions here and nothing worked out.我在这里检查了所有类似的问题,但没有任何结果。 Anyway to do that?无论如何要这样做?

 .wrapper{ width:200px; padding:20px; height: 150px; }
 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> <div class="wrapper" ><select name="" id="" class="form-control"> <option value="">One</option> <option value="">Two</option> <option value="">Three</option> <option value="">Four</option> <option value="">Five</option> <option value="">Six</option> <option value="">Seven</option> <option value="">Eight</option> <option value="">Nine</option> <option value="">Ten</option> </select></div>

Overflow-y doesn't work on select boxes. Overflow-y不适用于选择框。 What I would recommend using is size on your select box.我建议使用的是选择框上的size In my example I've used 5 as the value, you can obviously change this to your liking.在我的示例中,我使用 5 作为值,您显然可以根据自己的喜好更改它。

 .wrapper{ width:200px; padding:20px; height: 150px; }
 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> <div class="wrapper"><select name="" id="" class="form-control" onfocus='this.size=5;' onblur='this.size=1;' onchange='this.size=1; this.blur();'> <option value="">One</option> <option value="">Two</option> <option value="">Three</option> <option value="">Four</option> <option value="">Five</option> <option value="">Six</option> <option value="">Seven</option> <option value="">Eight</option> <option value="">Nine</option> <option value="">Ten</option> </select></div>

Edit: Amended my answer to include some js to provide OP with the desired result.编辑:修改了我的答案以包含一些 js 以向 OP 提供所需的结果。

Try something like this (Replace the number 3 with the number of items you would like to show):尝试这样的事情(用您要显示的项目数替换数字 3):

 <select onfocus='this.size=3;' onblur='this.size=1;' onchange='this.size=1; this.blur();'> <option>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> <option>6</option> <option>7</option> <option>8</option> <option>9</option> <option>10</option> <option>11</option> <option>12</option> <option>13</option> <option>14</option> <option>15</option> <option>16</option> <option>17</option> <option>18</option> <option>19</option> <option>20</option> </select>

Just add size attribute in your select.只需在您的选择中添加 size 属性。 For ex:- size="5"例如:- size="5"

 .wrapper{ width:200px; padding:20px; height: 150px; }
 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> <div class="wrapper" > <select size="5" name="" id="" class="form-control"> <option value="">One</option> <option value="">Two</option> <option value="">Three</option> <option value="">Four</option> <option value="">Five</option> <option value="">Six</option> <option value="">Seven</option> <option value="">Eight</option> <option value="">Nine</option> <option value="">Ten</option> </select></div>

You can just give size , it will work somehow.你可以只给出 size ,它会以某种方式工作。

 <select size="5">
 // all your option comes here
</select>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM