IMCAT.DEV
로그인 가입
JavaScript 중급 도구

JavaScript CSS와의 통합

JavaScript CSS와의 통합 — 중급

CSS와의 통합

1. 도입 (왜 배워야 하는가)

CSS와 JavaScript의 통합은 현대 웹 개발에서 매우 중요한 부분입니다. CSS는 웹 페이지의 스타일을 정의하는 데 사용되고, JavaScript는 페이지의 동작을 제어하는 데 사용됩니다. 두 가지를 효과적으로 결합함으로써 동적인 웹 애플리케이션을 만들 수 있습니다. 예를 들어, 사용자가 버튼을 클릭했을 때 특정 요소의 스타일을 변경하거나 애니메이션 효과를 줄 수 있습니다. 이를 통해 더 나은 사용자 경험을 제공할 수 있습니다.

반면, CSS와 JavaScript의 통합을 잘 이해하지 못하면 웹 페이지의 상호작용이 제한되고, 사용자 경험이 저하될 수 있습니다. 예를 들어, 단순한 버튼 클릭에 대한 반응 없이 정적인 페이지로만 남게 되어 사용자가 흥미를 잃거나 웹사이트를 떠날 수 있습니다.

2. 핵심 개념 설명

2.1. DOM (Document Object Model)

DOM은 HTML 문서의 구조를 프로그램적으로 접근할 수 있도록 표현한 것입니다. JavaScript는 이 DOM을 통해 HTML 요소를 조작할 수 있습니다.

2.2. CSS 클래스 조작

JavaScript를 사용하여 HTML 요소에 CSS 클래스를 추가하거나 제거함으로써 스타일을 동적으로 변경할 수 있습니다. 이는 마치 옷을 입고 벗는 것과 같아서, 특정 상황에 맞게 다른 스타일을 적용할 수 있습니다.

용어설명
DOM문서 객체 모델, HTML 요소의 구조를 표현
CSS 클래스HTML 요소에 적용할 수 있는 스타일 집합

3. 기본 코드 예제

다음은 버튼을 클릭했을 때 CSS 클래스를 추가하여 배경 색을 변경하는 예제입니다.

// HTML 요소 선택
const button = document.getElementById('changeColorButton');
const box = document.getElementById('colorBox');

// 버튼 클릭 이벤트 리스너 추가
button.addEventListener('click', function() {
    // box에 'active' 클래스 추가
    box.classList.toggle('active');
});
<button id="changeColorButton">색상 변경</button>
<div id="colorBox" style="width: 100px; height: 100px; background-color: blue;"></div>
<style>
    .active {
        background-color: red;
    }
</style>

실행 결과:

  • 버튼을 클릭하면 colorBox의 배경색이 파란색에서 빨간색으로 변경됩니다.
  • 코드 한 줄씩 동작 설명:

    1. document.getElementById를 통해 버튼과 박스 요소를 선택합니다.
    2. 버튼에 클릭 이벤트 리스너를 추가합니다.
    3. 클릭 시 box 요소에 active 클래스를 토글합니다. (있으면 제거하고 없으면 추가)
    4. 4. 실전 활용 예제

      4.1. 쇼핑몰 장바구니

      쇼핑몰에서 사용자가 제품을 장바구니에 추가할 때, 장바구니 아이콘의 배경색을 변화시켜 추가된 상태를 시각적으로 보여줄 수 있습니다.

      const cartIcon = document.getElementById('cartIcon');
      
      function addToCart() {
          cartIcon.classList.add('active');
      }

      4.2. 모달 윈도우

      모달 창을 열고 닫을 때, CSS 스타일을 통해 모달의 표시 여부를 조정합니다.

      const modal = document.getElementById('modal');
      const openModalButton = document.getElementById('openModal');
      
      openModalButton.addEventListener('click', function() {
          modal.classList.add('visible');
      });

      5. 흔한 실수와 주의사항

      5.1. 클래스 이름 오타

    5. 잘못된 코드:
    6.   box.classList.add('activ');
    7. 올바른 코드:
    8.   box.classList.add('active');
    9. 클래스 이름의 오타는 스타일이 적용되지 않게 됩니다.
    10. 5.2. 이벤트 리스너의 중복 추가

    11. 잘못된 코드:
    12.   // 매번 클릭할 때마다 이벤트 리스너가 추가됨
        button.addEventListener('click', changeColor);
    13. 올바른 코드:
    14.   // 이벤트 리스너는 한 번만 추가
        button.removeEventListener('click', changeColor);
        button.addEventListener('click', changeColor);

      6. 정리

    15. JavaScript와 CSS 통합은 동적인 웹 애플리케이션을 만드는 데 필수적입니다.
    16. DOM을 조작하여 CSS 클래스를 추가하거나 제거할 수 있습니다.
    17. 실전에서는 장바구니, 모달 창 등 다양한 상황에서 CSS와 JavaScript를 결합해야 합니다.
    18. 다음에 학습하면 좋은 주제로는 JavaScript 애니메이션, CSS 프레임워크 통합 등이 있습니다.