본문 바로가기
HTML+CSS+Javascript/CSS3

2. 셀렉터

by 김마리님 2020. 3. 5.

셀렉터는 HTML 태그의 모양을 꾸미는 스타일 시트를 선택하는 기능이다. 간단한 CSS의 형태를 보면

h3{color:brown;}

이런 CSS 스타일은 이후 html의 h3 모든 태그에 영향을 준다. 이렇게 h3처럼 선택적으로 태그를 선택하게 하는 것을 셀렉터라고 한다.

 

 

 

다음 html로 셀렉터를 파악해보자.

<body>
    <h3>Web Programming</h3>
    <hr>
    <div>
         <div>2학기 <strong>학습 내용</strong>입니다.</div>
        <ul>
             <li><span>HTML5</span></li>
            <li><strong>CSS</strong></li>
            <li>JAVASCRIPT</li>
        </ul>
        <div>60점 이하는 F</div>
    </div>
</body>

 

 

1. 태그 이름 셀렉터

태그 이름 셀렉터는 태그 이름이 셀렉터로 지정되는 방식이다.

        h3,li{color: brown;}

아래와 같이 적용된 곳은 h3와 li의 자식값들 뿐이다.

이 때, ,(콤마)를 사용하면 두개 이상의 태그를 한번에 지정할 수 있다.

 

 

2. class 셀렉터

셀렉터를 class라는 속성으로 지정하는 방식이다

<head>
    <style>
        body.main{
            background: aliceblue;
        }
        .warning{
            color:red;
        }
    </style>
<body class="main">
        <div class="warning">

class는 일종의 별명 같은 것이다. class를 이용해서 속성을 지정하면 class 별명만 있는 곳에 CSS 스타일이 적용된다.

이 때 class를 지정할 때는 점(.)을 붙인다.

 

 

3. ID 셀렉터

셀렉터를 ID라는 속성으로 지정하는 방식이다.

ID 역시 일종의 별명 같은 것이다. 다만, class와 ID의 큰 차이점은 class는 ,(콤마)를 이용해 여러개로 지정이 가능하지만, ID는 하나만 지정이 가능하다. 여기서는 list의 배경값만을 설정했기 때문에, 리스트의 배경값만 설정되었다.

   <style>
        #list{
            background: mistyrose;
        }
<body class="main">
        <ul id="list">
             <li><span>HTML5</span></li>
            <li><strong>CSS</strong></li>
            <li>JAVASCRIPT</li>
        </ul>
</body>

ID 역시 일종의 별명 같은 것이다. 다만, class와 ID의 큰 차이점은 class는 ,(콤마)를 이용해 여러개로 지정이 가능하지만, ID는 하나만 지정이 가능하다. 여기서는 list의 배경값만을 설정했기 때문에, 리스트의 배경값만 설정되었다.

 

 

4. 자식, 자손 셀렉터

자식 셀렉터는 부모자식인 두 관계를 '>' 기호로 연결한 것이다. 

자손 셀렉터는 자손관계인 두 개 이상의 태그를 나열한 것이다.

    <style>
        ul strong{color: dodgerblue;}
        div > div > strong{background: yellow;}
        #list span{
            color: forestgreen;
        }
</style>
</head>
<body class="main">
    <div>
         <div>2학기 <strong>학습 내용</strong>입니다.</div>
        <ul id="list">
             <li><span>HTML5</span></li>
            <li><strong>CSS</strong></li>
            <li>JAVASCRIPT</li>
        </ul>
    </div>
</body>

첫번째 코드는 자손 셀렉터이다. 이 때, ,(콤마)를 이용해 연결하지 않도록 주의한다! ul의 자손인 strong에게 CSS 코드를 부여하는 방식이며, 이때는 ul 내부의 모든 strong에게 CSS 스타일이 부여된다.

두번째 코드는 자식 셀렉터이다. 자손 셀렉터와의 큰 차이는 직계 자식이라는 점이다. 

세번째 코드의 예시와 마찬가지로, 자손 셀렉터는 리스트나 클래스에도 동일하게 적용된다.

 

 

5. 가상 셀렉터

가상셀렉터는 개발자가 설정하지 않아도 내장되어있는 셀렉터로 특정상황일때 설정할 수 있는 셀렉터이다.

다음 셀렉터는 자주 사용되는 가상 셀렉터이다.

:hover 마우스가 올라갈 때 
:active 마우스를 누르고 있을 때
:focus 폼 요소가 키보드나 마우스 클릭으로 포커스를 받을 때 
:link 방문하지 않은 링크
:visited 방문한 링크
:first-letter 태그의 첫 글자에 스타일 적용
:first-line 태그의 첫 라인에 스타일 적용
:nth-child(even) 태그의 짝수번째 태그에 스타일 적용
:nth-child(1) 태그의 첫번째 자식 태그

가상셀렉터를 이용한 예시이다.

    <style>
        h3::first-letter{
            color:mediumaquamarine;
        }
        li:hover{
            background: yellowgreen;
        }
    </style>
<body class="main">
    <h3>Web Programming</h3>

다음과 같이 마우스가 올라간 CSS 리스트에 hover 속성이 적용되 배경이 바뀐 것을 확인할 수 있고, first_letter 속성에 의해 첫 글자만 색이 바뀐 것을 확인할 수 있다.

반응형

'HTML+CSS+Javascript > CSS3' 카테고리의 다른 글

6. 시각적 스타일  (0) 2020.03.09
5. 배경  (0) 2020.03.09
4. 박스 스타일  (0) 2020.03.09
3. 색과 텍스트 꾸미기  (0) 2020.03.09
1. CSS3 기초  (0) 2020.03.05