display란 '보여주다'라는 의미로 block속성과 inline속성의 특징을 바꿀 때 사용한다.
display: block
해당 요소를 block속성으로 바꾸거나, none으로 숨긴 요소를 다시 나타낼 때 사용한다.
display: none
해당 요소를 화면에서 영역까지 모두 숨긴다.

(box2에 display: none; 을 적용한 상태)
영역은 남겨둔 채 요소만 숨기는 속성으로
해당 요소가 차지하고있던 공간은 남겨둔 채,
요소의 모양만 숨기고 싶을 때 사용한다.
visibillity: hidden
요소가 차지하고 있던 공간은 그대로 둔 채 요소만 숨긴다.

(visible2에 visibillity : hidden; 을 적용한 상태)
display의 속성으로 "display: flex"로 사용된다.
부모박스(container)안에 자식박스(item)을 정렬하는 속성으로,
flex를 적용하는 순간부터 자식박스는 가로로 정렬된다.
이 때, 자식박스들의 가로넓이의 합이 부모박스 넓이보다 길어지면,
자식박스의 사이즈가 자동으로 줄어들며 부모박스를 채운다.
부모박스에 flex를 적용하면 자식박스들을 다양하게 정렬하는 하위정렬속성을 함께 사용할 수 있다.
하위정렬속성
1. justify-content
: 부모박스안의 자식박스들을 가로로 정렬

2. align-items
: 부모박스안의 자식박스들을 세로로 정렬
부모박스를 기준으로 top/middle/bottom 정렬
3. flex-direction
: 자식박스의 나열방향을 정하는 속성.
block속성처럼 세로로 나열하거나, flex의 기본값처럼 가로로 나열할 때 주로 사용한다.
속성값에 -reverse가 붙으면 start와 end의 자리가 바뀌게 된다.
4. flex-wrap
: 감싸기속성. flex를 적용했을때, 자식박스들 넓이의 총 합이 부모박스를 넘어가면 자식박스들의 넓이를 자동으로 줄여 부모박스 안에 들어가게 한다.
이 때 자식박스의 넓이와 높이를 그대로 유지하려면 flex-wrap을 사용한다.
flex-wrap: nowrap
: 기본값. 모든 자식박스를 한 줄에 걸쳐 부모박스에 맞춤
flex-wrap: wrap
: 자식박스들의 넓이높이를 유지하며 여러 줄에 걸쳐 정렬
flex-wrap: wrap-reverse
: 자식박스들의 넓이높이를 유지하며 여러 줄에 걸쳐 반대로 정렬
(flex-wrap: wrap; 적용상태. 컨텐츠 사이 여백은 기본적으로 동일)

(flex-wrap: wrap-reverse; 적용상태)
5. gap (=gutter)
: 컨텐츠 사이 여백으로, flex가 적용된 자식박스 사이의 간격을 만들 수 있다.
값을 1개만 쓰면 row와 column 모든방향으로 동일한 간격을 적용한다.
값을 2개로 나눠쓰면 앞자리가 column, 뒷자리가 row방향이다.
6. flex-flow
: 나열방향과 감싸기를 한 번에 선언하는 속성이다. 두 속성의 속성값을 공백으로 구분하여 쓴다.