Ich verstehe das React Material-UI-Rastersystem nicht ganz. Wenn ich eine Formularkomponente für die Anmeldung verwenden möchte, wie kann ich sie auf allen Geräten (Mobilgeräte und Desktops) am einfachsten auf dem Bildschirm zentrieren?
Ich verstehe das React Material-UI-Rastersystem nicht ganz. Wenn ich eine Formularkomponente für die Anmeldung verwenden möchte, wie kann ich sie auf allen Geräten (Mobilgeräte und Desktops) am einfachsten auf dem Bildschirm zentrieren?
Antworten:
Da werden Sie dies in einer Anmeldeseite verwenden. Hier ist ein Code, den ich auf einer Anmeldeseite mit der Material-Benutzeroberfläche verwendet habe
<Grid
container
spacing={0}
direction="column"
alignItems="center"
justify="center"
style={{ minHeight: '100vh' }}
>
<Grid item xs={3}>
<LoginForm />
</Grid>
</Grid>
Dadurch wird dieses Anmeldeformular in der Mitte des Bildschirms angezeigt.
Trotzdem unterstützt der IE das Material-UI-Raster nicht und Sie werden einige falsch platzierte Inhalte im IE sehen.
Hoffe das wird dir helfen.
Die @ Nadun-Version hat bei mir nicht funktioniert, die Größe hat nicht gut funktioniert. Das Entfernen direction="column"
oder Ändern in row
hilft beim Erstellen vertikaler Anmeldeformulare mit reaktionsschneller Größe.
<Grid
container
spacing={0}
alignItems="center"
justify="center"
style={{ minHeight: "100vh" }}
>
<Grid item xs={6}></Grid>
</Grid>;
Hier ist eine weitere Option ohne Raster:
<div
style={{
position: 'absolute',
left: '50%',
top: '50%',
transform: 'translate(-50%, -50%)'
}}
>
<YourComponent/>
</div>
Sie können dies mit der Box-Komponente tun:
import Box from "@material-ui/core/Box";
...
<Box
display="flex"
justifyContent="center"
alignItems="center"
minHeight="100vh"
>
<YourComponent/>
</Box>
Alles, was Sie tun müssen, ist, Ihren Inhalt in ein Rastercontainer-Tag einzuschließen, den Abstand anzugeben und dann den tatsächlichen Inhalt in ein Rasterelement-Tag einzuschließen.
<Grid container spacing={24}>
<Grid item xs={8}>
<leftHeaderContent/>
</Grid>
<Grid item xs={3}>
<rightHeaderContent/>
</Grid>
</Grid>
Außerdem habe ich viel mit dem Materialraster zu kämpfen. Ich schlage vor, dass Sie die Flexbox auschecken, die automatisch in CSS integriert ist, und dass Sie keine zusätzlichen Pakete benötigen, um sie zu verwenden. Es ist sehr leicht zu lernen.