flexbox란 박스 내 요소 간의 공간 배분과 정렬 기능을 제공하기 위한 1차원 레이아웃 모델이다.
1차원 모델이라 부르는 이유는, 레이아웃을 다룰 때 한번에 하나의 차원 (행이나 열)만을 다룬다는 특성 때문이다.
기존의 float 과 position은 엄밀히는 레이아웃을 위한 프로퍼티가 아니어서, 표현이 불가능한 레이아웃이 있기도 하고, 구현이 복잡하였다.
웹페이지 구성요소를 배치하기 위해, 기존에는 float/position 기반 레이아웃 설정을 하였으나, 최근에는 flexbox 를 많이 사용하고 있다.
뷰포트나 요소 사이즈가 불명확하거나, 동적으로 변할 때에도 요소를 적절히 배치할 수 있는 기능을 제공한다.
<div style="display:flex;>
<div class="item"> 하나</div>
<div class="item"> 둘</div>
<div class="item"> 셋</div>
</div>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.container{
display: flex;
}
.item{
width: 80px;
height:80px;
background-color: blue;
border: 1px solid red;
}
</style>
</head>
<body>
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
</div>
</body>
</html>

flex박스 속성에는 부모 요소에 쓰는 속성과 자식 요소에 쓰이는 속성이 따로 존재 한다.
