Ваша проблема в том, что ваш элемент .container
создает контекст форматирования сетки , в котором элементы 2 img
не участвуют, потому что они являются дочерними элементами элемента ul
с классом .flex
который участвует в контексте форматирования сетки, созданном .container
, например, если вы добавите элемент-брат после элемента ul
в вашей разметке, он будет следовать правилам сетки, которую вы обрисовали.
Если вы хотите, чтобы элементы img
были отформатированы с использованием шаблона сетки, который вы наметили на элементе .container
, измените HTML-разметку и сделайте элементы img
direct дочерние элементы .container
элемента.
С точки зрения центрирования, вы можете центрировать элементы внутри элемента сетки (дочерний элемент контейнера сетки), используя пару свойств и значений justify-content: center
, о которой вы можете прочитать здесь .
Ниже приведен пример того, что вы хотите:
.image {
height: 200px;
width: 200px;
}
.image:first-child {
background: firebrick;
}
.image:last-child {
background: royalblue;
}
/*
========================================
Ignore the above rules
========================================
*/
.container {
display: grid;
grid-template-columns: 1fr;
grid-template-rows: 1fr 1fr;
justify-items: center;
}
<div class="container">
<div class="image"></div>
<div class="image"></div>
</div>