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`의 차이를 더 쉽게 이해할 수 있을 것입니다.
댓글
댓글 쓰기