Разница между Justify-Content и Align-Items в CSS

В CSS функция “justify-content” выравнивает элементы по главной оси (обычно горизонтальной), контролируя распределение пространства внутри контейнера. В отличие от этого, функция “align-items” выравнивает элементы по поперечной оси (обычно вертикальной), управляя размещением элементов относительно друг друга в контейнере. И то, и другое является ключевым для размещения элементов в макетах Flexbox и Grid.

CSS Justify-Content

CSS-свойство justify-content выравнивает элементы гибкого контейнера, если они не занимают все доступное пространство по горизонтали или главной оси.

Синтаксис:

justify-content: flex-start | flex-end | center | space-between | space-around | space-evenly | initial | inherit;

Примечание: Значением по умолчанию для свойства justify-content является flex-start.

Пример: Объяснение Justify-Content на примере

<!DOCTYPE html>
<html>

<head><style>
        .container {
            width: 400px;
            height: 100px;
            border: 1px solid #c3c3c3;
            display: flex;
        }

        .container>div {
            width: 70px;
            height: 70px;
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-weight: bold;
        }

        .center {
            justify-content: center;
        }

        .start {
            justify-content: flex-start;
        }

        .end {
            justify-content: flex-end;
        }

        .space-between {
            justify-content: space-between;
        }

        .space-around {
            justify-content: space-around;
        }
    </style>
</head>

<body><h2> Different Alignments with the CSS justify-content Property </h2><p> The following examples demonstrate 
      different values for the "justify-content" property: </p><div class="container center"><div style="background-color:coral;">
            1
        </div><div style="background-color:lightblue;">
            2
        </div><div style="background-color:pink;">
            3
        </div></div><p><b> justify-content: center </b> aligns items at 
          the center of the container. </p><div class="container start"><div style="background-color:coral;">
            1
        </div><div style="background-color:lightblue;">
            2
        </div><div style="background-color:pink;">
            3
        </div></div><p><b> justify-content: flex-start </b> aligns items
           at the start of the container. </p><div class="container end"><div style="background-color:coral;">
            1
        </div><div style="background-color:lightblue;">
            2
        </div><div style="background-color:pink;">
            3
        </div></div><p><b> justify-content: flex-end </b> aligns
           items at the end of the container. </p><div class="container space-between"><div style="background-color:coral;">
            1
        </div><div style="background-color:lightblue;">
            2
        </div><div style="background-color:pink;">
            3
        </div></div><p><b> justify-content: space-between </b> distributes
           items evenly with space between them. </p><div class="container space-around"><div style="background-color:coral;">
            1
        </div><div style="background-color:lightblue;">
            2
        </div><div style="background-color:pink;">
            3
        </div></div><p><b> justify-content: space-around </b> distributes 
           items evenly with space around them. </p>
</body>

</html>

Вывод:

CSS Align-Items

CSS-свойство align-items определяет выравнивание элементов внутри flexbox или grid-контейнера.

Синтаксис:

align-items: normal | stretch | positional alignment | flex-start | flex-end | baseline | initial | inherit;

Значения свойств:

В приведенной ниже таблице кратко описаны значения, которые могут быть установлены для CSS-свойства align-items.

Примечание: Значение по умолчанию для свойства align-items - нормальное.

Пример: Объяснение align-items на примере

HTML <!DOCTYPE html>
<html>

<head><style>
        .container {
            width: 400px;
            height: 100px;
            border: 1px solid #c3c3c3;
            display: flex;
        }

        .container>div {
            width: 70px;
            height: 70px;
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-weight: bold;
        }

        .stretch {
            align-items: stretch;
        }

        .center {
            align-items: center;
        }

        .start {
            align-items: flex-start;
        }

        .end {
            align-items: flex-end;
        }

        .baseline {
            align-items: baseline;
        }
    </style>
</head>

<body><h2> Different Alignments with the CSS align-items Property </h2><p> The following examples demonstrate 
        different values for the "align-items" property: </p><div class="container stretch"><div style="background-color:coral;">
            1
        </div><div style="background-color:lightblue;">
            2
        </div><div style="background-color:pink;">
            3
        </div></div><p><b> align-items: stretch </b> makes items 
           stretch to fill the container
           along the cross axis. </p><div class="container center"><div style="background-color:coral;">
            1
        </div><div style="background-color:lightblue;">
            2
        </div><div style="background-color:pink;">
            3
        </div></div><p><b> align-items: center </b> aligns items at
           the center of the container along the cross axis. </p><div class="container start"><div style="background-color:coral;">
            1
        </div><div style="background-color:lightblue;">
            2
        </div><div style="background-color:pink;">
            3
        </div></div><p><b> align-items: flex-start </b> aligns items at the 
          start of the container along the cross axis. </p><div class="container end"><div style="background-color:coral;">
            1
        </div><div style="background-color:lightblue;">
            2
        </div><div style="background-color:pink;">
            3
        </div></div><p><b> align-items: flex-end </b> aligns items at the 
          end of the container along the cross axis. </p><div class="container baseline"><div style="background-color:coral;">
            1
        </div><div style="background-color:lightblue;">
            2
        </div><div style="background-color:pink;">
            3
        </div></div><p><b> align-items: baseline </b> aligns
           items along their baseline. </p>
</body>

</html>

Вывод:

Ключевые отличия между Justify-Content и Align-Items

Вывод

Свойства CSS, такие как justify-content и align-items, могут быть использованы для выравнивания HTML-элементов в нужном положении или, скорее, для выравнивания в окне браузера. Но знание различий позволяет принимать более эффективные решения для более эффективного использования свойств CSS.