์๊ตฌ์ฌํญ
- HTML ๊ตฌ์กฐ: main ํ๊ทธ ๋ด๋ถ์ article๋ก ๋ ์นด๋ ํญ๋ชฉ 8๊ฐ๋ฅผ ๋ฐฐ์นํฉ๋๋ค.
- CSS: CSS Grid๋ฅผ ์ฌ์ฉํ์ฌ ๋ ์ด์์์ ๊ตฌ์ฑํฉ๋๋ค.
- ๊ธฐ๋ณธ ์คํ์ผ:
- ์นด๋์ ํฌ๊ธฐ๋ ์ฝํ
์ธ ์ ๊ด๊ณ์์ด ๊ท ์ผํด์ผ ํฉ๋๋ค.
- ์นด๋๋ ์ต์-์ต๋ ๋๋น๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฐํ๊ฒ ์กฐ์ ๋์ด์ผ ํฉ๋๋ค.
- ์นด๋ ์ฌ์ด์ ๊ฐ๊ฒฉ์ gap ์์ฑ์ ์ฌ์ฉํด ์ง์ ํฉ๋๋ค.
- ๋ฐ์ํ ์กฐ๊ฑด (Grid์ ์๋ ๋ฐฐ์น ๊ธฐ๋ฅ ํ์ฉ):
- repeat() ํจ์์ auto-fit ๋๋ auto-fill ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ฉด ๋๋น์ ๋ฐ๋ผ ์ด์ ๊ฐ์๊ฐ ์๋์ผ๋ก ์กฐ์ ๋๋๋ก ํฉ๋๋ค.
- ์ด์ ์ต์ ๋๋น๋ 300px๋ก ์ค์ ํ๊ณ , ๋จ๋ ๊ณต๊ฐ์ ๊ท ๋ฑํ๊ฒ ์ฑ์ฐ๋๋ก ํฉ๋๋ค.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.card-list {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 1vw;
}
.card-list__item {
aspect-ratio: 1/1;
border-radius: 0.5vw;
background-color: #fafafa;
}
</style>
</head>
<body>
<main class="card-list">
<article class="card-list__item"></article>
<article class="card-list__item"></article>
<article class="card-list__item"></article>
<article class="card-list__item"></article>
<article class="card-list__item"></article>
<article class="card-list__item"></article>
<article class="card-list__item"></article>
<article class="card-list__item"></article>
</main>
</body>
</html>