๐Ÿ’ป Programming/JS, TS

[JavaScript] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ css ์Šคํƒ€์ผ ๋ณ€๊ฒฝํ•˜๊ธฐ

Jiwon() 2024. 1. 13. 23:21

DOM ์š”์†Œ์˜ ์Šคํƒ€์ผ ๋ณ€๊ฒฝ

1) className

<form>
      <div class="control">
        <label for="product-name">Product Name</label>
        <input type="text" id="product-name" name="product-name" maxlength="60">
        <span id="charcount">
          <span id="remaining-chars">60</span>/60
        </span>
      </div>
      <button>Submit</button>
    </form>
input.warning {
  background-color: rgb(248, 191, 145);
}

#remaining-chars.warning {
  color:rgb(211, 109, 26);
}
const spanElement = document.getElementById('remaining-chars');

spanElement.className = 'warning';

 

element.className('some-class')๋กœ ํ•ด๋‹น ์š”์†Œ์— ํด๋ž˜์Šค๋ช…์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

  • className์œผ๋กœ css ํด๋ž˜์Šค ์ถ”๊ฐ€ํ•  ๋•Œ์˜ ๋‹จ์  : ์ด๋ฏธ ํด๋ž˜์Šค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์š”์†Œ์˜ ๊ฒฝ์šฐ, ํ•ด๋‹น ํด๋ž˜์Šค๊ฐ€ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋กœ ๋ฎ์–ด์”Œ์–ด์ง„๋‹ค. ๊ธฐ์กด ํด๋ž˜์Šค์™€ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋ ค๋ฉด someElement.className = ‘old-class new-class’์ฒ˜๋Ÿผ ๊ธฐ์กด ํด๋ž˜์Šค๋ช…์„ ์ฐพ์•„ ํ•˜๋“œ์ฝ”๋”ฉ์œผ๋กœ ์ถ”๊ฐ€ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

 

 

2) classList

classList ํ”„๋กœํผํ‹ฐ๋Š” ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด ๋ฉ”์„œ๋“œ๋“ค์„ ํ†ตํ•ด ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด ํด๋ž˜์Šค๋ฅผ ์‚ญ์ œํ•˜์—ฌ className์˜ ๋ฐฉ๋ฒ•๋ณด๋‹ค ๋” ์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

spanElement.classList.add('add-class') // ํด๋ž˜์Šค๋ช… ์ถ”๊ฐ€, ๊ธฐ์กด์˜ ํด๋ž˜์Šค๊ฐ€ ์žˆ๋”๋ผ๋„ ๊ธฐ์กด ๊ฒƒ์„ ๋ฎ์–ด์“ฐ์ง€ ์•Š๊ณ  ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€๋จ
spanElement.classList // ์š”์†Œ์˜ ํด๋ž˜์Šค๋ช…์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
spanElement.classList.remove('add-class') // ํ•ด๋‹น ํด๋ž˜์Šค ์‚ญ์ œ, ์‚ญ์ œํ•œ ํด๋ž˜์Šค๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ํด๋ž˜์Šค๋Š” ๊ทธ๋Œ€๋กœ ๋‚จ์•„์žˆ๋‹ค.

 

์œ„์˜ ๊ฒฐ๊ณผ๋ฌผ

 

 

๋ฉ”์„œ๋“œ

  • add('class-name') : ์ง€์ •ํ•œ ํด๋ž˜์Šค ๊ฐ’์„ ์ถ”๊ฐ€ํ•œ๋‹ค. ๋งŒ์•ฝ ์ถ”๊ฐ€ํ•˜๋ ค๋Š” ํด๋ž˜์Šค๊ฐ€ ์š”์†Œ์˜ class ์†์„ฑ์— ์ด๋ฏธ ์กด์žฌํ•œ๋‹ค๋ฉด ๋ฌด์‹œํ•œ๋‹ค.
  • remove('class-name') : ์ง€์ •ํ•œ ํด๋ž˜์Šค ๊ฐ’์„ ์ œ๊ฑฐํ•œ๋‹ค. ์กด์žฌํ•˜์ง€ ์•Š๋Š” ํด๋ž˜์Šค๋ฅผ ์ œ๊ฑฐํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค์ง€ ์•Š๋Š”๋‹ค.
  • item(index-number) : ์ปฌ๋ ‰์…˜์˜ ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ํด๋ž˜์Šค ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • toggle('first-class-name', 'second-class-name')
    • ํ•˜๋‚˜์˜ ์ธ์ˆ˜๋งŒ ์žˆ์„ ๋•Œ๋Š” ํด๋ž˜์Šค ๊ฐ’์„ ํ† ํด๋งํ•œ๋‹ค. ์ฆ‰, ํด๋ž˜์Šค๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด ์ œ๊ฑฐํ•˜๊ณ  false๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  true๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
    • ๋‘ ๋ฒˆ์งธ ์ธ์ˆ˜๊ฐ€ ์žˆ์„ ๋•Œ : ๋‘ ๋ฒˆ์งธ ์ธ์ˆ˜๊ฐ€ true๋กœ ํ‰๊ฐ€๋˜๋ฉด ์ง€์ •ํ•œ ํด๋ž˜์Šค ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๊ณ  false๋กœ ํ‰๊ฐ€๋˜๋ฉด ์ œ๊ฑฐํ•œ๋‹ค.
  • contains('class-name')
    • ์ง€์ •ํ•œ ํด๋ž˜์Šค ๊ฐ’์ด ์š”์†Œ์˜ class ์†์„ฑ์— ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
  • replace('old-class', 'new-class')
    • ์กด์žฌํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋กœ ๊ต์ฒดํ•œ๋‹ค.