Flex하면 뭐가 먼저 떠오르냐고?
이 Flex 말고,,, css의 flex
를 알아보자~!~!
먼저 처음 진행했던 프로젝트에서 나는 float
를 사용했다. 3년전쯤이니까.. flex
를 알았다면 더 쉽게 할 수 있었을텐데!! 라는 생각이 드는데, 그때 작성했던 코드를 보면
.orgins_line p{ float: left;}
.orgins_line::after {
content: '';
display: block;
clear: both;
}
float
로 왼쪽으로 정렬을 하고 after
로 속성을 변경해주었다.
flex
면 한 줄로 끝나는 수평정렬을 float
로 하면 정말 불편하다는 걸 알수있다
그렇다면 flex
로 수평정렬을 해보자!
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
</div>
.container{
display:flex;
}
이렇게 수평이 될 요소들의 부모에 display:flex;
를 적용시켜주면된다!
flex
만 작성했는데 수평정렬이 왜 되냐면 기본값이 row
이기 때문이다!
그렇다면 flex
의 속성을 알아보자!
container
에 적용하는 속성items
에 적용하는 속성Flex Container를 설정한다.
display:flex
로 적용하는게 flex
의 시작이다!
items
의 주 축을 설정한다. row
가 기본값!
row
의 반대로column
의 반대로Flex Items의 줄바꿈을 설정한다.
한줄에 표시하는 nowrap
이 기본값이다.
Items
를 한 줄로 표시Items
를 여러 줄로 묶는다Items
를 wrap
의 역 방향으로 여러 줄로 묶는다.container {
display: flex;
flex-wrap: wrap;
width: 300px;
height: auto;
border: 5px solid red;
}
.container .item {
width: 120px;
height: 100px;
border: 3px solid blue;
}
주 축의 정렬 방법을 설정한다.
왼쪽부터 시작하는 flex:start
가 기본값이다.
flex-start : Items
를 시작점으로 정렬
flex-end : Items
를 끝점으로 정렬
center : Items
를 가운데 정렬
space-between : 시작 Item
은 시작점에,
마지막 Item
은 끝점에 정렬되고 나머지 Items
는 사이에 고르게 정렬됨
space-around : Items
를 균등한 여백을 포함하여 정렬
교차축의 정렬 방법이다.
stretch
가 기본값이다.
stretch : Container
의 교차 축을 채우기 위해 Items
를 늘림 - 교차축에 해당하는 너비가 auto
일 경우에 교차축을 채우기 위해 자동으로 늘어난다.
flex-start : Items
를 시작점으로 정렬
flex-end : Items
를 끝점으로 정렬
center : Items
를 가운데 정렬
space-between : 시작 Item
은 시작점에,
마지막 Item
은 끝점에 정렬되고 나머지 Items는 사이에 고르게 정렬됨
space-around : Items
를 균등한 여백을 포함하여 정렬
교차 축에서 items
의 정렬 방법을 설정한다.
stretch
가 기본값이다.
items
를 늘림 flex-start : items
를 각 줄의 시작점으로 정렬
flex-end : items
를 각 줄의 끝점으로 정렬
center : items
를 가운데 정렬
items
를 문자 기준선에 정렬items
를 위한 속성들 중 가장 많이 사용하는 속성을 알아보자!
flex item
순서를 설정flex item
의 증가 너비 비율을 설정 (기본값 : 0)flex item
의 감소 너비 비율을 설정 (기본값 : 1)grow
와 shrink
는 같이 쓰는걸 추천한다. grow
로 비율을 잡고 shrink
로 찌그러지지 않게 비율 고정시킬 부분을 0으로 변경!
📍[출처] https://heropy.blog/2018/11/24/css-flexible-box/
박영웅강사님의 블로그를 참고했습니다~!📚