У меня есть div, использующий метод display flex, который содержит другие div, также использующий display flex, чтобы получить правильное выравнивание, которое я хочу.Я обычно разрабатываю свои веб-страницы, используя Firefox, а затем тестирую их в других браузерах, чтобы посмотреть, правильно ли они там работают / отображаются.
Я хочу иметь суперконтейнер, который упорядочивает свои элементы в нормальном потоке.Эти предметы содержат два изображения.Эти изображения расположены рядом друг с другом, и только их ширина фиксирована.Высота может отличаться в зависимости от предмета.Под этими двумя изображениями я размещаю немного текста.Все элементы выровнены так, что первая строка текстов выровнена друг с другом.Изображения должны быть помещены в горизонтальную середину элемента.
Следующее изображение показывает, как я хочу, чтобы оно отображалось: Правильное отображение Firefox .В Chrome и Edge (и Safari на iOS) изображение выглядит следующим образом: Неправильное отображение .
У меня есть следующие HTML и CSS:
.CompleteContainer
{
align-items: baseline;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: flex-start;
width: 300px;
}
.ItemContainer
{
align-items: center;
background-color: aqua;
display: flex;
flex-direction: column;
flex-wrap: nowrap;
margin: 0 0 5px 10px;
width: 130px;
}
.ItemTopContainer
{
display: flex;
justify-content: space-between;
width: 100%;
}
.ItemTopLeftContainer
{
align-items: flex-end;
background-color: #ff8888;
display: flex;
justify-content: flex-end;
width: calc(50% - 2px);
}
.ItemTopLeft
{
background-color: #ff0000;
height: 50px;
width: 50px;
}
.ItemTopRightContainer
{
align-items: flex-end;
background-color: #88ff88;
display: flex;
justify-content: flex-start;
width: calc(50% - 2px);
}
.ItemTopRight
{
background-color: #00aa00;
height: 25px;
width: 50px;
}
.ItemBottomContainer
{
text-align: center;
}
<div class="CompleteContainer">
<div class="ItemContainer">
<div class="ItemTopContainer">
<div class="ItemTopLeftContainer">
<div class="ItemTopLeft">
</div>
</div>
<div class="ItemTopRightContainer">
<div class="ItemTopRight">
</div>
</div>
</div>
<div class="ItemBottomContainer">
Foo bar
</div>
</div>
<div class="ItemContainer">
<div class="ItemTopContainer">
<div class="ItemTopLeftContainer">
<div class="ItemTopLeft">
</div>
</div>
<div class="ItemTopRightContainer">
<div class="ItemTopRight">
</div>
</div>
</div>
<div class="ItemBottomContainer">
Foo bar, lorum ipsum
</div>
</div>
<div class="ItemContainer">
<div class="ItemTopContainer">
<div class="ItemTopLeftContainer">
<div class="ItemTopLeft">
</div>
</div>
<div class="ItemTopRightContainer">
<div class="ItemTopRight">
</div>
</div>
</div>
<div class="ItemBottomContainer">
Lorum ipsum
</div>
</div>
</div>
Что я делаю не так или чего мне не хватает, чтобы получить отображение в Chrome и Edge так же, как в Firefox?Для ясности: в Firefox приведенный выше фрагмент кода дает нужные мне результаты, в Chrome и Edge (и Safari на iOS) они ошибочны.
ОБНОВЛЕНИЕ: Мне пока не разрешенокомментируйте ответы напрямую, но я сделаю это так.Оба ответа указали мне правильное направление, хотя они не дали правильных результатов, которые я хотел.Я обновил код в этом вопросе, чтобы отразить изменения в CSS для создания нужного макета.