“应用全局类名”是什么意思?

时间:2018-10-14 04:12:20

标签: css material-ui

我正在尝试使用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">

溢出样式消失了,如果页面内容比窗口短,则会导致滚动条被完全删除-因此页面内容“跳转”以填补缺少的滚动条的空间。

2 个答案:

答案 0 :(得分:0)

如果我正确的话,这是用于滚动条的,那么它将一次“全局”应用。

答案 1 :(得分:0)

在你的styles.ts中你可以添加:

    '@global': {
      '.mui-fixed': {
        // something here
      },
    },

它将在全球范围内适用!