๐ค ์์งlog ๐ค
[NextJS] NextJS_CSS ๋ณธ๋ฌธ
.module.css ํ์ผ ์์ฑ
CSS ๋ฅผ ์ ์ฉํ ํ์ผ๊ณผ ๊ฐ์ ํด๋์ ํ์ผ๋ช
.module.css ํ์ผ ์์ฑ
ex) NavBar.js
NavBar.module.css
.active {
color: tomato;
}
.link {
text-decoration: none;
}
์ฝ๋๋ฅผ css์ ์ ๊ณ
import styles from "./NavBar.module.css"; ๐import ํด์ฃผ๊ธฐ
<a
className={`${styles.link} ${
router.pathname === "/" ? styles.active : ""
}`} ๐ ๋ฐฑํฑ ์ฌ์ฉ
>
Home
</a>
<a
className={[ ๐ ๋ฐฐ์ด ์ฌ์ฉ
styles.link,
router.pathname === "/about" ? styles.active : "",
].join(" ")} ๐ join์ ๋ฐฐ์ด๋ด์ ๊ฒ๋ค์ ํฉ์ณ์ค
>
About
</a>
๐ ๋ฐฑํฑ์ผ๋ก ์ฌ๋ฌ๊ฐ์ ์คํ์ผ์ ์ฃผ๋๋ฐฉ๋ฒ๊ณผ ๋ฐฐ์ด๋ก ์ฃผ๋ ๋ฐฉ๋ฒ 2๊ฐ์ง๊ฐ ์กด์ฌ.
.์ปดํฌ๋ํธ ์ด๋ฆ {CSS ์์ฑ} ์ ์ฉํ ํ์ผ์ ์ฐ๊ฒฐ
< style jsx>< /style>
module.css ์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก css๋ฅผ ์ฐ๋ํ๋๋ฐฉ๋ฒ
<nav>
<Link href="/">
<a className={router.pathname === "/" ? "active" : ""}>Home</a>
</Link>
<Link href="/about">
<a className={router.pathname === "/about" ? "active" : ""}>About</a>
</Link>
<style jsx>{`
nav {
background-color: tomato;
}
a {
text-decoration: none;
}
.active {
color: white;
}
`}</style>
</nav>
- ์ฌ์ฉํ ์ปดํฌ๋ํธ ์์์ style jsx๋ฅผ ์ด์ด์ฃผ๊ณ css๋ฅผ ์ ๊ธฐ๋งํ๋ฉด ๋๋๋ค.
โ import ํ์ง ์์๋๋๋ ์ฅ์ ๊ณผ ํด๋์ค๋ค์์ ์ผ์ผํ ๊ธฐ์ตํ ํ์๊ฐ ์๋ ์ฅ์ ์ด ์์.
- module.css์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ค๋ฅธ ์ปดํฌ๋ํธ์์ ๊ฐ์ ์ด๋ฆ์ ์ฌ์ฉํด๋ ๊ฒน์น์ง ์๋๋ค.
โ ๋ฌด์์๋ก ์ถ๊ฐ์ ์ธ ํด๋์ค๋ค์์ด ์์ฑ๋๊ธฐ๋๋ฌธ → ๋ณ์์ด๋ฆ์ง๋๋ฐ ์์ ๋ก์์ง๋ฉฐ ์ถฉ๋์ ํผํ ์ ์๋ ์ฅ์ ์ด์๋ค.
Globals Style ์ Custom App
NextJS์์ globalsStyle์ ์ ์ฉํ๋ ค๋ฉด appComponent๋ฅผ customํด์ค์ผ ํ๋ค.
โญ๏ธ _app.js ํ์ผ์ ์์ ํ๋ฉด ์๋ฒ๋ฅผ ์ฌ์์ ํด์ผํจ โญ๏ธ
๊ธฐ๋ณธ์ ์ผ๋ก ์จ์ด์ ธ์๋ app์ ์์ ํ๋ ค๋ฉด
1. pages์ _app.js๋ฅผ ๋ง๋ค์ด์ผํ๋ค.
2. _app.js์์ App component๋ฅผ ์์ฑํ๊ณ , Component์ pageProps๋ฅผ parameter๋ก ๋ฐ์ ํ ๋ถ๋ฌ์์ค๋ค.
export default function App({ Component, pageProps }) {
return (
<>
<Component {...pageProps} />
</>
);
}
3. ๊ทธํ stylesํด๋์์ globals.css ๋ฅผ ๋ถ๋ฌ์จ๋ค. (module์ด ์๋ css๋ ์ปค์คํ app์์๋ง ๋ถ๋ฌ์ฌ ์ ์์)
import "../styles/globals.css"; ๐
export default function App({ Component, pageProps }) {
return (
<>
<Component {...pageProps} />
</>
);
}
4. ์ฌ๋ฌ ํ์ด์ง์ ๊ณตํต์ผ๋ก ์ฌ์ฉ๋๋ navBar๋ footer๋ฅผ ์ํฌํธํด์ค๋ค.
import NavBar from "../components/NavBar";
import "../styles/globals.css";
export default function App({ Component, pageProps }) {
return (
<>
<NavBar />
<Component {...pageProps} />
</>
);
}
5. style jsx global ์ ํตํด ์ถ๊ฐ๋ก ๊ธ๋ก๋ฒ์คํ์ผ์ ์ฃผ๊ฑฐ๋, globals.css๋ฅผ ์์ ํ์ฌ ๊ธ๋ก๋ฒ ์คํ์ผ์ ์ค ์ ์๋ค.
import NavBar from "../components/NavBar";
import "../styles/globals.css";
export default function App({ Component, pageProps }) {
return (
<>
<NavBar />
<Component {...pageProps} />
<style jsx global>
{`
* {
font-size: 18px;
}
`}
</style>
</>
);
}
'๐ท Next JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[NEXTJS] ์๋ฒ์ฌ์ด๋ ๋ ๋๋ง์ ๋ฐ์ํ๋ html ๋งค์นญ ๋ฌธ์ (0) | 2023.02.21 |
---|---|
[NextJS] NextJS ์์ window ๊ฐ์ฒด๊ฐ ์๋ค๊ณ ํ ๋ (0) | 2023.01.05 |
[NextJS] NextJS์์ ์ปดํฌ๋ํธํ์์ผ๋ก SVG์ฌ์ฉํ๊ธฐ (0) | 2022.12.05 |
[NextJS] NextJS์์ Styled-components ์ฌ์ฉํ๊ธฐ (0) | 2022.12.05 |
[NextJS] NextJS (0) | 2022.10.06 |