Ken428965 2024-06-18 20:21 采纳率: 53.4%
浏览 17
已结题

修改不了antd design mobile v5.36 Popover气泡弹出框的样式,怎么办?

前端部分代码如下:

<Popover.Menu actions={isEditable ? [{ key: 'copy', text: '复制' }, { key: 'delete', text: '撤回' }] : [{ key: 'copy', text: '复制' }]}>
//...
</Popover.Menu>

目前样式如下:

img

希望实现如下效果:

img

于是打算在index.module.css里修改其样式,代码如下:

.root :global(.adm-popover-menu-list) {
  min-width: auto !important;
}

保存修改,也试过重启项目,结果是效果依然是最初的效果,没有丝毫改变,也就是说没有实现想要的效果~

接着尝试在浏览器控制台里直接修改:

img

这样做反而能实现想要的效果~但是,这样修改没有意义,到项目上线运行后,其样式依然是最初的样式,因此,尝试在以下路径./node_modules/antd-mobile/es/components/popover/popover-menu.css的文件里把以上代码改为以下代码:

.adm-popover-menu-list {
  overflow: hidden;
  /* min-width: 120px; */
}

保存修改后问题依旧,也试过重启项目,问题也依旧~

请问如何才能修改antd design mobile v5.36 Popover气泡弹出框的样式,实现想要的效果?请展示代码进行说明。

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-06-20 00:09
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    首先需要了解一下样式的覆盖优先级,当多个选择器选中同一个元素时,会根据样式的优先级来确定具体使用哪一个样式。一般来说,行内样式 > 标签内样式 > 外部样式表样式 > 浏览器默认样式,同时在同一级别的优先级中,后面的样式会覆盖前面的样式。 在上述问题中,因为修改样式的选择器比原始样式选择器的优先级低,所以无法覆盖原始样式。正确的做法是提高选择器的优先级,例如可以添加更多的父级选择器,或者使用!important来强制覆盖。 例如可以把修改的样式改为:
    .root :global(.adm-popover-menu-list) {
      overflow: hidden;
      min-width: 120px !important;
    }
    

    这样就可以实现想要的效果了。 另外,需要注意的是修改了node_modules中的源代码是不可取的,因为每次更新包时都会被覆盖掉。可以通过在自己的项目中重新定义样式来覆盖默认样式,或者使用主题覆盖的方法来修改样式。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月24日
  • 修改了问题 6月19日
  • 修改了问题 6月18日
  • 创建了问题 6月18日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?