我不太了解React Material-UI网格系统。如果我想使用表单组件进行登录,那么在所有设备(移动设备和桌面设备)上将其集中在屏幕上的最简单方法是什么?
答案 0 :(得分:24)
因为您要在登录页面中使用它。 这是我在使用Material-UI
的登录页面中使用的代码<Grid
container
spacing={0}
direction="column"
alignItems="center"
justify="center"
style={{ minHeight: '100vh' }}
>
<Grid item xs={3}>
<LoginForm />
</Grid>
</Grid>
这将使此登录表单位于屏幕的中心。
但是IE仍然不支持Material-UI Grid,你会在IE中看到一些错位的内容。
希望这会对你有所帮助。
答案 1 :(得分:5)
另一种选择是:
<Grid container justify = "center">
<Your centered component/>
</Grid>
答案 2 :(得分:5)
您可以使用Box组件执行此操作:
import Box from "@material-ui/core/Box";
...
<Box
display="flex"
justifyContent="center"
alignItems="center"
minHeight="100vh"
>
<YourComponent/>
</Box>
答案 3 :(得分:2)
@Nadun的版本对我不起作用,大小调整效果不佳。删除了direction="column"
或将其更改为row
,有助于构建具有响应大小的垂直登录表单。
<Grid
container
spacing={0}
alignItems="center"
justify="center"
style={{ minHeight: '100vh' }}
>
<Grid item xs={6}>
</Grid>
</Grid>
答案 4 :(得分:1)
这是没有网格的另一种选择:
<div
style={{
position: 'absolute',
left: '50%',
top: '50%',
transform: 'translate(-50%, -50%)'
}}
>
<YourComponent/>
</div>
答案 5 :(得分:1)
使用其他答案时,xs='auto' 对我有用。
<Grid container
alignItems='center'
justify='center'
style={{ minHeight: "100vh" }}>
<Grid item xs='auto'>
<GoogleLogin
clientId={process.env.REACT_APP_GOOGLE_CLIENT_ID}
buttonText="Log in with Google"
onSuccess={this.handleLogin}
onFailure={this.handleLogin}
cookiePolicy={'single_host_origin'}
/>
</Grid>
</Grid>
答案 6 :(得分:0)
您所要做的就是将内容包装在Grid Container标记内,指定间距,然后将实际内容包装在Grid Item标记内。
<Grid container spacing={24}>
<Grid item xs={8}>
<leftHeaderContent/>
</Grid>
<Grid item xs={3}>
<rightHeaderContent/>
</Grid>
</Grid>
另外,我在材料网格方面遇到了很多困难,我建议您自动检查内置于CSS的flexbox,并且不需要使用任何附加软件包。它很容易学习。