每日一记:表格盖住了菜单如何优雅解决?

139 阅读1分钟

问题背景

B端平台内,右侧内容遮住了左侧菜单。

经过css查看发现,菜单进行了层级设置,z-index值为99。

右侧内容是table,th层级是200,td层级是100。

问题分析

既然右侧层级高,那直接降低右侧层级或者提高左侧层级可以吗?

这是最直接的解决办法,但是却不行,因为table是封装好的组件,菜单是公用组件,不宜直接更改层级值。

还有其他的解决方法吗?

带着疑问,我打开了md的z-index的文档。

image.png

这段话引起了我的疑惑。堆叠上下文是什么?

层叠上下文

如何创建?有这些方法:

image.png

层叠上下文的特性?

image.png

解决问题

了解了层级上下文的特性后,如何解决遮盖的问题呢?

把组件外层设置成层叠上下文,即可让组件的层级只在内部生效。

把组件设置成层叠上下文的方法很多,图一的都可以。 在当前问题下,我使用了第一个方法,把表格外层加上相对定位,层级低于菜单组件,从而解决了问题。

每次遇到的问题,都是进步的契机,耶✌🏻。

参考资料

  1. developer.mozilla.org/zh-CN/docs/…
  2. developer.mozilla.org/zh-CN/docs/…