이 글은 생활코딩 CSS 수업을 정리하는 목적으로 작성하였다. 강의와 더불어 참고하길 바란다.

선택자 (selector)

css 파일을 열어보면 다음과 같은 문법을 볼 수 있었을 거다. 이 때 이 안의 다음과 같은 명칭의 표현들이 존재함을 알아야 한다.

2z4a3yh4

🎯 selector: style sheet 을 적용시킬 대상을 지칭한다.

🎯 property: style sheet 을 작성할 때 그 목적이 되는 구체적 style 을 의미한다.

🎯 value: property 에 넣을 값을 의미한다.

선택자의 종류

선택자(selector) 는 여러가지 종류가 있다. 즉 style sheet 을 적용시킬 대상을 지칭할 때 그 표현의 방법이 여러가지 있다는 뜻이다. 다음은 그 종류이다.

🎯 태그 선택자 (tag selector, type selector)

/* html 태그를 지칭하여 style sheet 을 적용한다 */

h1 {
}

🎯 클래스 선택자 (class selector)

/* class 를 지칭하여 style sheet 을 적용한다 */

.title {
}

🎯 아이디 선택자 (id selector)

/* id 를 지칭하여 style sheet 을 적용한다 */

#title {
}


이 때 기억해야할 점은 선택자는 분명하게 지칭될 수록 우선순위가 높게 작용한다는 것이다.

예를들어 다음과 같은 코드가 있다 할 때 아이디 선택자가 가장 분명한 선택자 이므로 <h1 class='title' id='title'/> 의 색상은 빨간색이 된다.

/* <h1 class='title' id='title'/> 이라는 html 태그가 존재한다고 가정하자 */

h1 {
  color: black;
}
.title {
  color: white;
}
#title {
  color: red;
}

부모 자손 선택자 (descendant selector)

만약 html 태그 안에 또 다른 html 태그가 있을 때, 우리는 그 관계를 부모자손 관계라고 부른다.

css 에서는 부모자손 관계를 선택자에서 이용할 수 있다. 그 종류는 다음과 같다.

🎯 (띄어쓰기) , 자손

첫 번째는 띄어쓰기를 이용하여 선택자를 구성하는 방법이다.

이 것은 앞에 나온 선택자의 자손 중 뒤에 나온 선택자가 존재할 때 style sheet 이 적용되는 상황이다.

이 때 기억해야할 점은 뒤에 나온 선택자가 앞에 나온 선택자의 몇 번째 자손이든 상관 없이 자손이기만 하면 된다는 것이다.

아래 코드 중 첫 번째 블럭의 의미는 ul 태그의 자손 li 태그를 선택자로 삼아 {} 에 등장하는 style sheet 을 적용시킨다는 의미이다.


🎯 > , 직계자손

두 번째는 > 를 이용하여 선택자를 구성하는 방법이다

이 것은 앞에 나온 선택자의 직계 자손(depth =1) 중 뒤 나온 선택자가 존재할 때 style sheet 이 적용되는 상황이다.

이 때 기억해야할 점은 뒤에 나온 선택자는 앞에 나온 선택자의 첫 번째 , 즉 직계 자손이어야 한다는 것이다.

아래 코드 중 두 번째 블럭의 의미는 #lecture 아이디의 직계 자손 li 태그를 선택자로 삼아 {} 에 등장하는 style sheet 을 적용시킨다는 의미이다.


🎯 , , 병렬

세 번째는 , 를 이용하여 선택자를 구성하는 방법이다.

이 것은 간단하다! 그냥 병렬을 의미한다.

아 래 코드 중 세 번째 블럭의 의미는 ul 태그와 ol 태그 모두에게 {} 에 등장하는 style sheet 을 적용시킨다는 의미이다.

ul li {
  color: red;
  text-decoration: underline;
}

#lecture > li {
  border: 1px solid red;
}

ul,
ol {
  background-color: powderblue;
}

가상 클래스 선택자 (psuedo class selector)

다음과 같은 코드가 있다.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <style>
      a:link {
        color: black;
      }
      a:visited {
        color: red;
      }
      a:hover {
        color: yellow;
      }
      a:active {
        color: green;
      }
      a:focus {
        color: white;
      }
    </style>
  </head>
  <body>
    <a href="https://www.naver.com">방문함</a>
    <a href="https://www.daum.net">방문함</a>
  </body>
</html>


위 코드를 보면 a:link , a:visited , a:hover , a:active , a:focus 등이 있다. 이를 가상 클래스 선택자 라고 부른다. 이 의미는 다음과 같다.

✔️ a:link : <a/> 태그의 기본적인 상태를 지칭하는 선택자

✔️ a:visited : <a/> 태그가 방문된 상태를 지칭하는 선택자

✔️ a:hover : <a/> 태그에 마우스를 올려 놓은 상태를 지칭하는 선택자

✔️ a:active : <a/> 태그가 클릭된 상태를 지칭하는 선택자

✔️ a:focusing : <a/> 태그가 focusing 된 상태를 지칭하는 선택자


추가 정보

css cheat sheet

추가적으로 css cheat sheet 를 첨부한다. 필요시 참고하길 바란다.

css 선택자 연습 사이트

다음 사이트 에서 css 선택자를 고르는 연습을 할 수 있다. 참고하자 !

Leave a comment