Нужна помощь в решении проблемы с интервалом в содержимом диалога MaterialUI

Я пытаюсь создать сводную страницу и использовать диалог MUI для достижения этой цели.

Вот такой у меня диалог: Нужна помощь в решении проблемы с интервалом в содержимом диалога MaterialUI

Но я пытаюсь сделать так, чтобы две стороны выровнялись вверху вместо того, чтобы было место над «Заголовком 2». Кажется, что типографии добавляются снизу вверх, начиная с последней в каждом div. Использование JSX Im:

<Dialog className = {classes.dialog} open = {open} fullWidth maxWidth = "md">
  <DialogTitle disableTypography className = {classes.dialogTitle}>
    <Typography align = "center" variant = "h5">
      Summary
    </Typography>
  </DialogTitle>
  <DialogContent dividers>
    <div
      className = {
        booleanVar === true ? classes.test1 : classes.test3
      }
    >
      <Typography
        align = "center"
        variant = "h6"
      >{`Title 1`}</Typography>
      <Typography align = "left" variant = "h6">{`Three`}</Typography>
      <Typography align = "left" variant = "h6">{`Line`}</Typography>
      <Typography align = "left" variant = "h6">{`Email:`}</Typography>
    </div>
    {booleanVar === true ? (
      <div className = {classes.test2}>
        <Typography
          align = "center"
          variant = "h6"
        >{`Title 2`}</Typography>
        <Typography variant = "h6">{`Two Line`}</Typography>
        <Typography variant = "h6">{`Example`}</Typography>
      </div>
    ) : null}
  </DialogContent>
</Dialog>

Кроме того, CSS:

const useStyles = makeStyles((theme) => ({
  dialog: {
    borderRadius: "10px",
    height: "auto",
    justifyContent: "center",
    margin: "auto",
    width: "auto"
  },
  dialogTitle: {
    padding: "6px 24px 16px 24px",
    textAlign: "center"
  },
  test1: {
    width: "49%",
    margin: "auto",
    textAlign: "left",
    display: "inline-block",
    paddingRight: "5px"
  },
  test2: {
    width: "49%",
    margin: "auto",
    textAlign: "center",
    display: "inline-block",
    borderLeft: "0.1em solid #e0e0e0",
    paddingLeft: "5px"
  },
  test3: {
    width: "100%",
    margin: "auto",
    textAlign: "center",
    display: "inline-block"
  }
}));

Если кто-нибудь знает решение с помощью CSS, это то, что я предпочитаю, но я открыт для любого рабочего решения!

Если вы разместите эту воспроизводимую проблему на codeandbox, ее будет проще решить.

Prathamesh Koshti 10.12.2020 04:33

Это не позволяет мне добавить material-ui/core в качестве зависимости

BrettMan 10.12.2020 05:19

Добавьте свой код сюда, я создал его здесь: codeandbox.io/s/bold-meadow-iv9z8 Убедитесь, что вы сохранили его после добавления кода, и снова поделитесь ссылкой

Prathamesh Koshti 10.12.2020 05:21

Извините за задержку с ответом, у меня есть код здесь: codeandbox.io/s/nervous-chatterjee-8rgqh?file=/src/App.js Кроме того, изменение размера окна может привести к тому, что второй div окажется под первым а не рядом с ним, поэтому, если вы знаете решение этой проблемы, я был бы признателен @PrathameshKoshti

BrettMan 10.12.2020 20:27
Приемы 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 сценарий полностью изменился.
0
4
1 553
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Мне не удалось найти источник проблемы, но я добился желаемого макета.

Я немного изменил файл myDialog.js, удалил margin: "auto", так как он не служил никакой цели для вашего кода из всех трех тестовых классов, а именно test1, test2 и test3.

После этого импортировали компонент Box из Material UI следующим образом:

import {
  Box, // here
  Button,
  Typography,
  Dialog,
  DialogActions,
  DialogTitle,
  DialogContent,
  IconButton
} from "@material-ui/core";

Затем обернули содержимое диалога компонентом <Box> и добавили свойство display = "flex", чтобы применить макет flexbox к обернутому div следующим образом:

<Box display = "flex">
   <div
     className = {
       booleanVar !== undefined ? classes.test1 : classes.test3
     }
   >
     <Typography align = "center" variant = "h6">{`Title 1`}</Typography>
     <Typography align = "left" variant = "h6">{`Three`}</Typography>
     <Typography align = "left" variant = "h6">{`Line`}</Typography>
     <Typography align = "left" variant = "h6">{`Example`}</Typography>
   </div>
   {booleanVar !== undefined ? (
   <div className = {classes.test2}>
     <Typography align = "center" variant = "h6">{`Title 2`}</Typography>
     <Typography align = "left" variant = "h6">{`Two Line`}</Typography>
     <Typography align = "left" variant = "h6">{`Example`}</Typography>
   </div>
   ) : null}
</Box>

Вы можете проверить коды и ящик здесь: https://codesandbox.io/s/still-https-71skf

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