css `align-items` vs `align-content`

    

 `align-items`와 `align-content`의 차이를 좀 더 쉽게 설명해 드리겠습니다.


### Flexbox 레이아웃의 기본 이해

- **주축(main axis)**: Flex 컨테이너의 주요 방향(기본적으로 가로 방향).

- **크로스 축(cross axis)**: 주축과 수직인 방향(기본적으로 세로 방향).


### 1. `align-items`

- **기능**: **한 줄**의 항목들을 크로스 축을 따라 정렬합니다.

- **예시**: 자식 요소들이 한 줄에 있을 때, 그 줄 내에서 자식 요소들의 정렬을 설정합니다.

- **사용 상황**: 모든 자식 요소들이 한 줄에 있을 때, 예를 들어, 높이를 조정하거나 중간, 위, 아래로 정렬하고 싶을 때 사용합니다.


#### 비유

- **교실에서 책상 정렬**: 학생들이 한 줄로 앉아 있을 때, 그 줄 내에서 학생들을 중간, 위, 아래로 정렬하는 것과 같습니다.


#### 예시

```css

.container {

  display: flex;

  height: 200px; /* 컨테이너 높이 설정 */

  align-items: center; /* 자식 요소들을 컨테이너의 중간에 정렬 */

}

```


### 2. `align-content`

- **기능**: **여러 줄**의 항목들을 크로스 축을 따라 공간을 분배합니다.

- **예시**: 자식 요소들이 여러 줄로 랩핑될 때, 각 줄 사이의 공간을 설정합니다.

- **사용 상황**: 여러 줄의 항목이 있는 경우, 각 줄 사이의 공간을 조정하고 싶을 때 사용합니다.


#### 비유

- **교실에서 줄 간격 정렬**: 여러 줄의 책상이 있는 교실에서 줄 간의 간격을 설정하는 것과 같습니다.


#### 예시

```css

.container {

  display: flex;

  flex-wrap: wrap; /* 여러 줄로 랩핑 */

  height: 400px; /* 컨테이너 높이 설정 */

  align-content: space-between; /* 각 줄 사이에 공간을 분배 */

}

```


### 시각적 예시

#### `align-items` 예시

자식 요소들이 한 줄에 있고, 그 줄 내에서 중앙에 정렬된 경우:

```

|------------------------|

|  o     o     o     o   |  <-- align-items: center

|------------------------|

```


#### `align-content` 예시

자식 요소들이 여러 줄로 나뉘고, 각 줄 사이에 공간이 분배된 경우:

```

|------------------------|

|  o  o  o  o            |

|                        |  <-- align-content: space-between

|  o  o  o  o            |

|                        |

|  o  o  o  o            |

|------------------------|

```


### 요약

- **`align-items`**: 한 줄 내에서 자식 요소들을 크로스 축을 따라 정렬합니다. (학생들이 한 줄에 앉아 있는 경우, 그 줄 내에서의 정렬)

- **`align-content`**: 여러 줄의 자식 요소들 사이에 공간을 분배합니다. (여러 줄의 책상이 있는 경우, 줄 간의 간격을 조정)


이렇게 하면 `align-items`와 `align-content`의 차이를 더 쉽게 이해할 수 있을 것입니다.

댓글

이 블로그의 인기 게시물

js 스트링에서 요소 갯수 세기

STUDY

javascript cheatsheet