Korean_hamster
지현의 개발자 성장과정
Korean_hamster
전체 방문자
오늘
어제
  • 분류 전체보기 (122)
    • Front-End Developer (79)
      • Project (12)
      • HTML (8)
      • CSS (17)
      • Computer Science (9)
      • JavaScript (20)
      • React (13)
    • 이런저런 생각 (7)
    • 주간 성장회고 (24)
    • English (0)
    • 리뷰 (2)
    • Books (5)

블로그 메뉴

  • 방명록

공지사항

인기 글

태그

  • 비전공개발자
  • 리액트
  • flex
  • HTML
  • 프론트앤드스쿨
  • 깃
  • fetch
  • js
  • 비전공자개발자
  • 라우터
  • AtomicHabits
  • 깃헙
  • 멋사
  • 멋쟁이사자처럼
  • CS
  • sass
  • 반응형웹
  • 면접관님
  • 프론트앤드
  • CSS

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Korean_hamster

지현의 개발자 성장과정

배운 flex로 있어보이는 반응형 Nav 바 만들어보기
Front-End Developer/CSS

배운 flex로 있어보이는 반응형 Nav 바 만들어보기

2022. 4. 10. 20:58

안녕! 

배운건 직접 써먹어봐야 내 머릿속에 남습니다.

오늘은 있어보이는 반응형 Nav 바를 만들어볼거에요.

 


기본재료 준비

header 태그 안에

  1. 로고 이미지
  2. ul 태그(3개의 네비게이션 링크들이 담긴)
  3. a태그(버튼이 담긴)

로 구성하고 아주 기본적인 스타일링을 해줄게요.

 

>HTML

 <body>
    <header>
      <img class="logo" src="logo.svg" alt="logo" />
      <nav>
        <ul class="nav_links">
          <li><a href="#">Services</a></li>
          <li><a href="#">Projexts</a></li>
          <li><a href="#">About</a></li>
        </ul>
      </nav>
      <a class="cta" href=""><button>Contact</button></a>
    </header>
  </body>

>CSS

 * {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
        background-color: #24252a;
      }

      li,
      a,
      button {
        font-family: "Montserrat";
        font-weight: 500;
        font-size: 16px;
        color: #edf0f1;
        text-decoration: none;
      }

      .nav_links {
        list-style: none;
      }

      .nav_links li {
        display: inline-block;
        padding: 0px 20px;
      }

      button {
        padding: 9px 25px;
        background-color: rgba(0, 136, 169, 1);
        border: none;
        border-radius: 50px;
      }

짠.

 


부모요소에 display:flex 주기

 

      header {
        display: flex;
      }

display:flex 속성을 주자 마자, 세로로 배치되어있던 각각의 item들이 가로로 붙었다.

왜 가로냐? flex는 horizontally, 즉 가로축을 중심으로 정렬되는게 기본값이니까~ 

 


justify-content로 중심축의 정렬방식 설정하기

  header {
        display: flex;
        justify-content: space-between;
        
      }

item마다의 space가 들어갔다.

 


align-items로 반대축의 정렬방식 설정하기

     header {
        display: flex;
        justify-content: space-between;
        align-items: center;
      }

 

차지하고있는 height 안에서 모든 items들이 중간정렬되었다. 

눈에띄는 변화가 없어보이지만, 임의로 header에 height값을 높게 줘보면 

세로축에서 정확히 가운데 위치한 것을 알 수 있다.

 


header와 각각의 item들에 space 설정하기

 

이번에는 간단하게 header에 패딩값을 줌으로써 space를 설정했다.

 

      header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 30px 5%;
      }

 

화면의 크기가 커져도 그 비율은 유지하는 걸 볼 수 있다!

이렇게 아주 간단하게 flex를 이용한 있어보이는 Nav 바 완성! 

 

 


응용 1 - justify-content:flex-end 사용

 

  • justify-content: flex-end를 주고
  • .logo에 margin-right: auto 를 준 경우 (남는 공간에서 오른쪽에 다 마진을 사용해줘~)

 


응용2 - logo와 contact버튼의 순서를 바꾸고싶을 때

 

.logo {
        order: 1;
      }

      .cta {
        order: -1;
        margin-right: auto;
      }

짜잔! 

저작자표시 (새창열림)

'Front-End Developer > CSS' 카테고리의 다른 글

약방의 감초같은 image sprite기법으로 이모티콘 넣기  (2) 2022.04.14
가운데정렬의 난 case 1 - 이미지와 텍스트 수직정렬하기  (0) 2022.04.11
Flex 별 거 아냐 - 자식요소편  (0) 2022.04.09
니가 누구던지 센터로 가버려 - CSS 중앙정렬 4가지 방법  (5) 2022.04.07
Flex 별 거 아냐 - 부모요소 편  (2) 2022.04.07
    Korean_hamster
    Korean_hamster
    Keep pushing myself to the limits

    티스토리툴바