<label htmlFor="formCheckAll">
<span className="sr-only">์ ์ฒด ๋์</span>
<input
id="formCheckAll"
type="checkbox"
checked={checkAll}
onChange={handleAllItems}
style={{
backgroundImage: `url(${CheckedIcon})`,
backgroundRepeat: 'no-repeat',
backgroundPosition: 'center',
}}
className="w-[28px] h-[28px] rounded-full bg-[#BDBEC0] checked:bg-green-default appearance-none"
/>
</label>
์ฐ์ ์ ์ผ ๋จผ์
<input>
ํ๊ทธ์ type ์์ฑ์ checkbox๋ก ๋๋ค. ์ ์ฝ๋๋ ์ ์ฒด ๋์๋ฅผ ์ํ checkbox input ์์ ์ฝ๋.
TailwindCSS์ ์์ด ์จ์ ๋ช ๊ฐ์ง๋ฅผ ์ค๋ช ํ์๋ฉด,
sr-only
: ๋ผ๋ฒจ ๋ด ํ๊ทธ ํ ์คํธ๋ ์คํฌ๋ฆฐ ๋ฆฌ๋ ์ฌ์ฉ์์๊ฒ๋ง ์ฝํ๋๋ก ํ๋ค.rounded-full
:border-radius: 50%;
์ ๋์ผ. ์ฒดํฌ ๋ฐ์ค ์ด๋ฏธ์ง๋ฅผ ๋ฅ๊ธ๊ฒ ๋ง๋ ๋ค.checked:bg-green-default
:green-default
๋ผ๋ ๋ณ์๋ช ์ผ๋กtainwind.config.js
ํ์ผ์ ๋ฑ๋กํด๋ ์์์ผ๋ก background-color๋ฅผ ์ง์ ํด์ค๋ค. ๋จ,checked
๊ฐtrue
์ผ ๋๋ง ํ์ฑํํ๋ ์ฝ๋์ด๋ค.appearance-none
:appearance: none;
๊ณผ ๋์ผํ ์ฝ๋๋ก, ์ฃผ๋ก ์ปค์คํ ํฐํธ ์์๋ฅผ ๋ง๋ค ๋ ์ฌ์ฉํ๋๋ฐ, ํด๋น ์์์ ์ ์ฉ๋ default ๋ธ๋ผ์ฐ์ ์คํ์ผ๋ง์ ์ ๊ฑฐํ๋ ๋ฐ ์ด๋ค. tailwindCSS์์ ๊ด๋ จ ํญ๋ชฉ ๋๋ณด๊ธฐ
๊ธฐ๋ณธ์ ์ธ ์คํ์ผ์ ์ ๊ฑฐํ๊ณ , input
์ ๋ด๋ถ ์ฒดํฌ ์์ด์ฝ์ ๋์์ด๋๊ฐ ์ค ์ปค์คํ
์ฒดํฌ ์์ด์ฝ(.svg
)์ผ๋ก ์ฐ๊ธฐ ์ํด <input>
ํ๊ทธ๋ฅผ background-image
๋ก ์ค์ ํ๋ค. ์์์ ๋ฌผ๋ก CheckedIcon
์ import
๊ฐ ๋ ์ํ์ฌ์ผ ํ๋ค.
์ด๋ ์์ง ๋ง์์ผ ํ ๊ฒ์ label ํ๊ทธ์ htmlFor์ input ํ๊ทธ์ id ๊ฐ์ ๋์ผํ๊ฒ ๊ฐ์ ธ๊ฐ๋ฉด์ <label>
๊ณผ <input>
์ ๋ฌถ์ด์ค์ผ ํ๋ค๋ ์ .
์๋๋ background-image๋ tailwindCSS๋ก ์์ฑํด๋ณด๋ ค๊ณ ํ๋ค. ๋ฌผ๋ก tailwindCSS๊ฐ ํด๋น ์์ฑ์ ์ง์ํ๋๋ฐ, ๊ณ์ ์คํจํด์ ๊ธฐ์กด CSS์ ํผ์ฉํด์ ์ฌ์ฉํ๋๋ ๋์ฑ ๊น๋ํ๊ฒ ์์ฑํ ์ ์๊ฒ ๋ ๊ฒ ๊ฐ๋ค.
์ฌ์ค ์คํฌ๋ฆฐ๋ฆฌ๋ ์ฌ์ฉ์์๊ฒ๋ง ๋ผ๋ฒจ์ด ๋ณด์ด๋๋ก ํ๋ ๊ฒ๋ ์ ๊ทผ์ฑ์๋ ์ด๊ธ๋์ง๋ง, ๋์์ด๋์ ์ถฉ๋ถํ ์ด์ผ๊ธฐํ๊ณ ํ์ํด ๋๊ฐ ์๊ฐ์ด ๋ถ์กฑํด์, ์ฐ์ ์ ์ด๋ ๊ฒ๋ผ๋ ์์ฑํ๊ฒ ๋๋ค. ๊ธฐํ๊ฐ ๋๋ฉด, ์ด๋ฐ ์ด์ผ๊ธฐ๋ ์ฐจ๊ทผ์ฐจ๊ทผ ํ๋ฉด์ ํ๋ก๋ํธ๋ฅผ ๋ง๋ค ๊ธฐํ๊ฐ ์๊ธฐ๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค.
'๐ฉโ๐ป > CSS3' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CSS] writing-mode: vertical-rl, vertical-lr (0) | 2021.12.06 |
---|---|
[CSS] position์ ์ดํด. static/relative/absolute/fixed ๊ทธ๋ฆฌ๊ณ sticky. (0) | 2021.04.24 |
[CSS] ์์๋ฅผ fadeoutํ ๋ค์๋ ์ฌ์ ํ clickableํ ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ (0) | 2021.03.06 |
[CSS] Attribute Selector (0) | 2021.03.06 |
[responsive-web] CSS grid-layout repeat() (auto-fill, auto-fit) (0) | 2021.01.07 |