class
속성의 정의 및 사용법
class
속성은
요소에 하나 이상의 클래스 이름을 지정하는 속성입니다.
여러 요소가 동일한 클래스 이름으로 된 목록을 가질 수 있으며,
이 클래스 이름은 CSS나 자바스크립에서 요소를 분류해서 식별하고 선택하여 스타일링 및 조작하는 데 사용됩니다.
사용 목적
class
속성은 글로벌(전역) 속성입니다.
하나의 요소에 여러 개의 클래스 이름을 지정할 수 있습니다. 그래서 class
속성은 클래스 이름으로 된 목록을 지정한다고 말하기도 합니다.
하나의 요소에 여러 개의 클래스 이름을 지정하려면 class
속성의 값에 띄어쓰기로 구분하여 여러 개의 이름을 지정합니다.
또한, 여러 개의 요소가 동일한 클래그 이름을 가질 수 있습니다. CSS나 자바스크립트에서는 클래스의 이름으로 요소를 분류해서 식별하고 선택하여 스타일링하고 조작하는 데 사용합니다.
CSS에서 사용하기
.alert { /* alert 클래스를 선택: .class 선택자 */
padding: 0.5em;
background-color: gold;
}
.caution { /* caution 클래스를 선택: .class 선택자 */
color: orangered;
}
<p class="alert">알릴 내용이 있습니다.</p>
<p>문단 요소입니다.</p>
<p class="alert caution">주의할 내용이 있습니다.</p>
<p>문단 요소입니다.</p>
CSS의 .alert
선택자는 요소들 중에서 클래스의 이름이 alert
인 요소들을 분류해서 스타일링합니다. 그리고, CSS의 .caution
선택자는 요소들 중에서 클래스의 이름이 caution
인 요소들을 분류해서 스타일링합니다.
<p class="alert caution">주의할 내용이 있습니다.</p>
요소는 클래스의 이름이 두 개(alert
과 caution
)입니다.
이 요소는 .alert
선택자와 .caution
선택자에 공통으로 분류되었기 때문에 두 선택자에 해당하는 스타일링이 모두 적용됩니다.
서로 다른 요소가 동일한 클래스 이름을 공유할 수 있습니다.
알릴 내용이 있습니다.
문단 요소입니다.
주의할 내용이 있습니다.
문단 요소입니다.
자바스크립트에서 사용하기
다음의 예제는 10개의 <div>
요소가 있는데, 여기서 7개의 <div>
요소에는 box
라는 클래스의 이름이 있는 요소입니다.
버튼을 클릭하면 자바스크립트는 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
속성으로 지정한 요소의 클래스 이름은 CSS나 자바스크립에서 요소를 분류해서 식별하고 선택하여 스타일링 및 조작하는 데 사용됩니다.
이러한 것들은 class
속성을 사용하는 이유입니다.
단 하나의 요소에도 적용 가능
앞서 설명한 class
속성을 사용하는 이유 이외에도 class
속성의 특정 이름을 단 하나의 요소에만 적용해도 됩니다. 이는 마치 요소를 id
속성으로 웹 페이지 내에서 유일한 고유 식별자로 설정하기 위해 사용하는 것과 유사하지만 근본적인 차이점이 있습니다.
class
속성의 이름을 단 하나의 요소에 사용하는 것은 단지 해당 요소가 class
속성의 이름으로 분류할 때 하나일 뿐이라는 것이지 id
속성으로 웹 페이지 내에서 유일한 고유 식별자로 설정하기 위해 사용한다라는 의미가 아닙니다.
만약에 하나의 요소에만 CSS를 적용하기 위한 목적으로만 선택자로 id
속성의 값을 사용한다면, 적용은 잘 되지만 id
속성을 사용하는 해당 요소가 유일한 고유 식별자로의 중요한 목적은 없는 것으로, 이는 향 후 유지보수 등에서 id
속성을 사용한 코드의 맥락(불필요하게 id
속성을 사용한 것을 모르고... 유일한 고유 식별자를 왜?)을 이해하는데 방해가 될 수 있습니다.
주의할 점
하나의 HTML 요소에 여러 개의 클래스 이름을 지정하려면 class
속성의 값에 띄어쓰기로 구분하여 여러 개의 이름을 지정해야 합니다. 하나의 HTML 요소에 여러 개의 클래스 속성과 이름을 사용하지 말아야 합니다.
<p class="a" class="b">하나의 HTML 요소에 여러 개의 클래스 이름을 지정할 수 있습니다.</p>
<p class="a b">하나의 HTML 요소에 여러 개의 클래스 이름을 지정할 수 있습니다.</p>
브라우저 호환성
속성 |
데스크탑 Chrome
|
데스크탑데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
---|---|---|---|---|
class
|
1 | 12 | 1 | 4 |
명세서
명세서 사양 | |
---|---|
class
|
HTML Standard #global-attributes:classes-2 |