多个 bootstrap-selects:z-index 问题
Mutliple bootstrap-selects: z-index issue
我正在使用 bootstrap-select 插件 select。问题是第一个 select 显示的下拉列表位于切换第二个 select 的按钮后面。检查一下(最后的jsfiddle):
这是HTML:
<div class="input-group">
<input id="min-value-input" type="text" class="form-control">
<div class="input-group-btn">
<select class="select-time-unit">
<option value="m" selected>minutes</option>
<option value="h">hours</option>
<option value="d">days</option>
<option value="w">weeks</option>
</select>
</div>
</div>
<div class="input-group">
<input id="max-value-input" type="text" class="form-control">
<div class="input-group-btn">
<select class="select-time-unit">
<option value="m" selected>minutes</option>
<option value="h">hours</option>
<option value="d">days</option>
<option value="w">weeks</option>
</select>
</div>
</div>
当然,我正在启用插件:
$(function() {
$('.select-time-unit').selectpicker();
})
该插件生成一个 bootstrap 下拉菜单。我已经尝试为生成的 HTML 的 li
元素提高 z-index
属性,并为按钮本身降低它,但是 none这有效。
这里有一个jsfiddle,大家可以自己看看。
只需添加一个z-index
到父<div class="input-group">
影响子元素不起作用,因为堆叠顺序只会与父元素一样高。您只需要在第一个 .input-group
的父元素上设置更高的 z-index 即可。 https://jsfiddle.net/3oc6baoh/1/
$(function() {
$('.select-time-unit').selectpicker();
})
.input-group.first {
z-index: 1000;
}
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.2/css/bootstrap-select.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.2/js/bootstrap-select.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<div class="input-group first">
<input id="min-value-input" type="text" class="form-control">
<div class="input-group-btn">
<select class="select-time-unit">
<option value="m" selected>minutes</option>
<option value="h">hours</option>
<option value="d">days</option>
<option value="w">weeks</option>
</select>
</div>
</div>
<div class="input-group">
<input id="max-value-input" type="text" class="form-control">
<div class="input-group-btn">
<select class="select-time-unit">
<option value="m" selected>minutes</option>
<option value="h">hours</option>
<option value="d">days</option>
<option value="w">weeks</option>
</select>
</div>
</div>
这似乎是插件中的错误,如 here 所述。
最干净的修复(以及对我有用的)似乎如下。
.input-group .bootstrap-select.form-control {
z-index: inherit;
}
我正在使用 bootstrap-select 插件 select。问题是第一个 select 显示的下拉列表位于切换第二个 select 的按钮后面。检查一下(最后的jsfiddle):
这是HTML:
<div class="input-group">
<input id="min-value-input" type="text" class="form-control">
<div class="input-group-btn">
<select class="select-time-unit">
<option value="m" selected>minutes</option>
<option value="h">hours</option>
<option value="d">days</option>
<option value="w">weeks</option>
</select>
</div>
</div>
<div class="input-group">
<input id="max-value-input" type="text" class="form-control">
<div class="input-group-btn">
<select class="select-time-unit">
<option value="m" selected>minutes</option>
<option value="h">hours</option>
<option value="d">days</option>
<option value="w">weeks</option>
</select>
</div>
</div>
当然,我正在启用插件:
$(function() {
$('.select-time-unit').selectpicker();
})
该插件生成一个 bootstrap 下拉菜单。我已经尝试为生成的 HTML 的 li
元素提高 z-index
属性,并为按钮本身降低它,但是 none这有效。
这里有一个jsfiddle,大家可以自己看看。
只需添加一个z-index
到父<div class="input-group">
影响子元素不起作用,因为堆叠顺序只会与父元素一样高。您只需要在第一个 .input-group
的父元素上设置更高的 z-index 即可。 https://jsfiddle.net/3oc6baoh/1/
$(function() {
$('.select-time-unit').selectpicker();
})
.input-group.first {
z-index: 1000;
}
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.2/css/bootstrap-select.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.2/js/bootstrap-select.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<div class="input-group first">
<input id="min-value-input" type="text" class="form-control">
<div class="input-group-btn">
<select class="select-time-unit">
<option value="m" selected>minutes</option>
<option value="h">hours</option>
<option value="d">days</option>
<option value="w">weeks</option>
</select>
</div>
</div>
<div class="input-group">
<input id="max-value-input" type="text" class="form-control">
<div class="input-group-btn">
<select class="select-time-unit">
<option value="m" selected>minutes</option>
<option value="h">hours</option>
<option value="d">days</option>
<option value="w">weeks</option>
</select>
</div>
</div>
这似乎是插件中的错误,如 here 所述。
最干净的修复(以及对我有用的)似乎如下。
.input-group .bootstrap-select.form-control {
z-index: inherit;
}