티스토리 뷰

HTML에서 class 속성은 웹 페이지의 여러 요소에 동일한 스타일이나 기능을 적용할 수 있는 강력한 도구입니다. 이 속성은 CSSJavaScript와 함께 사용되어 특정 요소를 선택하고 스타일링하거나 조작하는 데 중요한 역할을 합니다. 이 글에서는 HTML class 속성의 기본 개념과 사용 방법, 그리고 다양한 예시를 통해 그 활용법을 알아보겠습니다.

HTML class 속성이란?

HTML class 속성은 하나 이상의 클래스 이름을 HTML 요소에 지정하는 데 사용됩니다. 이는 CSS와 JavaScript에서 해당 요소를 선택하고 스타일링하거나 동작을 추가하는 데 매우 유용합니다. 여러 HTML 요소가 동일한 클래스를 공유할 수 있으며, 이를 통해 코드의 재사용성과 유지보수성을 높일 수 있습니다.

기본 문법

HTML에서 class 속성은 다음과 같은 형태로 사용됩니다:

<tagname class="classname">내용</tagname>

여기서 tagname<div>, <p>, <span>, <h1> 등 유효한 HTML 태그가 될 수 있으며, classname은 해당 요소에 적용하려는 클래스의 이름입니다. 클래스 이름은 공백으로 구분하여 여러 개를 지정할 수도 있습니다.

CSS에서 class 속성 사용하기

HTML class 속성은 주로 CSS에서 특정 요소를 스타일링하는 데 사용됩니다. 예를 들어, 다음과 같이 "city"라는 클래스를 가진 여러 <div> 요소가 있다고 가정해 봅시다:

<!DOCTYPE html>
<html>
<head>
<style>
.city {
  background-color: tomato;
  color: white;
  border: 2px solid black;
  margin: 20px;
  padding: 20px;
}
</style>
</head>
<body>

<div class="city">
  <h2>런던</h2>
  <p>런던은 영국의 수도입니다.</p>
</div>

<div class="city">
  <h2>워싱턴</h2>
  <p>워싱턴은 미국의 수도입니다.</p>
</div>

<div class="city">
  <h2>서울</h2>
  <p>서울은 대한민국의 수도입니다.</p>
</div>

</body>
</html>

위 예제에서는 "city"라는 클래스를 가진 세 개의 <div> 요소가 모두 동일한 스타일을 적용받습니다. CSS에서 .city 선택자를 사용하여 해당 클래스가 적용된 모든 요소에 배경색, 글자색, 테두리 등을 설정할 수 있습니다.

다중 클래스 적용

하나의 HTML 요소에 여러 클래스를 적용할 수도 있습니다. 이를 통해 다양한 스타일을 결합하여 사용할 수 있습니다. 다음 예제를 살펴보겠습니다:

<!DOCTYPE html>
<html>
<head>
<style>
.city {
  background-color: tomato;
  color: white;
}
.main {
  text-align: center;
}
</style>
</head>
<body>

<h2 class="city main">런던</h2>
<h2 class="city">워싱턴</h2>
<h2 class="city">서울</h2>

</body>
</html>

위 예제에서 첫 번째 <h2> 요소는 "city" 클래스와 "main" 클래스를 동시에 가지고 있습니다. 이로 인해 background-colorcolor는 "city" 클래스에서, text-align 속성은 "main" 클래스에서 적용됩니다.

JavaScript에서 class 속성 사용하기

HTML class 속성은 JavaScript에서도 매우 유용하게 활용됩니다. JavaScript는 getElementsByClassName() 메서드를 사용하여 특정 클래스 이름을 가진 모든 요소에 접근할 수 있습니다. 이를 통해 동적으로 웹 페이지의 내용을 변경하거나 특정 동작을 수행할 수 있습니다.

다음 예제는 버튼 클릭 시 "city" 클래스를 가진 모든 요소를 숨기는 방법을 보여줍니다:

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript에서 클래스 속성 사용하기</h2>

<button onclick="myFunction()">도시 숨기기</button>

<h2 class="city">런던</h2>
<p>런던은 영국의 수도입니다.</p>

<h2 class="city">워싱턴</h2>
<p>워싱턴은 미국의 수도입니다.</p>

