javascript - 如何在material-ui中的屏幕中间创建一个排版?
问题描述
显然,我很难为 Material-ui 组件设计样式,也许是我对框架的了解不足,但是当我解释完情况后,让我们来判断一下。
我有一个登录页面,它显示一个视频作为背景,我想要将其他组件添加到该视频屏幕的中心,如排版。
这是我的组件:
import React, {Fragment, useState} from 'react'
import {createStyles, Grid, makeStyles, Typography} from '@material-ui/core'
import DrawerC from '../components/drawer'
import AppbarC from '../components/appbar'
import background from '../assets/background.mp4'
const useBackgroundStyle = makeStyles((theme)=>createStyles({
root:{
width: '100%',
height: '100%',
overflowX: 'hidden'
},
typographyMiddle:{
∎∎∎∎∎∎ SOME STYLING TO POSITION THE TYPOGRAPHY IN THE MIDDLE ∎∎∎∎∎∎
position: 'absolute',
∎∎∎∎∎∎ ------------------------------------- ∎∎∎∎∎∎
},
[theme.breakpoints.down('md')]:{
root:{
width: window.screen.width,
height: window.screen.height,
objectFit: 'cover',
objectPosition: '20% 0%',
overflowX: 'hidden'
}
}
}))
export default function () {
const backgroundStyle = useBackgroundStyle()
const [drawerState, handleDrawerState] = useState(false)
const [datepickerState, handleDatepicker] = useState(false)
return(
<Fragment>
<AppbarC handleDrawerState={handleDrawerState} handleDatepicker={handleDatepicker} />
∎∎∎∎∎∎ THIS IS THE PART OF THE CODE THAT MATTERS ∎∎∎∎∎∎
<video autoPlay='autoplay' muted loop id="myVideo" className={backgroundStyle.root}>
<source src={background} type="video/mp4" />
</video>
<Grid
container
spacing={0}
direction="column"
alignItems="center"
justify="center"
style={{ minHeight: '100vh' }}
className={backgroundStyle.typographyMiddle}
>
<Typography className={backgroundStyle.typographyMiddle}> THIS IS A TEST </Typography>
</Grid>
∎∎∎∎∎∎ ------------------------------------- ∎∎∎∎∎∎
<DrawerC state={drawerState} handleDrawerState={handleDrawerState} />
</Fragment>
)
}
我尝试了这种方法,我在其他人提出的另一个 stackoverflow 问题中看到了这种方法,但它所做的只是将排版居中,但它为页面添加了额外的空白。
所以我想知道答案的主要问题是:
- 集中不属于框架的元素的最佳方法是什么?
- 集中作为框架一部分的组件的最佳方法是什么?
- 使用框架时设置元素/组件样式并对其进行测试的最佳方法是什么?
- 框架的样式是如何工作的?
解决方案
您应该能够在父(包装器)组件上使用“位置:相对”,然后在子组件上使用“位置:绝对”,并使用 % + vh 您可以将子组件放置在父组件中的任何位置。
推荐阅读
- python - 需要从 ip-ranges 文件中获取 Amazon S3 部分
- python-3.x - 获取 AST 节点的“ctx”对象的值
- c# - 对 Serilog.Sinks.AwsCloudWatch 使用 Serilog 默认 ITextFormatter
- c# - 如何显示或显示 FK“名称”或“标题”而不是 FK“ID”
- flutter - backpress 将用户带到列表中的第一个图像
- r - 用 `groups` 替换 `vars` 属性在 R 中用 dplyr 是什么意思?
- c++ - 从 CEdit 派生类更改文本和背景颜色
- javascript - JavaScript 中循环的性能问题
- python-3.x - Python3 瓶 SQLite3 测验 - 使用变量列名称和数据列表进行更新
- python - Python海龟箭头未朝向正确方向