CSS align-content 속성이란?
CSS의 align-content 속성은 플렉스 컨테이너 안에서 여러 줄로 나뉜 플렉스 라인(flex lines)을 교차축(cross-axis) 방향으로 정렬하는 데 사용됩니다. 아이템 자체가 아니라 라인과 라인 사이, 그리고 컨테이너 위아래의 여백 배치를 조절한다는 점이 특징입니다.
이 속성이 동작하려면 컨테이너에 flex-wrap: wrap;이 설정되어 있어야 하며, 대표적인 값으로는 stretch(기본값), center, flex-start, flex-end, space-between, space-around, space-evenly 등이 있습니다.
예제 코드
다음 코드는 align-content: space-between;을 적용한 예제입니다. 각 플렉스 라인의 위아래와 라인 사이에 고르게 공간이 분배되는 것을 확인할 수 있습니다.
<!DOCTYPE html>
<html>
<head>
<style>
.mycontainer {
display: flex;
background-color: orange;
align-content: space-between;
height: 150px;
width: 600px;
flex-wrap: wrap;
}
.mycontainer > div {
background-color: white;
text-align: center;
line-height: 40px;
font-size: 25px;
width: 100px;
margin: 5px;
}
</style>
</head>
<body>
<h1>Quiz</h1>
<div class = "mycontainer">
<div>Q1</div>
<div>Q2</div>
<div>Q3</div>
<div>Q4</div>
<div>Q5</div>
<div>Q6</div>
<div>Q7</div>
<div>Q8</div>
</div>
</body>
</html>코드 설명
- .mycontainer:
display: flex;와flex-wrap: wrap;을 함께 지정하여 아이템이 여러 줄로 배치될 수 있도록 합니다. - align-content: space-between;: 첫 번째 라인은 컨테이너 상단에, 마지막 라인은 하단에 붙이고 나머지 라인 사이의 공간을 균등하게 분배합니다.
- height: 150px;: 컨테이너에 고정 높이를 부여해야 라인 정렬을 위한 남는 공간이 생기므로 반드시 필요합니다.
위 코드를 실행하면 Q1~Q8 아이템이 두 줄로 나뉘어 배치되고, 주황색 컨테이너 안에서 흰색 박스들이 위아래로 고르게 정렬된 결과를 볼 수 있습니다.