html - Material UI Drawer 组件在未聚焦时添加不需要的阴影
问题描述
我在使用该Material UI
Drawer
组件时遇到了一些问题。当我尝试在我的网页中显示它时,它会尝试将焦点强制到内部div
,并在您关注其他任何地方时为组件添加阴影或边框。
有谁知道是什么导致这个阴影出现以及如何禁用它?下面的示例屏幕截图 - 你会在底部看到一个蓝色边缘(如果我调整元素的大小,这一直是一样的)
一旦您单击Drawer
例如List
元素内的内容,阴影就会消失。我认为这一定与模态组件有关吗?
<Drawer PaperProps={{ className: classes.floatingMenu }} anchor='top' open onClose={() => {}}>
<div className={classes.dummy}>
</div>
</Drawer>
注意:floatingMenu
该类仅在顶部添加一个边距55px
(即高度AppBar
- 仅此而已)。
解决方案
这有点棘手,但只需一些道具和样式就可以了。为 UI 其余部分着色的元素是Backdrop
组件的Modal
组件。在临时模式下Drawer
使用。Modal
控件的hideBackdrop
propModal
控制是否看到阴影,您也可以将此 propDrawer
直接传递给 。
但是,Modal
组件本身仍会覆盖整个视口,从而阻止您在Drawer
关闭之前单击 UI 的其他区域。我不确定是否有更简单的方法,但至少您可以Modal
通过将其设置pointer-events
为none
. 要恢复抽屉本身的“可点击性”,您应该将其设置pointer-events
回all
.
因此,例如,只需使用style
prop 来制作简单的内联样式:
<Drawer hideBackdrop style={{ pointerEvents: 'none' }}>
<div style={{ pointerEvents: 'all' }}>
I'm a sidebar!
</div>
</Drawer>
如果您使用 Material UI 的样式解决方案,您还可以通过prop将pointer-events
样式规则传递给Drawer
自己的。Paper
classes
推荐阅读
- r - 将新的观察结果添加到 R 中数据框中的列
- bash - bash - 字符串操作后修剪输入
- javascript - 使用带有页面导航的共享网络工作者上传文件
- talend - iSQLOutput - 仅更新选定的列
- laravel - Laravel 多对多多态关系:让每个记录具有更高优先级的孩子
- matplotlib - 大型数据集的回归:为什么准确性会下降?
- c# - .Net SFTP 公钥/私钥身份验证
- react-native - org.gradle.api.tasks.TaskExecutionException:任务':app:processReleaseResources'的执行失败
- c# - C# ADO.NET 数据库连接和参数化查询的最佳实践是什么?
- sql - SQL根据某列随机选择行