프로그래밍 언어/NEXT.JS

[NEXT.JS] #4 CSS STYLING (1)

doomole 2023. 11. 13. 17:55
728x90

이전 글에 이어 CSS 를 설정하는 방법에 대해 작성해보겠다.

 

[NEXT.JS] #3 pages와 페이지 이동

이전 글에서 next project를 생성했다. 이번 글은 nextjs의 페이지 이동에 대해 작성하였다. [NEXT.JS] #2 Project 생성하기 특징과 기능에 대한 정리를 마쳤으니 이제 프로젝트를 생성해 보겠다. NEXT.JS 특

many.tistory.com

module.css

첫번째로 .module.css로 생성된 css파일을 import하여 내부의 class를 적용하는 방법을 사용했다.

방장은 next.js 14버전을 사용했기 때문에 하위 버전과 사용법이 다를 수 있다.

components/NavBar.module.css

.active {
    color: tomato;
}

 

components/NavBar.js

import Link from "next/link";
import styles from './NavBar.module.css'
import {useRouter} from "next/router";

export default function NavBar() {
    const router = useRouter()
    return (
        <nav>
            <Link className={router.pathname === '/' ? styles.active: ''} href='/'>home</Link>
            <Link className={router.pathname === '/test' ? styles.active: ''} href='/test'>test</Link>
        </nav>
    )
}

 

router pathname이 /일 때는 home 의 color를, /test일 경우에는 test의 color에 css를 적용하도록 했다.

 

이어서 두 개의 css를 한 element에 적용하는 방법이다.

components/NavBar.module.css

.active {
    color: tomato;
}

.link {
    text-decoration: none;
}

 

components/NavBar.js

import Link from "next/link";
import styles from './NavBar.module.css'
import {useRouter} from "next/router";

export default function NavBar() {
    const router = useRouter()
    return (
        <nav>
            <Link className={[styles.link, router.pathname === '/' ? styles.active: ''].join(' ')} href='/'>home</Link>
            <Link className={[styles.link, router.pathname === '/test' ? styles.active: ''].join(' ')} href='/test'>test</Link>
        </nav>
    )
}

 

위와 같이 두 개의 class를 배열 형태로 묶고 join하면 두 가지 css를 모두 적용할 수 있다.

 

'프로그래밍 언어 > NEXT.JS' 카테고리의 다른 글

[NEXT.JS] #6 _app.js  (0) 2023.11.14
[NEXT.JS] #5 CSS STYLING (2)  (0) 2023.11.13
[NEXT.JS] #3 pages와 페이지 이동  (0) 2023.11.13
[NEXT.JS] #2 Project 생성하기  (2) 2023.11.13
[NEXT.JS] #1 특징과 기능  (0) 2023.11.13