The Web Developer 부트캠프 2022

Flex box

거위발바닥 2022. 9. 13. 19:14

Flex box는 하드코딩되어 창의 크기를 줄이거나 늘릴때 정렬이 어긋나버리는 단점이 없는 flexible한 box이다.

display: flex;
    flex-direction: row;
 
flex-direction을 row ( 기본값 ) 로 가면 flex box의 주축이 가로로 배열된다. 위 값을
 
flex-direction : row-reverse ;
 
로 바꾸면 배열이 반대로 된다.
 
flex-direction : column ; 
 
로 바꾸면 배열이 가로가 아니라 세로로 되는데, 부모값인 container의 세로 배열이 된다. 
 
justify-content: center;
 
코드는 Flex 박스의 시작인 주축의 공간 배분을 정한다. 기본값은 flex-start 이며 center, flex-end
space-between로 flex box의 맨 왼쪽 오른쪽 여백을 없애고 box 사이 여백을 주며
space-around는 flex box의 모든 여백을 같게 준다.
flex-direction이 row 이며 justify content가 flex-start면 box 방향이 가로이기에  왼>오로 배분이되며
flex-direction이 column 이며 justify content가 end-flex면 box 방향이 세로이기에 하 > 상으로 배분이 된다.
 
flex-wrap: wrap;
 
코드는 주축 ( main axis )의 교차축 ( corss axis ) 방향으로 flex box을 추가해 넣어준다. ( 줄바꿈 )
주축의 배열은 flex-direction 으로 정해지므로 위 코드처럼 row인경우 주축이 좌 > 우 이므로 교차축은 상 > 하 이므로
flex box가 아래로 더 생기며 반대로 column일 경우 교차축은 좌 > 우 이므로 좌 > 우로 flex box가 생긴다.
좌 > 우 or 우 > 좌는 justify content에 따라 결정된다.
 
align-items: flex-end
 
코드는 주축이 아닌 교차축의  공간배분을 정한다. baseline은 공간배분을 box 안의 font size에 맞춰 분배하는 코드다.
 
위 코드들을 이용하여 
 
#container {
    background-color: #003049;
    width: 90%;
    height: 500px;
    margin: 0 auto;
    border: 5px solid #003049;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    flex-wrap: wrap;
    align-items: flex-end;
}
 
같은 코드를 짠다면 1~7 순서의 box가 있다고 가정할시
 
--------------------------
                1   4
                2   5       7
                3   6 
-------------------------- 

위와 같은 코드가 나온다. 

flex-direction 이 column이기 때문에 주축이 세로방향이 되고, 

justify-content 가 flex-start기 때문에 공간배열이 상 > 하 가 되어 위에서 아래로 box의 숫자가 커진다.

flex-wrap은 wrap으로 줄바꿈을 했기때문에 주축인 세로방향의 반대인 교차축의 가로방향으로 줄바꿈을 하고

이 교차축의 align-items가 flex-end이므로 교차축은 우 > 좌 가 되어 box가 오른쪽에 붙었다.

align-content: center;
 
당코드는 wrap된 box들의 사이의 공간배열을 정한다. wrap된 상태가 아니라면 작동하지 않는다.
위 같은 코드를 위 코드에 사용하면
 
--------------------------
            14
            257    
            36  
-------------------------- 
 
이 된다.

'The Web Developer 부트캠프 2022' 카테고리의 다른 글

JS 기초 연산 수지정, Booleans  (0) 2022.09.15
Flex box (2)  (0) 2022.09.13
Css 사진 블로그 코드  (0) 2022.09.12
Background, Google Font link  (0) 2022.09.12
transition과 transform 을 이용한 버튼  (0) 2022.09.12