В чем разница между margin:auto и justify-content / align-items center?
в центре по горизонтали и по вертикали одновременно, есть два простых варианта:
первый
.outer {
display:flex;
}
.inner {
margin:auto;
}
второй
.outer {
display: flex;
justify-content: center;
align-items: center;
}
в чем разница? В каких ситуациях мы будем использовать одно над другим?
1 ответов
в первом примере...
.outer {
display: flex;
}
.inner {
margin: auto;
}
... the auto
маржа применяется только к элементу flex и центрам, которые один элемент flex в контейнере.
во втором примере...
.outer {
display: flex;
justify-content: center;
align-items: center;
}
вы центрируете элементы с уровня контейнера. Этот код будет все предметы.
кроме того, имейте в виду, если вы используете оба метода одновременно, margin: auto
должны верх.
до выравнивания с помощью
justify-content
иalign-self
любой положительное свободное пространство распределяется на автоматические поля в этом измеренииесли свободное пространство распределено на автоматические поля, свойства выравнивания не будет иметь никакого эффекта в этом измерении, потому что прибыль будет украл все свободное пространство, оставшееся после сгибания.
но самое важное отличие, для практических целей, может быть поведение, когда элемент flex превышает размер контейнера. В этом случае при использовании кода уровня контейнера теряется доступ к частям элемента. Элемент исчезает с экрана и недоступен с помощью прокрутки.
чтобы преодолеть эту проблему, используйте margin: auto
для центрирования для правильной работы.
вот более полное объяснение:
- не могу наверх элемента flex, который переполнен контейнером
- центр гибкий элемент по вертикали и горизонтали (см. вставку #56)
IE ошибки: