Bootstrap下拉菜单位置错位问题

10 篇文章 0 订阅
1 篇文章 0 订阅
"本文介绍了在使用Bootstrap时遇到的下拉菜单位置错位问题,特别是对于拆分按钮的下拉菜单。通过尝试不同的解决方法,最终发现通过添加'btn-group'类到外层
并保留'data-reference="parent"'属性可以正确解决菜单错位。这种方法将下拉菜单定位到按钮组的父元素下方,实现了预期效果。"
摘要由CSDN通过智能技术生成
Bootstrap下拉菜单的位置出现错位
如果是单按钮的下拉菜单是没有错位问题的,如下图1,不过我这里需要的是拆分按钮的下拉菜单,如下图2

图1
单按钮模式,点击按钮就会出现下拉菜单
在这里插入图片描述

图2
左边的按钮点击会弹出弹框,右边的小按钮点击会显示下拉菜单
在这里插入图片描述

代码如下:
<div>
      <button
        type="button"
        class="btn button_create_custom"
        (click)="openCustomBatchModal()"
        *ngIf="customBatch == 'create'"
      >
        {{ "outstanding_batch_create_custom_batch" | translate }}
      </button>
      <button
        type="button"
        class="btn button_revert_custom"
        (click)="openCustomBatchModal()"
        *ngIf="customBatch == 'revert'"
      >
        {{ "outstanding_batch_revert_to_previous_batch" | translate }}
      </button>
      <button
        type="button"
        class="btn dropdown_custom_batch"
        data-toggle="dropdown"
        aria-expanded="false"
        data-reference="parent"
      >
        <span class="sr-only"></span>
      </button>
      <div class="dropdown-menu" aria-labelledby="dropdownMenuReference">
        <a class="dropdown-item" (click)="selectCustomBatch('create')">{{
          "outstanding_batch_create_custom_batch" | translate
        }}</a>
        <a class="dropdown-item" (click)="selectCustomBatch('revert')">{{
          "outstanding_batch_revert_to_previous_batch" | translate
        }}</a>
      </div>
    </div>
解决方法:

1、网上找到的有的说是用 dropdown-menu-left 可以解决,尝试后发现不行,这个应该是把下拉菜单位置改为下拉按钮下方,并且与按钮的左边对齐。
2、可以修改 dropdown-menu,在 dropdown-menu 里面写好下拉菜单框的位置,此方法还没尝试,可能有点复杂。
3、最后在其他文章中看到是使用了Bootstrap的按钮组.btn-group来做下单菜单的,所以就尝试添加了这个,然后下拉菜单的错位问题就解决了。

效果如下:
在这里插入图片描述

代码如下:

<div class="btn-group">
      <button
        type="button"
        class="btn button_create_custom"
        (click)="openCustomBatchModal()"
        *ngIf="customBatch == 'create'"
      >
        {{ "outstanding_batch_create_custom_batch" | translate }}
      </button>
      <button
        type="button"
        class="btn button_revert_custom"
        (click)="openCustomBatchModal()"
        *ngIf="customBatch == 'revert'"
      >
        {{ "outstanding_batch_revert_to_previous_batch" | translate }}
      </button>
      <button
        type="button"
        class="btn dropdown_custom_batch"
        data-toggle="dropdown"
        aria-expanded="false"
        data-reference="parent"
      >
        <span class="sr-only"></span>
      </button>
      <div class="dropdown-menu" aria-labelledby="dropdownMenuReference">
        <a class="dropdown-item" (click)="selectCustomBatch('create')">{{
          "outstanding_batch_create_custom_batch" | translate
        }}</a>
        <a class="dropdown-item" (click)="selectCustomBatch('revert')">{{
          "outstanding_batch_revert_to_previous_batch" | translate
        }}</a>
      </div>
    </div>
还有一个需要留意的是data-reference="parent",这个是表示下拉菜单的位置是出现在下拉按钮的父级元素底下,如果没有这个,则会出现在下拉按钮的底下,如下图:

在这里插入图片描述

如果对你有帮助,可以点赞、收藏和打赏,如有疑问,可以评论,谢谢!
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值