본문 바로가기

선택자 기초

1. 전체 선택자

전체 선택자(universal selector)는 HTML 문서 내의 모든 요소를 선택합니다. html를 포함하는 모든 요소에 스타일을 적용합니다. *(별표, 애스터리스크)를 사용하여 지정할 수 있습니다.

보통 브라우저 마다 다른 사용자 에이전트 스타일에 적용되어있는 기본 스타일을 제거하기 위해서 주로 사용됩니다. 모든 요소에 스타일을 적용하기 때문에 페이지 로드 성능에 영향을 미칠 수 있습니다. 따라서 필요한 경우에만 사용하는 것이 좋습니다.

* {
  margin: 0;
  padding: 0;
}
<h1>hello</h1>
<p>world</p>
<div>lorem ipsum dolor sit amet</div>
* {
  color: red;
}

2. 타입(유형) 선택자

타입 선택자(type selector)는 태그 선택자, 요소 선택자로도 불리며 특정 태그를 선택하여 스타일을 적용합니다. 아래 코드는 h1 태그와 p 태그를 선택하여 스타일을 적용합니다.

<h1>hello</h1>
<p>lorem ipsum dolor sit amet 1</p>
<p>lorem ipsum dolor sit amet 2</p>
h1 {
  color: blue;
}
p {
  font-size: 12px;
  font-weight: bold;
}

타입 선택자 또한 동일한 태그이면 모두 스타일이 적용되기 때문에 세부 스타일을 적용하기보다는 공통 스타일을 사용하는데 주로 사용됩니다. 따라서 디자인에 따라서 요소에 지정할 수 있는 클래스나 아이디 선택자를 사용하는 것을 권장합니다.

3. 아이디 선택자

아이디 선택자(id selector)는 아이디를 사용하여 특정 요소를 선택합니다. # 뒤에 아이디를 작성하여특정 요소를 선택합니다. 아이디는 HTML 페이지 내에서 고유한 값을 가지기 때문에 한 개의 요소에만 스타일을 적용하기 때문에 재사용성은 떨어집니다.

<header id="header">hello</header>
<div id="content">This is some content</div>
<button onclick="document.getElementById('content').style.display='none'">
  Hide Content
</button>
#header {
  color: blue;
}

아이디 속성은 주로 자바스크립트를 이용해서 기능을 추가하거나 해시 링크 이동에 사용됩니다.

라이브코로나

스타일링을 위해 id 선택자를 사용하지 않습니다!

id는 문서 내에서 유일해야 하므로 같은 스타일을 여러 요소에 적용할 수 없습니다. 또한, id는 CSS에서 우선순위가 높아 나중에 스타일을 변경하거나 덮어씌우기 어려워 예상치 못한 결과를 불러올 수 있습니다. 따라서, 스타일을 적용할 때는 id 대신 class를 사용하여 유연하고 유지보수하기 쉬운 스타일링을 하는 것이 더 바람직합니다.

4. 클래스 선택자

<h1 class="fc-red">hello wolrd</h1>
<p>Lorem ipsum dolor sit amt</p>
<p class="fc-red">Lorem ipsum dolor sit amt</p>
.fc-red {
  color: red;
}
  • id, class는 숫자로 시작하면 안 됩니다!

    • .1class (X)
    • .class1 (O)
  • 하이픈(-)과 언더바(_), 문자로만 시작할 수 있습니다.

    • .-class (O)
    • ._class (O)
    • .$color (X)

하나의 요소에 여러 개의 클래스를 적용하는 것도 가능합니다. 따라서 스타일을 세분화하고 여러 클래스를 적용하여 스타일을 추가할 수 있습니다.

<p class="text-large text-bold fc-red">Styled text</p>
.text-large {
  font-size: 24px;
}

.text-bold {
  font-weight: bold;
}

.fc-red {
  color: red;
}

5. 속성 선택자

속성 선택자는 HTML 요소의 속성을 기반으로 요소를 선택하는 강력한 도구입니다. 이를 통해 특정 속성을 가진 요소나 속성 값이 특정 패턴을 가진 요소를 선택할 수 있습니다.

  • [속성이름]: 해당 속성을 가진 모든 요소 선택
  • [속성이름="속성값"]: 해당 속성의 속성값이 일치하는 모든 요소 선택
  • [속성이름*="속성값"]: 특정 문자열을 포함하는 모든 요소를 선택합니다.
<p title="Hello" class="text title">This paragraph has a title.</p>
<p class="text">This paragraph doesn't have a title.</p>
<a href="#" title="Link" class="link title">This is a link</a>
[title] {
  border-bottom: 2px dotted #333;
}

[class='text'] {
  color: lime;
}

[class*='text'] {
  background: pink;
}

6. 그룹 선택자

그룹 선택자(group selector)는 여러 개의 선택자를 쉼표(,)로 구분하여 한 번에 동일한 스타일을 적용할 수 있습니다. 이는 코드의 중복을 줄이고, 스타일을 일관되게 적용하는 데 유용합니다.

<h1>hello</h1>
<h2>hello</h2>
<h3>hello</h3>
h1,
h2,
h3 {
  color: blue;
}

위 CSS는 아래와 동일한 코드입니다.

h1 {
  color: blue;
}
h2 {
  color: blue;
}
h3 {
  color: blue;
}
선택자 기초 - HTML/CSS 에센셜 | 위니버시티