
MaterialUI的ButtonGroup组件,中间边框不被覆盖的实现秘诀
在MaterialUI的ButtonGroup中,Button之间的分界线通常会被覆盖。然而,官方示例中却展示了一个特殊的情况:按钮悬停时,中间的边框依然可见。本文将揭开这个效果背后的实现原理,并分析在实际应用中可能遇到的问题。
实现原理
官方示例的做法非常巧妙:
将除第一个按钮以外的所有按钮的左边界向内移动一个边框的宽度。对除最后一个按钮以外的所有按钮的右边界进行透明处理。在按钮悬停时,恢复按钮的边框并将其设为不透明。
这样,当按钮悬停时,只有当前按钮的边框是可见的,而前后按钮的边框则被隐藏或变为透明。
常见问题
在实际应用中,我们可能会遇到以下问题:
边框被背景色覆盖:在这种情况下,需要将背景色从边框区域移除,或使用background-clip属性。右边框颜色未设为透明:如官方示例中所述,除最后一个按钮以外的按钮的右边界颜色应设为透明。悬停时边框颜色不改变:需要添加.box:not(:last-child):hover { border-right-color: currentColor; }样式,以覆盖透明边框。
通用写法
上述的实现原理可以概括为以下通用写法:
设置按钮之间边框的宽度为margin-left: -1px。对除最后一个按钮以外的所有按钮的右边界设为透明。在按钮悬停时,为按钮设置不透明边框。在悬停后一个按钮时,将后一个按钮的左边界设为透明。
以上就是在 MaterialUI 中,ButtonGroup 组件的中间边框不被覆盖的诀窍是什么?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1630380.html
微信扫一扫
支付宝扫一扫