ul
์li
์์์ ๋ฒํธ๋ฅผ ๊ธฐ์ ํ๋ ๊ณผ์ ์์ ์ฝํ ์ธ ์ ๋ฐ์ดํฐ ๋ณํ์ ์๊ด์์ด ์์๋ฅผ ๋งค๊ธฐ๊ณ ์ถ๋ค๋ฉด?
CSS ๋ง์ผ๋ก๋ ํ์ฌ ์์ ์์์ ์์์ ๋ฐ๋ผ ๋ฒํธ๋ฅผ ํ ๋นํ๋ ๊ธฐ๋ฅ์ด ์๋ค. ๊ทธ๋ฌ๋ CSS ์นด์ดํฐ(Counter)๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ์์์ ๋ฒํธ๋ฅผ ํ ๋นํ๊ณ ํ์ํ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
๋ฌธ์ ๋ด์์ ํน์ ์์์ ์์๋ฅผ ์ถ์ ํ๊ณ ๊ทธ ๊ฐ์ ์คํ์ผ์ ์ ์ฉํ๋ CSS ๊ธฐ๋ฅ์ด๋ค.
counter-reset ๋ฐ counter-increment ์์ฑ์ ์ฌ์ฉํ์ฌ ์นด์ดํฐ๋ฅผ ์ด๊ธฐํํ๊ณ ์ฆ๊ฐ์ํฌ ์ ์๋ค.
์ด๋ฅผ ํ์ฉํ์ฌ ๋ชฉ๋ก ์์ดํ ์ ๋ฒํธ๋ฅผ ์๋์ผ๋ก ํ ๋นํ๊ฑฐ๋ ํน์ ์์์ ๊ณ ์ ํ ์๋ณ์๋ฅผ ๋ถ์ฌํ ์ ์๋ค.
๐๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ์ฌ์ฉ ๊ฐ๋ฅ
/* ์ด๊ธฐ ์นด์ดํฐ ๊ฐ์ 0์ผ๋ก ์ค์ */
ul {
counter-reset: my-counter;
list-style-type: none; /* ๊ธฐ๋ณธ ์์๋ฅผ ์จ๊น. */
}
li::before {
/* ์นด์ดํฐ ๊ฐ์ ์ฆ๊ฐ */
counter-increment: my-counter;
/* ๋ฒํธ๋ฅผ ํ์ */
content: counter(my-counter) ". ";
/* ๊ธฐํ ์คํ์ผ๋ง์ ์ ์ฉ */
font-weight: bold;
margin-right: 5px; /* ๋ฒํธ์ ํ
์คํธ ๊ฐ๊ฒฉ ์กฐ์ */
}
์ ์ฝ๋๋ ul ์์์ ์์์ธ ๊ฐ li ์์์ ์์๋๋ก ๋ฒํธ๋ฅผ ํ ๋นํ๋ค. ์ฌ๊ธฐ์ counter-reset
์ ์นด์ดํฐ๋ฅผ ์ด๊ธฐํํ๊ณ , counter-increment
๋ ์นด์ดํฐ๋ฅผ ์ฆ๊ฐ์ํจ๋ค.
content ์์ฑ์ ::before ์ ์ฌ ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ li ์์ ์์ ๋ฒํธ๋ฅผ ํ์ํ๋ค.
์ด๋ ๊ฒ ํ๋ฉด HTML ๊ตฌ์กฐ์ ๋ฐ๋ผ ์๋์ผ๋ก ๋ฒํธ๊ฐ ๋ถ์ฌ๋๋ฉฐ, ์์๊ฐ ๋ฐ๋์ด๋ ๋ฒํธ๊ฐ ์๋์ผ๋ก ์กฐ์ ๋๋ค.
CSS ์นด์ดํฐ๋ ํนํ ๋ชฉ๋ก์ด๋ ํน์ ์์์ ์์๋ฅผ ์๊ฐ์ ์ผ๋ก ํํํ๊ณ ์ ํ ๋ ์ ์ฉํ๋ค.
๋จ, ๋์ ์ผ๋ก ๋ด์ฉ์ด ๋ณ๊ฒฝ๋๋ ๊ฒฝ์ฐ์๋ JavaScript๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์ ํฉํ ์ ์๋ค.