코딩 스쿨 JavaScript

언어선택 : HTMLCSSJAVAJAVASCRIPTMYSQLSQL PHP

JavaScript DOM CSS

JavaScript DOM CSS: CSS 스타일 조작

JavaScript DOM CSS는 HTML 문서의 스타일을 동적으로 조작하는 방법을 제공합니다. JavaScript를 사용하여 CSS 스타일을 변경하면 웹 페이지의 디자인을 실시간으로 업데이트할 수 있으며, 사용자 인터랙션에 반응하여 다양한 시각적 효과를 만들 수 있습니다. 이 가이드는 JavaScript를 사용하여 DOM 요소의 CSS 스타일을 선택하고 수정하는 방법에 대해 설명합니다.


1. DOM 요소의 CSS 접근

JavaScript를 사용하여 DOM 요소의 CSS 스타일에 접근하려면 style 프로퍼티를 사용합니다. 이 프로퍼티를 통해 인라인 스타일을 설정하거나 변경할 수 있습니다.

1.1. 인라인 스타일 수정

<p id="myParagraph">This is a paragraph.</p>

<script>
  const paragraph = document.getElementById('myParagraph');
  paragraph.style.color = 'blue';  // 텍스트 색상 변경
  paragraph.style.fontSize = '20px'; // 글자 크기 변경
</script>

  • 위의 코드는 <p> 요소의 텍스트 색상을 파란색으로, 글자 크기를 20픽셀로 변경합니다.

1.2. 여러 스타일 변경

여러 CSS 속성을 한 번에 변경할 수 있습니다.

paragraph.style.cssText = 'color: red; font-size: 18px; background-color: yellow;';

  • Text 속성을 사용하면 여러 스타일을 한 줄로 작성할 수 있습니다.

2. 클래스와 CSS 스타일 조작

JavaScript를 사용하여 DOM 요소에 CSS 클래스를 추가하거나 제거할 수 있습니다. 이를 통해 미리 정의된 스타일을 손쉽게 적용할 수 있습니다.

2.1. classList 프로퍼티

classList 프로퍼티는 클래스의 추가, 삭제 및 토글을 쉽게 할 수 있게 해줍니다.

2.1.1. 클래스 추가

<button id="toggleButton">Toggle Class</button>
<p id="myParagraph">This is a paragraph.</p>

<style>
  .highlight {
      background-color: yellow;
      font-weight: bold;
  }
</style>

<script>
  const button = document.getElementById('toggleButton');
  const paragraph = document.getElementById('myParagraph');

  button.addEventListener('click', () => {
      paragraph.classList.add('highlight');  // highlight 클래스 추가
  });
</script>

  • 버튼을 클릭하면 <p> 요소에 highlight 클래스가 추가되어 스타일이 적용됩니다.

2.1.2. 클래스 제거

paragraph.classList.remove('highlight');  // highlight 클래스 제거

  • 이 코드는 highlight 클래스를 제거하여 스타일을 초기화합니다.

2.1.3. 클래스 토글

button.addEventListener('click', () => {
    paragraph.classList.toggle('highlight');  // highlight 클래스 토글
});

  • 위의 코드는 버튼을 클릭할 때마다 highlight 클래스가 추가되거나 제거됩니다.

3. CSS 속성 읽기

JavaScript를 사용하여 DOM 요소의 CSS 스타일 속성을 읽을 수도 있습니다. 이 경우 getComputedStyle() 메서드를 사용합니다.

3.1. getComputedStyle()

이 메서드는 요소의 최종 스타일을 반환합니다. 이는 CSS 파일, 인라인 스타일, 브라우저의 기본 스타일을 모두 포함합니다.

<p id="myParagraph">This is a paragraph.</p>

<script>
  const paragraph = document.getElementById('myParagraph');
  const computedStyle = getComputedStyle(paragraph);

  console.log(computedStyle.color);  // 현재 텍스트 색상 출력
  console.log(computedStyle.fontSize); // 현재 글자 크기 출력
</script>

  • *getComputedStyle()*를 사용하면 요소의 CSS 속성 값을 정확하게 확인할 수 있습니다.

