Почему мой код не расположен вертикально в Grid?

Я разрабатываю, используя React и MaterialUI. Я столкнулся со странной проблемой, когда элементы не выравнивались по вертикали. Обычно я работаю над бэкендом, поэтому у меня почти нет знаний о фронтенд-разработке, особенно о Grids. В чем может быть причина, по которой следующий код не выравнивает элементы по вертикали?

<Grid
  container
  direction = "column"
  justifyContent = "center"
  alignItems = "center"
>
  <Box
    component = "form"
    sx = {{ "& > :not(style)": { m: 1, width: "25ch" } }}
    noValidate
    autoComplete = "off"
  >
    <TextField id = "standard-basic" label = "Email" variant = "standard" />
    <FormControl sx = {{ m: 1, width: "25ch" }} variant = "standard">
      <InputLabel htmlFor = "standard-adornment-password">
        Password
      </InputLabel>
      <Input
        id = "standard-adornment-password"
        type = {showPassword ? "text" : "password"}
        endAdornment = {
          <InputAdornment position = "end">
            <IconButton
              aria-label = "toggle password visibility"
              onClick = {handleClickShowPassword}
              onMouseDown = {handleMouseDownPassword}
            >
              {showPassword ? <VisibilityOff /> : <Visibility />}
            </IconButton>
          </InputAdornment>
        }
      />
    </FormControl>
  </Box>
</Grid>

Я хочу расположить панели ввода адресов электронной почты и паролей вертикально.

Вопросы, требующие помощи по коду, должны включать кратчайший код, необходимый для его воспроизведения, в самом вопросе, желательно в фрагменте стека с использованием значка <>. См. Как создать минимальный воспроизводимый пример.

Paulie_D 23.04.2024 12:20

Спасибо за комментарий к моему вопросу! Вы имеете в виду, что не можете понять, в чем проблема только с моим кодом?

okome omochi 23.04.2024 12:56

Нам нужен скомпилированный HTML/CSS, который показывает проблему. Кода React недостаточно.

Paulie_D 23.04.2024 13:21

Как предоставить скомпилированный HTML/CSS? Я пытался получить HTML/CSS в инструментах разработчика в локальной среде, но это слишком долго. Хотелось бы узнать конкретный метод.

okome omochi 23.04.2024 14:32
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
1
4
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Глядя на ваш код, вы видите, что именно компонент Box не позволяет вам складывать элементы вертикально.

Если вы готовы использовать гибкую модель вместо системы сетки, вы можете реализовать ее для вертикального стека, например, так:

<Box
    component = "form"
    sx = {{
      display: "flex",
      flexDirection: "column",
      justifyContent: "center",
      alignItems: "center",
      "& > :not(style)": { m: 1, width: "25ch" },
    }}
    noValidate
    autoComplete = "off"
  >
    <TextField id = "standard-basic" label = "Email" variant = "standard" />
    <FormControl sx = {{ m: 1, width: "25ch" }} variant = "standard">
      <InputLabel htmlFor = "standard-adornment-password">
        Password
      </InputLabel>
      <Input
        id = "standard-adornment-password"
        type = {"password"}
        endAdornment = {
          <InputAdornment position = "end">
            <IconButton
              aria-label = "toggle password visibility"
            ></IconButton>
          </InputAdornment>
        }
      />
    </FormControl>
  </Box>

Спасибо за ответ на мой вопрос! Ваш ответ решит мою проблему. Я хотел бы задать дополнительный вопрос: можно ли это когда-нибудь сделать с помощью Grid?

okome omochi 23.04.2024 15:12

Другие вопросы по теме