Front-end/100DaysOfCode

[100DyasOfCode] 15강

year.number 2022. 7. 31. 23:42

CSS Flexbox Layout Module

flexbox 속성은 float나 position 속성 없이 반응형 레이아웃을 만들 때 유용한 구조이다.


예제를 통해 알아보자!

    <header id="container">
      <div>
        <p>Travel Goals</p>
      </div>
      <nav>
        <ul>
          <li>Destinations</li>
          <li>About</li>
        </ul>
      </nav>
    </header>

부모(container) 안에 자식 박스 2개가 있고, 그 중 하나의 자식 박스 안에 또 2개의 <li> 박스가 있는 상태이다.

 

 

부모(container)에 display: flex; 속성을 추가해서 flexbox를 만들 수 있다.


flexbox의 다양한 속성들

flex-direction

column(수직 스택), column-reverse, row, row-reverse

 

flex-wrap

웹사이트가 줄어들 때 박스들을 밑으로 밀려나게 할 것인지, 고정할 것인지 결정하는 속성

wrap(박스가 밑줄로 밀려남, width값 X!!), nowrap(박스가 밑줄로 밀려나지 않고 width값이 줄어듬), wrap-reverse

 

flex-flow

flex-direction과 flex-wrap을 동시에 설정하는 속성

 

justify-content

박스들을 컨테이너 안 어느 쪽으로 정렬할 것인지 설정하는 속성

center, flex-start, flex-end, space-around, space-between

 

align-items

컨테이너 height값이 정해져있을 때 박스들을 상하 기준으로 어느 쪽으로 정렬할 것인지 설정하는 속성

center, flex-start, flex-end, stretch, baseline

 

align-content

center, flex-start, flex-end, space-around, space-between, stretch

 

😆 align-content

  justify-content: center;
  align-items: center;

 

 


💡 [header]-[nav] 메뉴에 flexbox 개념 적용

    <header>
        <div id = "page-logo"><a href="/index.html">Travel <span>.Dot</span></a></div>
        <nav>
            <ul>
                <li><a href="/places.html">여행지</a></li>
                <li><a href="">소개</a></li>
            </ul>
        </nav>
    </header>
header {
    display: flex;
    justify-content: space-between;

    /* line height값을 높이만큼 주는 것과 비슷 */
    align-items: center;
    padding: 13px 134px;
    position: absolute;
    width: 100%;
    box-sizing: border-box;


}

header ul {
    display: flex;
}