CSS에서 flex-wrap 속성에 wrap 값을 사용하면, 컨테이너의 너비를 초과하는 플렉스 아이템(flex items)이 자동으로 다음 줄로 넘어가 배치됩니다. 기본값인 nowrap은 모든 아이템을 한 줄에 강제로 배치하지만, wrap 값은 화면 크기나 콘텐츠 양에 따라 유연하게 여러 줄로 나누어 반응형 레이아웃을 만들 때 매우 유용합니다.
wrap 값의 동작 방식
flex-wrap: wrap;을 적용하면 각 플렉스 아이템은 지정된 너비를 유지하며, 남은 공간이 부족해지면 새로운 줄로 이동합니다. 이때 줄의 순서는 위에서 아래로 쌓이는 형태가 됩니다.
예제 코드
아래 코드를 실행하면 9개의 퀴즈 항목(Q1~Q9)이 컨테이너 너비에 맞춰 여러 줄로 나누어져 배치되는 것을 확인할 수 있습니다.
<!DOCTYPE html>
<html>
<head>
<style>
.mycontainer {
display: flex;
background-color: orange;
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>Q9</div>
</div>
</body>
</html>핵심 포인트
- display: flex와 함께 사용해야 하며, 단독으로는 동작하지 않습니다.
- 각 아이템의 width(100px)와 margin(5px)을 고려해 한 줄에 들어갈 수 있는 개수만큼 배치된 후 나머지는 다음 줄로 넘어갑니다.
- 반응형 웹 디자인에서 카드 목록, 갤러리, 태그 목록 등을 구현할 때 자주 활용됩니다.