Yeonn's 기록하며 성장하는 개발일지 :)

CSS module 본문

개발의 모든것/Next.JS

CSS module

연재몬 2022. 6. 18. 14:53

먼저 module.css 파일을 만들어주고,

.nav {
  display: flex;
  justify-content: space-between;
  background-color: tomato;
}

CSS를 작성해준다.

 

이 스타일을 적용할 컴포넌트에 

import styles from "./Navbar.module.css";

import를 해주고, 기존의 방시인 className = "nav"와 같이 텍스트형태가 아니라 

<nav className={styles.nav}>

자바스크립트 오브젝트에서의 프로퍼티형식으로 작성해주면 module.css의 nav가 적용이된다!

모듈울 사용하면 가장 큰 장점은 className이 랜덤한 고유문자로 들어가기때문에 어떠한 충돌도 일어나지않는다.

return (
    <nav className={styles.nav}>
      <Link href="/">
        <a className={router.pathname === "/" ? styles.active : ""}>Home</a>
      </Link>

      <Link href="/about">
        <a className={router.pathname === "/about" ? styles.active : ""}>
          About
        </a>
      </Link>
    </nav>
  );

=> 조건을 사용해 스타일을 주는방법 

그렇다면 하나의 엘리먼트에 2개의 CSS를 주고싶다면?

link를 기본으로 주고, active를 조건으로 주고싶은 경우!

 <a  className={`${styles.link} ${router.pathname === "/" ? styles.active : ""}`}>
     Home
 </a>
<a  className={[ styles.link, router.pathname === "/about" ? styles.active : "",].join(" ")}>
    About
</a>

이렇게 2가지방식으로 사용하면된다. 

'개발의 모든것 > Next.JS' 카테고리의 다른 글

_app.js  (0) 2022.06.29
Style JSX  (0) 2022.06.18
useRouter  (0) 2022.06.18
Link  (0) 2022.06.17
Next.JS 시작  (0) 2022.06.17