我正在尝试使用Material-UI构建界面(当前版本为3.1.2)
前一段时间,当我使用Bootstrap4时,我在style="overflow-y: scroll; height: 100%"
标签中添加了head
,以始终显示滚动条,以阻止页面内容长于屏幕时应用程序跳动。 / p>
现在,我正在尝试使用Material-UI,当与Material-UI的弹出组件(弹出器,菜单等)结合使用时,溢出设置似乎会导致问题
我在FAQ中读到,这是一个已知的解决方法:https://material-ui.com/getting-started/faq/#why-do-the-fixed-positioned-elements-move-when-a-modal-is-opened-
但是我不确定这告诉我要做什么。 在下文中,短语“应用全局类”意味着什么?
“应用全局.mui固定的类名称...以处理这些元素。”
他们打算将mui-fixed
添加到我的应用程序中的每个组件的位置是什么?菜单/弹出菜单的锚点?还是他们意味着我应该“全局”应用它(即,在React页面组件层次结构中处于较高位置?)
同时,作为一种解决方法,我刚刚从我的html
元素中删除了溢出样式。
当内容在页面大小之间增长/缩小时,应用程序内容仍然会跳跃,但是看起来比我使用Bootstrap时丑陋。
我尝试将mui-fixed
类添加到我的身体,因此当应用启动时,它看起来像:
<body style="overflow-y: scroll; height: 100%" class="mui-fixed">
因此,当页面短时,有一个禁用的滚动条。如果页面变大,滚动条将被启用。
然后,在显示菜单弹出窗口时,Material-UI会将其更改为:
<body style="overflow: hidden; height: 100%; padding-right: 17px;" class="mui-fixed">
无论内容的长度如何,看起来都不错。但是,当菜单关闭时,Material-UI将body元素更改为:
<body style="height: 100%; padding-right: 0px;" class="mui-fixed">
溢出样式消失了,如果页面内容比窗口短,则会导致滚动条被完全删除-因此页面内容“跳转”以填补缺少的滚动条的空间。
答案 0 :(得分:0)
如果我正确的话,这是用于滚动条的,那么它将一次“全局”应用。
答案 1 :(得分:0)
在你的styles.ts中你可以添加:
'@global': {
'.mui-fixed': {
// something here
},
},
它将在全球范围内适用!