๐Ÿ‘ฉ‍๐Ÿ’ป/CSS3

[CSS3/tailwindCSS] background-image๋ฅผ ํ†ตํ•ด ์ปค์Šคํ…€ ์ฒดํฌ ๋ฐ•์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•

ํ•œ๋‚˜ 2022. 2. 25. 23:32

<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์™€ ํ˜ผ์šฉํ•ด์„œ ์‚ฌ์šฉํ–ˆ๋”๋‹ˆ ๋”์šฑ ๊น”๋”ํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ ๊ฒƒ ๊ฐ™๋‹ค.

 

์‚ฌ์‹ค ์Šคํฌ๋ฆฐ๋ฆฌ๋” ์‚ฌ์šฉ์ž์—๊ฒŒ๋งŒ ๋ผ๋ฒจ์ด ๋ณด์ด๋„๋ก ํ•˜๋Š” ๊ฒƒ๋„ ์ ‘๊ทผ์„ฑ์—๋Š” ์–ด๊ธ‹๋‚˜์ง€๋งŒ, ๋””์ž์ด๋„ˆ์™€ ์ถฉ๋ถ„ํžˆ ์ด์•ผ๊ธฐํ•˜๊ณ  ํ˜‘์˜ํ•ด ๋‚˜๊ฐˆ ์‹œ๊ฐ„์ด ๋ถ€์กฑํ•ด์„œ, ์šฐ์„ ์€ ์ด๋ ‡๊ฒŒ๋ผ๋„ ์ž‘์„ฑํ•˜๊ฒŒ ๋๋‹ค. ๊ธฐํšŒ๊ฐ€ ๋˜๋ฉด, ์ด๋Ÿฐ ์ด์•ผ๊ธฐ๋„ ์ฐจ๊ทผ์ฐจ๊ทผ ํ•˜๋ฉด์„œ ํ”„๋กœ๋•ํŠธ๋ฅผ ๋งŒ๋“ค ๊ธฐํšŒ๊ฐ€ ์ƒ๊ธฐ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.