Return to Video

Changing CSS classes

  • 0:01 - 0:06
    저번 시간까지 자바스크립트로
    스타일 지정하는 방법을 알려드렸습니다
  • 0:06 - 0:10
    만약 자바스크립트로 여러 스타일을 지정하고 싶다면
  • 0:10 - 0:15
    CSS 속성값을 설정하기 위해
    코딩만 100줄을 해야 할지도 모릅니다
  • 0:15 - 0:18
    그렇게 된다면 자바스크립트가
    정말 엉망진창이 될지도 모르죠
  • 0:18 - 0:21
    이 경우 또 다른 방식으로 접근할 수 있습니다
  • 0:21 - 0:23
    CSS 클래스를 생성하고
  • 0:23 - 0:28
    그 클래스에 원하는 스타일을 입히기 위해
    CSS 규칙을 추가하는 겁니다
  • 0:28 - 0:33
    그 이후 자바스크립트에 클래스 명을 넣으면 되는데요
  • 0:33 - 0:39
    여기에 '' 태그를 넣고 시작해보도록 합시다
  • 0:39 - 0:46
    '.catclass' 클래스를 만들고
    여기에 CSS 규칙을 추가해볼게요
  • 0:46 - 0:53
    그 다음 'color:orange',와 '
    background-color: black'을 설정해보죠
  • 0:53 - 0:59
    이를 'heading'요소로 넣자면
    이렇게로도 볼 수 있죠
  • 0:59 - 1:06
    'headingEl.className = "catcolors"; 로요
  • 1:06 - 1:09
    이러면 자바스크립의 색배정과 배경색을
    삭제할 수 있습니다
  • 1:09 - 1:12
  • 1:12 - 1:13
    짜잔!
  • 1:13 - 1:15
    됐죠?
  • 1:15 - 1:17
    근데, 조금 이상한 게 보이시나요?
  • 1:17 - 1:21
    클래스 명을 위한 HTML 속성은 그냥 'class'이네요
  • 1:21 - 1:27
    이것을 HTML로 하려고 했다면
    'class="catcolors"에 그쳤겠죠
  • 1:27 - 1:32
    자바스크립트로 하려고 하니 '.className',
    으로 써야 했어요
  • 1:32 - 1:34
    이는 흔히 인숙한 방법은 아니죠
  • 1:34 - 1:39
    그것은 'class' 자체가 자바스크립트어의
    키워드로 기능하기 때문입니다
  • 1:39 - 1:43
    이미 그 자체로 의미가 있는 거죠
  • 1:43 - 1:48
    그렇기 때문에 브라우저는 'className'을
    HTML 클래스 속성을 지시하기 위해
  • 1:48 - 1:52
    'className'을 사용합니다
    그래야 헷갈리지 않으니까요
  • 1:52 - 1:57
    그러니까 기억해두셔야 합니다
    어떤 요소의 클래스 속성을 설정하고 싶다면
  • 1:57 - 2:00
    .className = 를 적으면 됩니다
  • 2:00 - 2:04
    이제 각 동물 이름에 배정하기 위해서
  • 2:04 - 2:07
    이를 루프 안에 넣을 수 있습니다.
    바로 이렇게요
  • 2:07 - 2:13
    'nameEls[i].className = "catColors";'
  • 2:13 - 2:19
    이렇게 하면 클래스 명을 추가하는 게 되지만
  • 2:19 - 2:24
    실은 이전에 있었던 모든 클래스를 삭제하는 게 됩니다
    = 를 썼기 때문이죠
  • 2:24 - 2:28
    따라서 이전에 다른 클래스가 있었다면,
    클래스들은 다 삭제되고 없습니다
  • 2:28 - 2:32
    이제 클래스는 동물과 같죠
  • 2:32 - 2:34
    그리하여 catColors가 되었네요
  • 2:34 - 2:41
    따라서 진짜 원했던 건 이 클래스 속성에
    새 클래스 명을 추가하는 것이었죠
  • 2:41 - 2:48
    이는 += catColors.로
    적는 것과 같습니다
  • 2:48 - 2:49
    그렇습니다
  • 2:49 - 2:52
    이렇게 하는 것이 안전합니다
  • 2:52 - 2:58
    이전 클래스가 무엇이었든지 간에
    띄어쓴 다음 새로운 클래스를 추가할 수 있기 때문입니다
  • 2:58 - 3:02
    새로운 브라우저를 활용한 또 다른 방법이 있는데요
  • 3:02 - 3:05
    'classList' 속성을 활용하는 겁니다
  • 3:05 - 3:15
    'nameEls[i].classList.add("catcolors")'
    을 쓰면 되는 거죠
  • 3:15 - 3:20
    이건 훨씬 낫지만
    모든 경우에 활용할 수는 없습니다
  • 3:20 - 3:24
    이를 활용하고 싶다면
    caniuse.com에 접속한 뒤
  • 3:24 - 3:27
    작업하고 있는 사이트가
    모든 브라우저에 호환되는지
  • 3:27 - 3:29
    확인해야 합니다
  • 3:29 - 3:32
    훨씬 나아보이기는 하지만,
    홈페이지가 깨진다면 그닥 좋진 않겠지요
  • 3:32 - 3:36
    브라우저가 이를 인식하지 못하는 기능을
    활용하는 것처럼 나타날 수도 있거든요
  • 3:36 - 3:38
    혹시나 해서 드리는 말씀입니다
  • 3:38 - 3:41
    왜냐하면 저라면 되도록이면 많은 브라우저에서
    제대로 나오길 바랄테니까요
  • 3:41 - 3:46
    여전히 각각의 스타일을 바꾸기 위해서는
    클래스 명을 지시하는 것보다
  • 3:46 - 3:49
    우리가 해야 하는 것들이 많습니다
  • 3:49 - 3:54
    다시 한번 드리는 말씀이지만,
    이런 도구가 있다는 걸 알려드리고 싶네요
  • 3:54 - 3:59
    상황에 따라 적절하게 활용하셨으면 좋겠습니다
Title:
Changing CSS classes
Description:

more » « less
Video Language:
English
Duration:
04:00

Korean subtitles

Incomplete

Revisions