CSS - 4. 레이아웃 활용

1 분 소요

Flex

  • Container에 부여하는 속성

    • display: flex

    • flex-direction(정렬 방향): row(default), row-reverse, column, column-reverse

    • flex-wrap: nowrap(default), wrap(container보다 아이템들의 크기 합이 더 크면 줄바꿈), wrap-reverse

    • flex-flow(flex-direction과 flex-wrap을 간략히 한 속성)

    • justify-content(가로선 상에서의 정렬)

      • flex-start(컨테이너의 왼쪽으로 정렬)

      • flex-end(컨테이너의 오른쪽으로 정렬)

      • center(가운데로 정렬)

      • space-between(요소들 사이에 동일한 간격)

      • space-around(요소들 주위에 동일한 간격)

    • align-items(세로선 상에서의 정렬)

      • stretch(default - 컨테이너에 맞도록 늘임)

      • flex-start(컨테이너 꼭대기로 정렬)

      • flex-end(컨테이너 바닥으로 정렬)

      • center(컨테이너 세로선 상의 가운데로 정렬)

      • baseline(컨테이너 시작 위치에 정렬)

    • align-content(세로선 상에 여분의 공간이 있는 경우 flex Container 사이의 간격을 조절)

      • flex-start(여러 줄들을 컨테이너의 꼭대기에 정렬)

      • flex-end(여러 줄들을 컨테이너의 바닥에 정렬)

      • center(여러 줄들을 세로선 상의 가운데에 정렬)

      • space-between(여러 줄들 사이에 동일한 간격을 둠)

      • space-around(여러 줄들 주위에 동일한 간격을 둠)

      • stretch(여러 줄들을 컨테이너에 맞도록 늘림)

  • item에 부여하는 속성(선택자에서 .item:nth-child(2){}하면 두번째 item 선택)

    • order(item 순서를 지정): 0(default)

    • flex-grow: 0(default), 1(컨테이너 영역을 1/n로 차지)

    • flex-shrink: 1(default), 0(줄어들지 않게 지정)

    • flex-basis(flex방향에 해당되는 엘리먼트 크기 지정): auto

    • flex(flex-grow, flex-shrink, flex-basis 축약)

    • align-self(align-items 값을 무시하고 세로선 상에서 정렬): auto, flex-start, flex-end, center, baseline, stretch


flex - holy grail layout

<head>
    <style>
        .container{
            display: flex;
            flex-direction: column;
        }
        .content{
            display: flex;
        }
        nav, aside{
            flex-basis: -rem;
            flex-shrink: 0;
        }
    </style>
</head>
<body>
    <div class="container">
        <header></header>
        <section class="content">
            <nav></nav>
            <main></main>
            <aside></aside>
        </section>
        <footer></footer>
    </div>
</body>


Media query(미디어쿼리)

미디어에 query하여 미디어에 따라 적합한 다른 디자인을 보여준다.

반응형 웹을 만들 때 중요한 역할

<head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
        @media (max-width: 500px) {
            <!-- 화면의 크기가 최대 500px일 때 적용(500px 이하일 때 적용) -->
        }
        @media (min-width: 500px) {
            <!-- 화면의 크기가 최소 500px일 때 적용(500px 이상일 때 적용) -->
        }
    </style>
</head>

Cascading으로 인해 동일한 조건 시 나중에 있는 것을 우선순위


float 기본

이미지 삽입 시 사용하는 기법(레이아웃 잡는 데도 쓰임)

float를 적용하지 않고 싶은 단락에는 style="clear:both;"


다단 만들기(multi-column)

column-count, column-width 이용.

둘 다 이용시 count이상은 나누지 않으면서, column-width 유지함.

column-gap(컬럼 사이의 간격 조정)

column-rule-style(절취선 스타일)

column-rule-width(절취선 두께)

column-rule-color(절취선 색상)

column-span: all(컬럼 적용 하지 않음)

카테고리:

업데이트:

댓글남기기