You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bootstrap下拉菜单无法在按钮下方居中,当前左对齐如何解决?

解决Bootstrap下拉菜单在触发按钮下方居中显示的方案

Bootstrap原生没有默认的下拉菜单居中对齐类,可通过以下两种方式实现需求:

方式1:自定义CSS兼容所有Bootstrap版本

核心思路是禁用Popper的动态定位逻辑,手动通过定位属性实现水平居中:

  • 给下拉菜单的父容器.role_select添加相对定位,作为下拉菜单的定位参考基准
  • 给下拉菜单添加水平偏移属性实现居中,同时添加data-bs-display="static"属性,避免Popper的动态计算覆盖自定义样式

修改后的CSS代码

.role_select {
    margin: auto;
    position: relative; /* 新增定位父级 */
}

#role_select > div {
    margin-top: 5%;
}

ul[aria-labelledby="dropdownMenuButton1"] > li {
    text-align: center;
}

ul[aria-labelledby="dropdownMenuButton1"] {
    border: 2px solid red;
    left: 50%;
    transform: translateX(-50%); /* 水平居中偏移 */
}

修改后的HTML代码

<div class="role_select">
    <button
        class="btn btn-secondary dropdown-toggle"
        type="button"
        id="dropdownMenuButton1"
        data-bs-toggle="dropdown"
        aria-expanded="false"
    >
        Select Role
    </button>

    <!-- 新增data-bs-display="static"属性 -->
    <ul class="dropdown-menu" aria-labelledby="dropdownMenuButton1" data-bs-display="static">
        <li @click="id_drop(0)">MT-Almighty</li>
        <li @click="id_drop(1)">ST-Almighty</li>
    </ul>
</div>

方式2:Bootstrap 5.3+ 原生内置类实现

如果你使用的是5.3及以上版本的Bootstrap,框架已经内置了居中类,直接给下拉菜单的ul添加dropdown-menu-center类即可实现效果,无需额外写自定义CSS:

<ul class="dropdown-menu dropdown-menu-center" aria-labelledby="dropdownMenuButton1">

内容的提问来源于stack exchange,提问作者John Bao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 20:18:00