4. CSS 애니메이션과 전환

JavaScript를 사용하여 CSS 애니메이션과 전환 효과를 제어할 수 있습니다. 이를 통해 사용자에게 더 나은 시각적 경험을 제공할 수 있습니다.

4.1. CSS 전환

CSS 전환은 속성이 변경될 때 애니메이션 효과를 추가하는 방법입니다. transition 속성을 사용하여 설정합니다.

<style>
  #myParagraph {
      transition: all 0.5s ease;
  }
  .highlight {
      background-color: yellow;
      font-size: 20px;
  }
</style>

<p id="myParagraph">This is a paragraph.</p>

<script>
  const paragraph = document.getElementById('myParagraph');

  paragraph.addEventListener('mouseenter', () => {
      paragraph.classList.add('highlight');  // 마우스 오버 시 클래스 추가
  });

  paragraph.addEventListener('mouseleave', () => {
      paragraph.classList.remove('highlight');  // 마우스 나갈 시 클래스 제거
  });
</script>

  • 이 코드는 <p> 요소에 마우스를 올리면 highlight 클래스가 추가되고, 마우스를 떼면 제거되어 부드러운 전환 효과가 나타납니다.

4.2. CSS 애니메이션

CSS 애니메이션을 통해 요소의 스타일을 순차적으로 변경할 수 있습니다. @keyframes를 사용하여 애니메이션의 동작을 정의합니다.

<style>
  @keyframes fadeIn {
      from { opacity: 0; }
      to { opacity: 1; }
  }

  #myParagraph {
      animation: fadeIn 2s;  /* 2초 동안 fadeIn 애니메이션 적용 */
  }
</style>

<p id="myParagraph">This is a paragraph with fade-in effect.</p>

  • 이 코드는 페이지 로드 시 <p> 요소가 페이드 인되는 효과를 적용합니다.

5. CSS와 JavaScript의 통합 활용

JavaScript를 사용하여 CSS 스타일을 조작하는 것은 사용자 인터페이스를 동적으로 업데이트하는 데 중요한 역할을 합니다. 다음은 JavaScript와 CSS를 통합하여 사용자의 상호작용에 반응하는 동적 예시입니다.

5.1. 사용자 상호작용 기반 스타일 변경

<button id="changeStyleButton">Change Style</button>
<p id="myParagraph">This is a paragraph.</p>

<script>
  const button = document.getElementById('changeStyleButton');
  const paragraph = document.getElementById('myParagraph');

  button.addEventListener('click', () => {
      paragraph.style.color = 'green';          // 글자 색상 변경
      paragraph.style.backgroundColor = 'lightgray'; // 배경색 변경
      paragraph.style.fontSize = '25px';        // 글자 크기 변경
  });
</script>

  • 버튼을 클릭하면 <p> 요소의 스타일이 변경됩니다.

요약

JavaScript DOM CSS는 HTML 요소의 스타일을 동적으로 조작하는 데 중요한 역할을 합니다. JavaScript를 사용하여 CSS 스타일을 읽고, 변경하며, 애니메이션과 전환 효과를 적용함으로써 더욱 상호작용적이고 매력적인 웹 페이지를 만들 수 있습니다.

  • DOM 요소 선택 및 스타일 조작: style 프로퍼티를 사용하여 요소의 인라인 스타일을 변경하고, classList를 사용하여 클래스를 추가하거나 제거합니다.
  • CSS 속성 읽기: getComputedStyle()를 사용하여 요소의 현재 스타일을 읽을 수 있습니다.
  • 전환 및 애니메이션: CSS 전환과 애니메이션을 통해 요소의 스타일 변경을 부드럽게 처리할 수 있습니다.
  • 사용자 상호작용 처리: 이벤트 리스너를 추가하여 사용자의 상호작용에 따라 스타일을 동적으로 변경할 수 있습니다.

JavaScript와 CSS를 결합하여 동적이고 매력적인 웹 애플리케이션을 구현할 수 있습니다.


copyright ⓒ 스타트코딩 all rights reserved.
이메일 : startcodingim@gamil.com