Wie richte ich eine Komponente mit der Material-Benutzeroberfläche in der Mitte/rechts aus?

Lesezeit: 3 Minuten

Benutzeravatar von Vedant Agarwala
Vedant Agarwala

Ich möchte meine Schaltfläche rechts vom übergeordneten Element ausrichten.

Ich habe mich gefragt, ob es eine gibt richtig Möglichkeit, dies in der Material-Benutzeroberfläche zu tun. Ich könnte benutzen:

<Grid container justify="flex-end">

Aber dann müsste ich ein anderes verwenden <Grid item />. Scheint zu viel Arbeit zu sein.

Oder vielleicht ist es für mich einfach besser, einfaches altes CSS zu verwenden und damit herumzuspielen float: rightund Umgang mit der scheinbaren Nullhöhe des Elements.

Benutzeravatar von ThomasP1988
ThomasP1988

VOR Material UI 5:

Versuche dies

<Grid container justify="flex-end">
  <Button>Example</Button>
</Grid>

UPDATE Material UI 5: (Danke an Dipak)

Die Requisite justify von ForwardRef(Grid) ist veraltet. Verwenden justifyContent Stattdessen wurde die Requisite umbenannt.

<Grid container justifyContent="flex-end">
  <Button>Example</Button>
</Grid>

Update: Die besten Lösungen sind die Antworten von NearHuscarl oder Eduardo Oviedo Blanco. Sie verwenden lieber Stack oder Box als Grid.

  • Was passiert, wenn sich im Container Grid zwei Grid-Elemente befinden und ich nur das zweite richtig ausrichten möchte?

    – Imran Ahmad

    21. April 2021 um 19:17 Uhr

  • Dann verwandeln Sie Ihr Element in einen Container (ein Raster kann beides sein), sodass Ihr Element etwa so aussieht:

    – ThomasP1988

    22. April 2021 um 7:20 Uhr

  • Hinzufügen <Grid item xs={12} sm={6} container justifyContent="flex-end"> hat bei mir funktioniert. Musste benutzen justifyContent

    – Prakhar

    3. Februar 2022 um 22:47 Uhr

Wenn Sie Elemente innerhalb der ausrichten möchten <Grid item> Sie können eine Verpackung verwenden Box Komponente wie folgt:

<Grid container>
  <Grid item sm={6}>
    <Box display="flex" justifyContent="flex-end">
      <Button>Button Aligned To The Right</Button>
    </Box>
  </Grid>
</Grid>

Siehe die Dokumente für weitere Positionierungsmöglichkeiten.

Benutzer-Avatar von NearHuscarl
NearHuscarl

In Material-Benutzeroberfläche v5können Sie verwenden Stack um eine Reihe von Komponenten in einer Zeile oder Spalte anzuzeigen. Stack ist eine Flexbox, sodass Sie nur die festlegen müssen justifyContent prop, um das Element darin auszurichten:

<Stack direction="row" justifyContent="end">
  <Button variant="contained">Item 1</Button>
</Stack>

Codesandbox-Demo

Wenn Sie die Grid-Komponente nicht verwenden möchten, müssen Sie auf CSS zurückgreifen.

Wenn Sie jedoch Material-UI verwenden, sollten Sie JSS (CSS-IN-JS) und kein einfaches CSS verwenden.

In CSS können Sie beispielsweise jede dieser Lösungen verwenden. „text-align“ ist die einfachste Variante.

  • text-align: right
  • float: right
  • Flexbox
    • Elternteil mit: display: flex
    • Kind mit: align-content: flex-end

Verwenden Sie die Box-Komponente mit Flex.

<Box display="flex" flexDirection="column" >
  <... other stuff/>
</Box>

Sie können mehr erfahren Hier

Benutzeravatar von Sailist
Segelist

            <Toolbar sx={{ display: "flex", justifyContent: "space-between" }}>
                <Typography sx={{ fontWeight: 600 }}>
                    Recent Repositories
                </Typography>
                <Box>
                    {/* <Typography></Typography> */}
                    <Button error>+ New</Button>
                </Box>
            </Toolbar>

Für die neueste Material-UI-Version 5 Verwenden Sie justifyContent=”flex-end” oder alignContent, was CSS text-align und flex-end=right entspricht

    <Grid container alignContent="flex-end">
         <Button>Example</Button>
    </Grid>

or
    <Grid item justifyContent="flex-end">
         <Button>Example</Button>
    </Grid>

Für alte Material-UI-Version 4

    <Grid item justify="flex-end">
         <Button>Example</Button>
    </Grid>

  • Mit v4.11.4 nur <Grid container justify="flex-end"> funktioniert. Deine Beispiele funktionieren bei mir nicht.

    – aemaem

    23. Juli 2021 um 16:10 Uhr

  • Danke, es funktioniert bei mir und spart mir Zeit.

    – SMS247

    3. August 2021 um 9:27 Uhr

  • Statt „Neueste“ [at the time of writing] und „alt“ können Sie Versionen angeben?

    – nafg

    26. Okt. 2021 um 0:15

1453960cookie-checkWie richte ich eine Komponente mit der Material-Benutzeroberfläche in der Mitte/rechts aus?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy