问题描述:
版本信息:
"ag-grid-community": "^31.2.0",
"ag-grid-enterprise": "^31.2.0",
"ag-grid-react": "^31.2.0",
我在使用ag-grid时表格头筛选功能,弹出的浮窗,背景色透明问题。经测试这个跟浏览器版本有关。
chrome 几乎没问题(太低的没试过 >90.x应该没问题)
搜狗高速浏览器 (截至目前 最新版 12.4版本还有此问题)
火狐浏览器 (大于 100.x 应该没问题,130.0.1 这个没问题)
错误的效果截图:
正确的效果截图:
问题原因:
经过审查元素发现 --ag-menu-background-color 这个css变量不生效。下图 红色的框圈起来的部分。
具体的原因可能是 使用了css变量,低版本浏览器还没支持这个。ag-grid官方也建议使用高版本ag-grid时,最好使用 各大浏览器 最新的两个版本。
CSS Variables (Custom Properties) 兼容性列表
解决方案:
只需要 用全局样式覆盖.ag-menu 的background-color即可。
//为了解决 低版本浏览器 ag-grid的弹出框 背景问题 不加这个的话,弹出框会透明
.ag-menu {
background-color: #F8F8F8 !important;
}
但其实 这个治标不止本,因为 其他用到 css变量的也有问题。我只是为了适配 低浏览器不至于透明展示。最好的还是升级浏览器版本。
正常的效果:
低版本浏览器的效果,明显不一样 边框什么的都没了!!!因为边框也用了css变量(–ag-border-color)。
综上 建议还是让用户升级浏览器版本解决,因为 我用的ag-grid 31 版本很多都用了css变量 。
或者降低你的ag-grid版本,但我不建议这样做,新版本有很多功能,也会解决旧版本的bug。
思考与拓展:
值得一提的是CSS Variables这个已经有很多库都在用了,比如 antd 的 v5版本等等。