ABOUT ME

-

  • 18. Flexbox Layout
    Front-end/CSS3 2020. 6. 6. 16:03
    .flex-container {
        margin: 10px;
        padding: 15px;
        border-radius: 5px;
        background: #60B99A;
    }
    .flex-item {
        margin: 10px;
        padding: 20px;
        color: #fff;
        text-align: center;
        border-radius: 5px;
        background: #4584b1;
    }
    /*<div class="flex-container">*/
        /*<div class="flex-item">1</div>*/
        /*<div class="flex-item">2</div>*/
        /*<div class="flex-item">3</div>*/
        /*<div class="flex-item">4</div>*/
        /*<div class="flex-item">5</div>*/
    /*</div>*/
    /*div 요소는 block 요소이기에 수직정렬. 수평 정렬하려면 flex-item(자식요소)를 inline-block 이나 float 으로*/
    .flex-item {
        display: inline-block;
        float: left;
    }
    /*위 항목들을 부모 요소 내에서 균등 수평 정렬 하려면*/
    .flex-container {
        /*flex, inline-flex 는 부모 요소에 반드시 지정해야하는 유일한 속성, 자식 요소는 자동적으로 flex item.*/
        display: flex;
        justify-content: space-around;
    }
    
    
    
    .flex-container {
        /*좌에서 우로 수평배치. 기본값*/
        flex-direction: row;
    
        /*우에서 좌로 수평배치*/
        /*row-reverse;*/
    
        /*위에서 아래로 수직 배치*/
        /*column;*/
    
        /*아래에서 위로 수직 배치*/
        /*column-reverse;*/
    }
    
    
    
    .flex-container {
        /*flex 컨테이너의 width 보다 flex item 들의 width 의 합계가 더 큰 경우, 한줄 or 여러줄로 표현할 것인지를 지정.*/
    
        /*flex item 을 개행하지 않고 1행에 배치. 기본값*/
        /*각 flex item 의 폭은 flex container 에 들어갈 수 있는 크기로 축소됨.*/
        /*flex item 들의 width 의 합계가 flex 컨테이너의 width 보다 큰 경우 flex 컨테이너를 넘치게 된다.
        이때 overflow: auto;를 지정하면 가로 스크롤이 생기며 컨테이너를 넘치지 않는다.*/
        flex-wrap: nowrap;
    
        /*flex item 들의 width 의 합계가 flex 컨테이너의 width 보다 큰 경우, flex item 을 복수행에 배치한다.
        기본적으로 좌에서 우로, 위에서 아래로 배치된다.*/
        /*flex-wrap: wrap;*/
    
        /*wrap 과 동일하나 아래에서 위로 배치된다.*/
        /*flex-wrap: wrap-reverse;*/
    }
    
    
    
    .flex-container {
        /*flex-direction 과 flex-wrap 속성을 설정하기 위한 shorthand. 기본값은 row nowrap*/
        flex-flow: column wrap;
    }
    
    
    
    .flex-container {
        /*flex container 의 main axis 를 기준으로 flex item 을 수평 정렬*/
    
        /*main start(좌측)를 기준으로 정렬한다. justify-content 속성의 기본값이다.*/
        justify-content: flex-start;
    
        /*main end(우측)를 기준으로 정렬한다.*/
        /*justify-content: flex-end;*/
    
        /*flex container 의 중앙에 정렬한다.*/
        /*justify-content: center;*/
    
        /*첫번째와 마지막 flex item 은 좌우 측면에 정렬되고 나머지와 균등한 간격으로 정렬된다.*/
        /*justify-content: space-between;*/
    
        /*모든 flex item 은 균등한 간격으로 정렬된다*/
        /*justify-content: space-around;*/
    }
    
    
    
    .flex-container {
        /*flex item 을 flex container 의 수직 방향(cross axis)으로 정렬. 모든 flex item 에 적용.*/
    
        /*모든 flex item 은 flex container 의 높이(cross start 에서 cross end 까지의 높이)에 꽉찬 높이를 갖는다. 기본값.*/
        align-items: stretch;
    
        /*모든 flex item 은 flex container 의 cross start 기준으로 정렬된다.*/
        /*크기는 그대로 왼쪽 위에서부터 오른쪽으로 정렬*/
        /*align-items: flex-start;*/
    
        /*모든 flex item 은 flex container 의 cross end 기준으로 정렬된다.*/
        /*크기는 그대로 왼쪽 아래에서부터 오른쪽으로 정렬*/
        /*align-items: flex-end;*/
    
        /*모든 flex item 은 flex container 의 cross axis 의 중앙에 정렬된다.*/
        /*크기는 그대로 왼쪽 중앙에서부터 오른쪽으로 정렬*/
        /*align-items: center;*/
    
        /*모든 flex item 은 flex container 의 baseline 을 기준으로 정렬된다.*/
        /*item 의 높이가 달라도 baseline 에 글자를 맞춰서 정렬*/
        /*align-items: baseline;*/
    }
    
    
    
    .flex-container {
        /*flex container 의 cross axis 를 기준으로 flex item 을 수직 정렬한다.*/
        /*justify-content 속성은 flex container 의 main axis 를 기준으로 flex item 을 수평 정렬*/
    
        /*모든 flex item 은 flex item 의 행 이후에 균등하게 분배된 공간에 정렬되어 배치된다. 기본값.*/
        align-content: stretch;
    
        /*모든 flex item 은 flex container 의 cross start 기준으로 stack 정렬된다.*/
        /*stack 정렬: 행들이 붙어서 정렬됨. 행과 행 사이에 공간이 없음.*/
        /*왼쪽 위에 붙어서 정렬됨.*/
        /*align-content: flex-start;*/
    
        /*모든 flex item 은 flex container 의 cross end 기준으로 stack 정렬된다.*/
        /*왼쪽 아래에 붙어서 정렬됨.*/
        /*align-content: flex-end;*/
    
        /*모든 flex item 은 flex container 의 cross axis 의 중앙에 stack 정렬된다.*/
        /*align-content: center;*/
    
        /*첫번째 flex item 의 행은 flex container 의 상단에 마지막 flex item 의 행은 flex container 의 하단에
        배치되며 나머지 행은 균등 분할된 공간에 배치 정렬된다.*/
        /*align-content: space-between;*/
    
        /*모든 flex item 은 균등 분할된 공간 내에 배치 정렬된다.*/
        /*align-content: space-around;*/
    }
    
    
    
    .flex-item {
        /*flex item 의 배치 순서를 지정한다. HTML 코드를 변경하지 않고 order 속성값을 지정하는 것으로 간단히
        재배치할 수 있다. 기본 배치 순서는 flex container 에 추가된 순서이다. 기본값은 0이다.*/
        order: 0;
    
        /*flex item 의 너비에 대한 확대 인자(flex grow factor)를 지정한다. 기본값은 0이고 음수값은 무효하다.*/
        /*모든 flex item 이 동일한 flex-grow 속성값을 가지면 모든 flex item 은 동일한 너비를 갖는다.
        두번째 flex item 의 flex-grow 속성값을 3으로 지정하면 다른 flex item 보다 더 넓은 너비를 갖는다.*/
        flex-grow: 1;
    
        /*flex item 의 너비에 대한 축소 인자(flex shrink factor)를 지정한다. 기본값은 1이고 음수값은 무효하다.
        0을 지정하면 축소가 해제되어 원래의 너비를 유지한다.*/
        /*기본적으로 모든 flex item 은 축소된 상태로 지정(기본값 1)하고 두번째 flex item 만 축소를
        해제(flex-shrink: 0;)하면 원래의 너비를 유지한다.*/
        flex-shrink: 0;
    
        /*flex item 의 너비 기본값을 px, % 등의 단위로 지정한다. 기본값은 auto 이다.*/
        flex-basis: 350%;
    
        /*flex-grow, flex-shrink, flex-basis 속성의 shorthand 이다. 기본값은 0 1 auto 이다.*/
        /*flex: 0 1 auto;*/
    
        /*align-items 속성(flex container 속성으로 flex item 을 flex container 의 수직 방향(cross axis)으로
        정렬한다.)보다 우선하여 개별 flex item 을 정렬한다. 기본값은 auto 이다.*/
        align-self: auto; /*| flex-start | flex-end | center | baseline | stretch*/
    }

    'Front-end > CSS3' 카테고리의 다른 글

    17. Responsive Web Design  (0) 2020.06.06
    16. Layout  (0) 2020.06.06
    15. Web Font  (0) 2020.06.06
    14. Transform  (0) 2020.06.06
    13. Animation  (0) 2020.06.06

    댓글

Designed by Tistory.