Родительский контейнер со столбцом гибкого направления и дочерний контейнер со строкой гибкого направления - PullRequest
0 голосов
/ 14 марта 2020

У меня есть элемент заголовка, который я хочу отобразить в столбце flex, чтобы я мог центрировать div .container по вертикали. Это работает нормально. Затем мне нужно, чтобы элементы в .container сгибались в ряд с равномерным интервалом в 1200 пикселей. Разве вы не можете делать гибкие контейнеры внутри гибких контейнеров, идущих в разных направлениях? Пожалуйста, смотрите мой css ниже:

header {
    height: 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 15px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
}

Ответы [ 2 ]

1 голос
/ 14 марта 2020

Да, Flexbox идеально подходит для вложенных контейнеров. Чтобы проиллюстрировать мою точку зрения, вот пример заголовка basi c с использованием вложенного Flexbox.

header {
    width: 100vw;
    top: 0;
    left: 0;
    height: 50px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
}

header .image--container {
    position: relative;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    padding: 0.5rem;
    flex: 1 1 20%;
}

header .image--container img {
    width: 100%;
    display: block;
    height: auto;
}

header .menu--container  {
    flex-direction: row;
    justify-content: flex-end;
    align-items: center;
    flex: 1 1 70%;
}

header .menu--container .parent--items {
    display: flex;
    flex-direction: column;
    width: calc(100% / 4);
}

header .avatar--container {
    flex-direction: row;
    justify-content: center;
    align-items: center;
    padding: 0.5rem;
    flex: 1 1 10%;
}

0 голосов
/ 14 марта 2020

Да, это определенно возможно, я думаю, что свойство flex будет влиять только на прямые дочерние элементы родительского элемента.

<div style="display: flex">
  Anything in here effected by flex
  <div>I'm effected by flex but my children aren't</div>
</div>

Это не означает, что вы не можете использовать flex для этого дочернего элемента и устанавливать разные свойства (например, столбец flex-direction и т. д. c).

Трудно разобраться, не видя больше вашего кода, но я бы попробовал удалить max-width, поскольку это часто может сказываться странным образом.

Другая вещь, которую я бы попробовал, - это использовать больше контейнеров. Вы часто можете решить проблему в CSS, просто обернув вокруг нее еще один div!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...