티스토리 뷰
HTML에서 class 속성은 웹 페이지의 여러 요소에 동일한 스타일이나 기능을 적용할 수 있는 강력한 도구입니다. 이 속성은 CSS 및 JavaScript와 함께 사용되어 특정 요소를 선택하고 스타일링하거나 조작하는 데 중요한 역할을 합니다. 이 글에서는 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-color
와 color
는 "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)
- HTML에서 하나의 요소에 여러 클래스를 지정할 수 있나요?
- 네, 가능합니다. 공백으로 구분하여 여러 클래스를 지정하면 됩니다.
- class와 id 속성의 차이점은 무엇인가요?
id
는 문서 내에서 고유해야 하지만,class
는 여러 번 사용할 수 있으며 재사용성이 높습니다.
- JavaScript로 특정 클래스를 가진 모든 요소를 선택하려면 어떻게 해야 하나요?
getElementsByClassName()
또는querySelectorAll()
메서드를 사용하여 특정 클래스를 가진 모든 요소를 선택할 수 있습니다.
- 클래스 이름에 공백을 포함할 수 있나요?
- 아니요, 클래스 이름에 공백을 포함하면 안 됩니다. 공백이 있으면 두 개 이상의 클래스로 인식됩니다.
- 클래스 이름에 대소문자가 중요한가요?
- 네, HTML에서는 클래스 이름이 대소문자를 구분합니다.