Bootstrap 下拉菜单定位不正确
Bootstrap dropdown menu does not position correctly
当我将 bootstrap 下拉菜单放置在使用 CSS "text-align: center" 使下拉菜单居中的 div 中时,下拉菜单出现在原始未居中的位置下拉菜单。下拉菜单似乎不知道它的触发按钮已被移动。
此 js 中表示了问题fiddle:
https://jsfiddle.net/dkent600/wyos4ukt
fiddle 包含以下代码:
<div style="background-color:grey; text-align:center">
<div class="dropdown">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-expanded="true">
Dropdown
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Action</a></li>
</ul>
</div>
</div>
感谢您提供解决此问题的任何线索。
如果您将 class btn-group
添加到 .dropdown
元素,则下拉菜单将正确定位。
<div class="btn-group dropdown">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-expanded="true">
Dropdown
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Another action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Something else here</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Separated link</a></li>
</ul>
</div>
之所以有效,是因为 class 添加了以下 CSS。这样做时,下拉菜单相对于父元素相对定位。
.btn-group > .btn,
.btn-group-vertical > .btn {
position: relative;
float: left;
}
或者,您也可以添加以下内容:
.dropdown {
position: relative;
display: inline-block;
vertical-align: middle;
}
当我将 bootstrap 下拉菜单放置在使用 CSS "text-align: center" 使下拉菜单居中的 div 中时,下拉菜单出现在原始未居中的位置下拉菜单。下拉菜单似乎不知道它的触发按钮已被移动。
此 js 中表示了问题fiddle:
https://jsfiddle.net/dkent600/wyos4ukt
fiddle 包含以下代码:
<div style="background-color:grey; text-align:center">
<div class="dropdown">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-expanded="true">
Dropdown
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Action</a></li>
</ul>
</div>
</div>
感谢您提供解决此问题的任何线索。
如果您将 class btn-group
添加到 .dropdown
元素,则下拉菜单将正确定位。
<div class="btn-group dropdown">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-expanded="true">
Dropdown
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Another action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Something else here</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Separated link</a></li>
</ul>
</div>
之所以有效,是因为 class 添加了以下 CSS。这样做时,下拉菜单相对于父元素相对定位。
.btn-group > .btn,
.btn-group-vertical > .btn {
position: relative;
float: left;
}
或者,您也可以添加以下内容:
.dropdown {
position: relative;
display: inline-block;
vertical-align: middle;
}