본문 바로가기

웹/HTML&CSS

[HTML/CSS] class, id 클래스, 아이디 / 2021.08.06

* 참고 자료 : 코드잇 HTML/CSS 강의

 

1. 클래스

예를 들어, 아래와 같은 코드가 있다.

<p>의 글자 크기를 64px, 색을 블루로 입히는 코드이다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!DOCTYPE html>
 
<html>
    <head>
        <title>id/class example</title>
        <meta charset="utf-8">
        <style>
            p {
                font-size: 64px;
                color: blue;
            }
        </style>
    </head>
    <body>
        <h1>Heading 1</h1>
        <h2>Heading 2</h2>
 
        <p>첫 번째 문단</p>
        <p>두 번째 문단</p>
        <p>세 번째 문단</p>
        <p>네 번째 문단</p>
    </body>
</html>
 
cs

 

웹 페이지를 열어보면

이와 같이 나온다.

 

만약, 세번째 문단만 64px로 색을 블루로 입히고 싶다면 어떻게 해야 할까?

각각의 <p> 태그 4개를 구분할 방법이 없기 때문에 "클래스"를 사용해야 한다.

세 번째 문단의 코드와 스타일 코드를 다음과 같이 수정해 보자.

세 번째 문단 :
<p class="big-blue-text">세 번째 문단</p>
클래스는 이름과 같은 역할을 한다.
스타일 코드 :
.big-blue-text{
    font-size: 64px;
    color: blue;
    }

 

수정한 뒤 웹사이트를 새로고침해 보면 세 번째 문단에만 스타일링 된 것을 확인할 수 있다.

 

 

만약에 다른 곳에도 똑같은 스타일을 입혀주고 싶다면 class="big-blue-text"를 넣어주면 된다.

<h2> 태그에 똑같이 스타일링해주겠다.

<h2> 태그에 class 코드를 넣어주고 웹페이지를 실행해주면,

 

"Heading 2"도 똑같이 스타일링 된 것을 확인할 수 있다.

 

또 하나의 클래스를 추가해 보자.

이미 class="big-blue-text"를 가지고 있는 <h2> 태그에 class="centered-text"를 추가해주려면 어떻게 하면 될까?

답은 간단하다. big-blue-text뒤에 띄어쓰기를 한 칸 하고 centered-text를 추가해주면 된다.

<h2 class="big-blue-text centered-text">Heading 2</h2>

 

코드를 다음과 같이 수정하고,

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<!DOCTYPE html>
 
<html>
    <head>
        <title>id/class example</title>
        <meta charset="utf-8">
        <style>
            .big-blue-text {
                font-size: 64px;
                color: blue;
            }
            .centered-text{
                text-align: center;
            }
        </style>
    </head>
    <body>
        <h1 class="centered-text">Heading 1</h1>
        <h2 class="big-blue-text centered-text">Heading 2</h2>
 
        <p>첫 번째 문단</p>
        <p>두 번째 문단</p>
        <p class="big-blue-text">세 번째 문단</p>
        <p>네 번째 문단</p>
    </body>
</html>
 
cs

 

웹페이지를 실행해보면,

<h2> 태그에 클래스 두 개 모두 적용된 것을 확인할 수 있다.

클래스를 사용하면, 여러 요소들에게 같은 스타일을 입힐 수 있고 한 요소에 다양한 스타일을 입힐 수 있다.

 

2. 아이디

아이디는 클래스와 굉장히 비슷하다.

예를 들어, 첫 번째 문단에 id="best-text"를 넣어보겠다.

<p id="best-text">첫 번째 문단</p>

 

이제 스타일 코드에 best-text를 추가해보겠다.

#best-text{
    color: orange;
}
* class는 . 을 사용하고 id는 #을 사용한다.

 

코드를 다음과 같이 수정하고,

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!DOCTYPE html>
 
<html>
    <head>
        <title>id/class example</title>
        <meta charset="utf-8">
        <style>
            .big-blue-text {
                font-size: 64px;
                color: blue;
            }
            .centered-text{
                text-align: center;
            }
            #best-text{
                color: orange;
            }
        </style>
    </head>
    <body>
        <h1 class="centered-text">Heading 1</h1>
        <h2 class="big-blue-text centered-text">Heading 2</h2>
 
        <p id="best-text">첫 번째 문단</p>
        <p>두 번째 문단</p>
        <p class="big-blue-text">세 번째 문단</p>
        <p>네 번째 문단</p>
    </body>
</html>
cs

 

웹 페이지를 새로고침 하면,

 

id="best-text"를 가진 첫 번째 문단의 글자 색이 오렌지 색으로 입혀진 것을 확인할 수 있다.

여기까지만 보면 아이디와 클래스가 동일한 것처럼 보인다.

그럼 이 두 개의 차이점은 무엇일까?

 

3. 클래스와 아이디의 차이점

 

(1) 중복 클래스 가능 & 중복 아이디 불가능

클래스 같은 경우에는 

 

중복 클래스 가능

이렇게 중복 클래스가 가능하지만,

 

아이디 같은 경우에는

중복 아이디 불가능

이러한 중복 아이디가 불가능하다.

 

(2) 여러 클래스 가능 & 아이디 하나만 가능

클래스 같은 경우에는

여러 클래스 가능

이렇게 클래스 요소 여러 개 (big, blue)가 가능하지만,

 

아이디 같은 경우에는

여러 아이디 불가능

이러한 여러 아이디(best, first)가 불가능하다.

 

4. 클래스를 써야 할까 아이디를 써야 할까?

여러 요소를 스타일링하고 싶다면 class를 사용하고 한 요소만 스타일링 하고 싶다면 id를 사용하자!