정의 및 사용 방법
class 속성은
요소에 하나 이상의 클래스 이름을 지정하는 속성입니다.
여러 요소가 동일한 클래스 이름으로 된 목록을 가질 수 있으며,
이 클래스 이름은 CSS나 자바스크립트에서 요소를 분류해서 식별하고 선택하여 스타일링 및 조작하는 데 사용됩니다.
기본 예제
<p class="alert">알릴 내용이 있습니다.</p>
<p class="alert caution">주의할 내용이 있습니다.</p>
사용 목적
class 속성은 글로벌 속성입니다.
하나의 요소에 여러 개의 클래스 이름을 지정할 수 있습니다.
그래서 class 속성은 클래스 이름으로 된 목록을 지정한다고 말하기도 합니다.
하나의 요소에 여러 개의 클래스 이름을 지정하려면 class 속성의 값에 띄어쓰기로 구분하여 여러 개의 클래스 이름을 지정합니다.
<p class="alert caution">주의할 내용이 있습니다.</p>
또한, 여러 개의 요소가 동일한 클래스 이름을 가질 수 있습니다.
alert이라는 클래스 이름이 두 요소에서 사용되었습니다.
<p class="alert">알릴 내용이 있습니다.</p>
<p class="alert caution">주의할 내용이 있습니다.</p>
class 속성은 다음과 같은 목적으로 사용됩니다.
- CSS에서 클래스의 이름으로 요소를 분류해서 식별하고 선택하여 스타일링하고 조작하는 선택자로 사용됩니다.
- CSS와 마찬가지로 자바스크립트에서도 클래스 이름으로 요소를 분류해서 식별하고 선택하여 스타일링하거나 조작할 때 사용됩니다.
CSS에서 사용하기
<p class="alert">알릴 내용이 있습니다.</p>
<p>문단 요소입니다.</p>
<p class="alert caution">주의할 내용이 있습니다.</p>
<p>문단 요소입니다.</p>
.alert { /* alert 클래스를 선택: .class 선택자 */
padding: 0.5em;
background-color: gold;
}
.caution { /* caution 클래스를 선택: .class 선택자 */
color: orangered;
}
코드 부연설명
.class 선택자는
지정된 class 이름의 클래스가 있는 요소를 모두 선택합니다.
. 바로 다음에 지정할 class 이름을 붙이면, 이 이름의 클래스가 있는 모든 요소를 나타냅니다. 예를 들어, .alert은 alert이라는 이름의 클래스가 있는 모든 요소를 선택하는 선택자입니다.
CSS의 .alert 선택자는 요소들 중에서 클래스의 이름이 alert인 요소들을 분류해서 스타일링합니다. 그리고, CSS의 .caution 선택자는 요소들 중에서 클래스의 이름이 caution인 요소들을 분류해서 스타일링합니다.
<p class="alert caution">주의할 내용이 있습니다.</p> 요소는 클래스의 이름이 두 개(alert과 caution)입니다.
이 요소는 .alert 선택자와 .caution 선택자에 공통으로 분류되었기 때문에 두 선택자에 해당하는 스타일링이 모두 적용됩니다.
서로 다른 요소라도 동일한 클래스 이름을 공유할 수 있습니다.
알릴 내용이 있습니다.
문단 요소입니다.
주의할 내용이 있습니다.
문단 요소입니다.
자바스크립트에서 사용하기
버튼을 클릭하면 자바스크립트는 box라는 클래스의 이름이 있는 요소만 식별해서 텍스트가 "box 클래스"에서 "box 클래스 반갑습니다."라고 변경합니다.
<style>
div { /* 모든 div 요소의 스타일링 */
padding: 0.5em;
border: 1px solid red;
margin-bottom: 0.5em;
}
.box { /* box 클래스를 가지고 있는 div 요소만 배경색 추가 */
background-color: gold;
}
</style>
<div class="box">box 클래스</div>
<div class="box">box 클래스</div>
<div class="box">box 클래스</div>
<div class="box">box 클래스</div>
<div>div</div>
<div>div</div>
<div class="box">box 클래스</div>
<div class="box">box 클래스</div>
<div>div</div>
<div class="box">box 클래스</div>
<button id="highlight-button" type="button">클릭해서 텍스트 바꾸기</button>
<script>
const highlightButton = document.getElementById("highlight-button");
highlightButton.addEventListener("click", () => {
// 클래스 이름이 'box'인 모든 요소를 가져옵니다.
const boxes = document.querySelectorAll(".box");
boxes.forEach(box => {
box.innerHTML = "box 클래스 반갑습니다.";
});
});
</script>
이 예제를 보고 알 수 있듯이 자바스크립트에서는 클래스 이름으로 요소를 식별하고 선택하여 스타일링하고 조작하는 데 사용합니다.
여러 요소가 아닌 단 하나의 요소에도 적용 가능
앞서 설명한 class 속성을 사용하는 이유 이외에도 class 속성의 특정 이름을 단 하나의 요소에만 적용해도 됩니다.
이는 마치 요소를 id 속성으로 웹 페이지 내에서 유일한 고유 식별자로 설정하기 위해 사용하는 것과 유사하지만 근본적인 차이점이 있습니다.
부연설명
id 속성은
해당 요소의 고유식별자(ID, unique identifier)를 지정하는 속성입니다.
이 속성의 값은 문서(웹 페이지)에서 유일하고 고유해야 합니다.
class 속성의 이름을 단 하나의 요소에 사용하는 것은 단지 해당 요소가 class 속성의 이름으로 분류할 때 하나일 뿐이라는 것이지 id 속성으로 웹 페이지 내에서 유일한 고유 식별자로 설정하기 위해 사용한다라는 의미가 아닙니다.
주의할 점
하나의 HTML 요소에 여러 개의 클래스 이름을 지정하려면 class 속성의 값에 띄어쓰기로 구분하여 여러 개의 이름을 지정해야 합니다. 하나의 HTML 요소에 여러 개의 class 속성과 이름을 사용하지 말아야 합니다.
class 속성과 이름을 사용하지 말아야 합니다.
<p class="a" class="b">하나의 HTML 요소에 여러 개의 클래스 이름을 지정할 수 있습니다.</p>
class 속성의 값에 띄어쓰기로 구분하여 여러 개의 이름을 지정해야 합니다.
<p class="a b">하나의 HTML 요소에 여러 개의 클래스 이름을 지정할 수 있습니다.</p>
브라우저 호환성
| 속성 |
데스크탑 Chrome
|
데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
|---|---|---|---|---|
class
|
1 | 12 | 1 | 4 |
명세서
| 명세서 사양 | |
|---|---|
class
|
HTML Standard #global-attributes:classes-2 |