<h2 class="city">서울</h2>
<p>서울은 대한민국의 수도입니다.</p>

<script>
function myFunction() {
  var elements = document.getElementsByClassName("city");
  for (var i = 0; i < elements.length; i++) {
    elements[i].style.display = "none";
  }
}
</script>

</body>
</html>

위 코드에서 버튼을 클릭하면 myFunction() 함수가 실행되고, "city" 클래스를 가진 모든 요소가 숨겨집니다.

querySelectorAll() 메서드 활용

또 다른 방법으로 querySelectorAll() 메서드를 사용할 수 있습니다. 이 메서드는 CSS 선택자를 사용하여 특정 클래스를 가진 모든 요소를 선택합니다.

<!DOCTYPE html>
<html lang="ko">
<head>
<style>
.change-color {
  font-size: 20px;
}
</style>
<script>
function changeColor() {
    var elements = document.querySelectorAll('.change-color');
    elements.forEach(function(element) {
        element.style.color = 'red';
    });
}
</script>
</head>
<body>

<p class="change-color">이 문장은 색상이 변경됩니다.</p>
<p>이 문장은 변경되지 않습니다.</p>

<button onclick="changeColor()">색상 변경하기</button>

</body>
</html>

위 예제에서는 버튼 클릭 시 .change-color 클래스를 가진 모든 요소의 텍스트 색상이 빨간색으로 변경됩니다.

Best Practices for Using HTML Class Attribute

HTML class 속성을 사용할 때는 몇 가지 베스트 프랙티스를 따르는 것이 좋습니다:

  • 클래스 이름은 의미 있게 작성: 클래스 이름은 해당 요소의 역할이나 목적을 명확하게 설명해야 합니다. 예를 들어, .btn-primary와 같은 이름은 해당 버튼이 주요 버튼임을 직관적으로 알 수 있게 합니다.
  • 재사용 가능한 클래스 설계: 동일한 스타일이나 동작이 필요한 여러 요소에 쉽게 적용할 수 있도록 클래스를 재사용 가능하게 설계합니다.
  • 대소문자 구분 주의: HTML 클래스 이름은 대소문자를 구분합니다. 따라서 .Header.header는 서로 다른 클래스입니다.
  • 공백으로 구분된 다중 클래스 사용: 여러 클래스를 적용할 때는 공백으로 구분하여 지정하며, 각 클래스는 독립적으로 작동합니다.
  • ID와 Class 차이점 이해: ID는 문서 내에서 고유해야 하지만, Class는 여러 번 사용할 수 있습니다. 따라서 ID는 한 번만 사용할 때 적합하고, Class는 여러 곳에서 재사용할 수 있을 때 적합합니다.

결론

HTML의 class 속성은 웹 페이지에서 여러 요소에 일관된 스타일과 동작을 적용하는 데 필수적인 도구입니다. CSS와 JavaScript와 함께 사용하면 웹 페이지를 더욱 동적이고 유연하게 만들 수 있습니다. 특히 다중 클래스를 활용하거나 JavaScript로 동적으로 조작하는 방법을 익히면 복잡한 웹 애플리케이션에서도 효율적으로 코드를 관리할 수 있습니다.


자주 묻는 질문(FAQ)

  1. HTML에서 하나의 요소에 여러 클래스를 지정할 수 있나요?
    • 네, 가능합니다. 공백으로 구분하여 여러 클래스를 지정하면 됩니다.
  2. class와 id 속성의 차이점은 무엇인가요?
    • id는 문서 내에서 고유해야 하지만, class는 여러 번 사용할 수 있으며 재사용성이 높습니다.
  3. JavaScript로 특정 클래스를 가진 모든 요소를 선택하려면 어떻게 해야 하나요?
    • getElementsByClassName() 또는 querySelectorAll() 메서드를 사용하여 특정 클래스를 가진 모든 요소를 선택할 수 있습니다.
  4. 클래스 이름에 공백을 포함할 수 있나요?
    • 아니요, 클래스 이름에 공백을 포함하면 안 됩니다. 공백이 있으면 두 개 이상의 클래스로 인식됩니다.
  5. 클래스 이름에 대소문자가 중요한가요?
    • 네, HTML에서는 클래스 이름이 대소문자를 구분합니다.
반응형