关于 ant design vue a-select option 过长 显示不全的问题

ant design vue a-select 的 选项 option 太长时,太长的部分 以... 显示,想看全的话,需要让它换行显示,

这种效果。

先去看API,发现有两个属性可能 可以实现这个效果

dropdownStyle :下拉菜单的 style 属性

dropdownMenuStyle:dropdown 菜单自定义样式,

当时尝试之下 发现不可行。

然后想到直接写 CSS 样式,让它换行,但是发现在 style或者行内怎么写都不生效。

也不是深度选择器的问题。

然后看网页源码 发现,下拉菜单默认渲染到body上,

然后发现了 这位大佬的 文章

https://zhuanlan.zhihu.com/p/471352213

其实API 中也提到过,getPopupContainer 默认渲染到body上

 我们可以使用这个属性让它渲染到指定的节点上,这样就可以使用 深度选择器 使我们写的样式生效了

看代码

             <div ref="selectBox" class="selectdrop">
              <a-select
                :getPopupContainer="()=>this.$refs.selectBox"
                 >
                <a-select-option    v-for="i in list" :key="i.id" :value="i.id">
                  {{i.name}}
                </a-select-option>
              </a-select>
              </div>

首先使用一个 div包裹 a-select 选择器,然后使用getPopupContainer 属性,使列表渲染到 这个div中,在加一个 class,这个根据你的习惯起名,然后就是使用 深度选择器

<style scoped lang="less">
/deep/ .selectdrop .ant-select-dropdown-menu .ant-select-dropdown-menu-item{
  white-space: normal;
  word-break: break-all;
}
</style>

这样 就 OK 啦,下拉菜单已经可以换行了

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值