Bootstrap 模态中选择的下拉菜单隐藏在模态页脚后面

Posted

技术标签:

【中文标题】Bootstrap 模态中选择的下拉菜单隐藏在模态页脚后面【英文标题】:Chosen dropdown within Bootstrap modal is hidden behind modal footer 【发布时间】:2012-11-25 22:39:16 【问题描述】:

我正在使用基于 twitter bootstrap 示例的模式。我有一个使用选择的选择元素。 When the chosen select drops down, it is cut off by the modal footer.我尝试在所选元素上添加 z-index 值,但没有任何效果。我正在倾斜地看着它,想知道是否只是因为选择元素与模态页脚 div 之前的 div 一起使用?我也使用了 selected 和 bootstrap 中的默认 CSS,所以我没有修改任何内容。

例子。

html

            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">
                    ×</button>
                <h3>
                    Add Tag</h3>
            </div>
            <div class="modal-body">
                <div class="control-group">
                    <label for="addedTags">
                        Add tags (separated by commas)
                    </label>
                    <input id="addedTags" style="width: inherit" type="text">
                </div>
                <div class="control-group">
                    <label for="deleteTags">
                        Delete tags
                    </label>
                    <select style="display: none;" class="tags chzn-done" id="deleteTags" multiple="multiple" name="deleteTags"><option value="49">Accessories</option>
    <option value="69">AG_Adriano_Goldschmied</option>
    <option value="37">BCBG</option>
    <option value="38">Bebe</option>
    <option value="45">Bernie_Dexter</option>
    <option value="19">Black</option>
    <option value="6">Blue</option>
    <option value="66">Body-Con</option>
    <option value="71">Casual</option>
    <option value="39">Christian_Louboutin</option>
    <option value="64">Clear</option>
    <option value="50">Coach</option>
    </select><div style="width: [object Object]px;" class="chzn-container chzn-container-multi chzn-container-active" id="deleteTags_chzn">
<ul class="chzn-choices"><li class="search-field"><input value="Select Some Options" class="default" autocomplete="off" style="width: 149px;" type="text"></li></ul>
<div class="chzn-drop" style="left: 0px; top: 29px;"><ul class="chzn-results"><li id="deleteTags_chzn_o_0" class="active-result highlighted" style="">Accessories</li><li id="deleteTags_chzn_o_1" class="active-result" style="">AG_Adriano_Goldschmied</li><li id="deleteTags_chzn_o_2" class="active-result" style="">BCBG</li><li id="deleteTags_chzn_o_3" class="active-result" style="">Bebe</li><li id="deleteTags_chzn_o_4" class="active-result" style="">Bernie_Dexter</li><li id="deleteTags_chzn_o_5" class="active-result" style="">Black</li><li id="deleteTags_chzn_o_6" class="active-result" style="">Blue</li><li id="deleteTags_chzn_o_7" class="active-result" style="">Body-Con</li><li id="deleteTags_chzn_o_8" class="active-result" style="">Casual</li><li id="deleteTags_chzn_o_9" class="active-result" style="">Christian_Louboutin</li><li id="deleteTags_chzn_o_10" class="active-result" style="">Clear</li><li id="deleteTags_chzn_o_11" class="active-result" style="">Coach</li></ul></div></div>
                </div>
            </div>
            <div class="modal-footer">
                <button class="btn" data-dismiss="modal" aria-hidden="true">
                    Close</button>
                <input class="btn btn-primary" id="btnAddTags" value="Save" type="button">
                <span class="loader"></span>
            </div>
            <div class="alert alert-error hide">
                <button type="button" class="close" data-dismiss="alert">
                    ×</button>
                <strong>Error</strong> <span class="alert-msg"></span>
            </div>
            <div class="alert alert-success hide">
                <button type="button" class="close" data-dismiss="alert">
                    ×</button>
                <strong>Success</strong> <span class="alert-msg"></span>
            </div>

【问题讨论】:

【参考方案1】:

要使 z-index 起作用,您还必须设置 position = relative、absolute 或 fixed。也将 z-index 设置为 5000 可能会有所帮助。 (模态在 2000 年代的 z 索引处。

所以在你的 css 中我会添加这个:

.class-of-dropdown 
    position: relative;
    z-index: 5000;

编辑: .modal-body 类有一个 overflow-y: auto 属性。您可能需要将其更改为:

.modal-body 
    overflow-y:visible;

【讨论】:

chozen 元素确实在 css 中设置了位置值,我将 z-index 设置为 9999,但仍然没有 jive。这个快把我逼疯了! 你尝试过溢出修复了吗? 做到了!厉害的抓人。其中一些 CSS 元素真的让我陷入了循环。再次感谢! @hajpoj 我有同样的问题,但在我的情况下,我无法将.modal-body 类设置为溢出可见因为我在模态上有很多下拉菜单,因此我需要放置 overlow:scroll 否则模态重叠。如果我删除溢出,我会遇到奇怪的情况:如果我放置溢出,滚动模式重叠:滚动下拉出现在该模式下,如上面的示例,请您在这种情况下帮助我。谢谢 下拉菜单是模态右侧的子项。因此,只要页脚没有 z-index,即使 z-index: 1 也应该可以工作【参考方案2】:

我也遇到了同样的问题,无法让@hajpoj 工作。我确实通过设置以下 css 让它工作:

.modal-body  
    position: static; 

【讨论】:

以上是关于Bootstrap 模态中选择的下拉菜单隐藏在模态页脚后面的主要内容,如果未能解决你的问题,请参考以下文章

带有溢出的模态中的ui-select下拉菜单

从下拉列表中触发时,Bootstrap-4 模态不显示

在 WordPress 中升级到 Bootstrap v4.0.0-beta 后,模态和下拉菜单不起作用

在移动设备中选择视图,例如下拉菜单,而不是模态[关闭]

在下拉更改时显示 Bootstrap 模态表单,并在插入数据库后选择该值

在移动设备中隐藏 Bootstrap 模态