如何控制下拉选择菜单的位置?

时间:2013-10-27 19:09:00

标签: javascript jquery html css

我有一个下拉选择菜单,我想知道是否有办法控制选项扩展的方式?默认似乎是两种方式,取决于列表中有多少项。

我想阻止下拉选项显示在其他表单字段上方。当您从列表中选择“国家/地区”时,菜单会向下展开(我想要的位置),但是当您从“州/地区”字段中选择一个具有相当多选择的选项(例如英国)菜单时扩展到其他表单字段,这是我不想要的。无论如何要解决这个问题?

这是我的CSS ----->

#country {
    position:relative;
    background-image:url(../images/drop-down-selector.svg);
    background-position:260px, center;
    background-repeat:no-repeat;
    -webkit-appearance:none;
    -moz-appearance:none;
    box-shadow:0px 0px 0px 1px #b5e7ff;
    border:none;
    outline:none;
    left:2px;
    width:292px;
    height:47px;
    font-size:1.5em;
    font-family:'gotham-medium', arial, sans-serif;
    src:url("http://www.3elementsreview.com/fonts/gotham-medium.otf");
    color:#5fccff;
    border-radius:0;
}

#state {
    position:relative;
    background-image:url(../images/drop-down-selector.svg);
    background-position:260px, center;
    background-repeat:no-repeat;
    -webkit-appearance:none;
    -moz-appearance:none;
    box-shadow:0px 0px 0px 1px #b5e7ff;
    border:none;
    outline:none;
    left:2px;
    width:292px;
    height:47px;
    font-size:1.5em;
    font-family:'gotham-medium', arial, sans-serif;
    src:url("http://www.3elementsreview.com/fonts/gotham-medium.otf");
    color:#5fccff;
    border-radius:0;
}

附加代码----->

<select name="Country" id="country">
    <option value="">-Country-</option>
    <option value="United States">United States</option>
    <option value="United Kingdom">United Kingdom</option>
    <option value="Canada">Canada</option>
    <option value="Australia">Australia</option>
    <option value="Brazil">Brazil</option>
    <option value="France">France</option>
    <option value="Italy">Italy</option>
    <option value="New Zealand">New Zealand</option>
    <option value="South Africa">South Africa</option>
</select>

2 个答案:

答案 0 :(得分:0)

您无法控制下拉扩展方向。这是浏览器计算的内容。也许你可以试着做一些解决方法。制作自己的自定义下拉系统?也许有一个假的选择框,第二个下拉列表位于其他位置。或者与其他解决方案一起避免您的问题

相关:How can I control the expansion direction of a drop-down list?

答案 1 :(得分:0)

浏览器通常控制下拉选项框的位置。通常情况下,如果有足够的空间向下显示它,它就会这样做。它上升,因为下面没有足够的空间。

解决方案是通过使用允许此选项框的下拉列表插件来控制选项框的高度。选择的东西:http://harvesthq.github.io/chosen/。但是,这仍然不能保证选项框始终会关闭。例如,如果输入框位于页面底部,那么选项框应该放在哪里?

另一个解决方案是使用自动完成列表替换下拉列表(例如jquery ui autocomplete),选项更少。它也可能改善用户体验:)。