Jay's Cookbook
Menu
  • Tags
  • Categories
  • Projects
Computer Science
OS
Network
Data Structure
Algorithm
Language
Code Architecture
Python
Javascript
Typescript
Java
Backend
Backend Theory
TypeORM
Node.js
NestJS
FastAPI
Frontend
HTML/CSS
React
Next.js
Data Engineering
DE Theory
MySQL
MongoDB
Elastic
Redis
Kafka
Spark
Airflow
AI
Basic
Pytorch
NLP
Computer Vision
Data Analytics
Statistics
Pandas
Matplotlib
DevOps
Git
Docker
Kubernetes
AWS
[CSS]: 선택자(selector)
frontend
HTML-CSS

[CSS]: 선택자(selector)

Jay Kim
Jay Kim 20 Feb 2024
[CSS]: 함수(func) [CSS] Layout: 플렉스(flex)

Table of Contents

  • CSS 선택자 가이드
    • 1. 기본 선택자 (Basic Selectors)
      • ✅ 요소 선택자 (Type Selector)
      • ✅ 클래스 선택자 (Class Selector)
      • ✅ 아이디 선택자 (ID Selector)
      • ✅ 전체 선택자 (Universal Selector)
    • 2. 그룹 선택자 (Group Selector)
    • 3. 속성 선택자 (Attribute Selectors)
      • ✅ 특정 속성을 가진 요소 선택
      • ✅ 특정 값과 일치하는 요소 선택
      • ✅ 특정 값으로 시작하는 요소 선택 (^=)
      • ✅ 특정 값으로 끝나는 요소 선택 ($=)
      • ✅ 특정 값을 포함하는 요소 선택 (*=)
    • 4. 관계 선택자 (Combinators)
      • ✅ 자식 선택자 (>)
      • ✅ 하위(후손) 선택자 (공백)
      • ✅ 인접 형제 선택자 (+)
      • ✅ 일반 형제 선택자 (~)
    • 5. 가상 클래스 (Pseudo-classes)
      • ✅ 마우스를 올린 상태 (:hover)
      • ✅ 첫 번째 요소 선택 (:first-child)
      • ✅ 마지막 요소 선택 (:last-child)
    • 6. 가상 요소 (Pseudo-elements)
      • ✅ 첫 글자 스타일 (::first-letter)
      • ✅ 첫 줄 스타일 (::first-line)
      • ✅ 내용 추가 (::before, ::after)
    • 7. 선택자 우선순위 (Specificity)
    • 결론

CSS 선택자 가이드

CSS 선택자는 HTML 요소를 스타일링할 때 어떤 요소에 적용할지 지정하는 중요한 개념이다. 선택자는 기본적인 요소 선택부터 고급적인 속성 선택, 관계 선택까지 다양한 방법이 있다. 이번 글에서는 CSS 선택자의 종류와 사용법을 정리해 보겠다.


1. 기본 선택자 (Basic Selectors)

✅ 요소 선택자 (Type Selector)

특정 HTML 태그(요소)에 스타일을 적용할 때 사용한다.

p {
    color: blue;
}

💡 모든 <p> 태그의 텍스트 색상을 파란색으로 변경한다.

✅ 클래스 선택자 (Class Selector)

.(점) 기호를 사용하여 특정 클래스를 가진 요소를 선택한다.

.card {
    background-color: #f4f4f4;
}

💡 .card 클래스를 가진 모든 요소에 배경색을 적용한다.

✅ 아이디 선택자 (ID Selector)

#(샵) 기호를 사용하여 특정 아이디를 가진 요소를 선택한다.

#header {
    font-size: 24px;
}

💡 id="header"인 요소의 글자 크기를 24px로 설정한다.

⚠️ 주의: ID는 문서 내에서 고유해야 하므로, 되도록이면 클래스 선택자를 사용하는 것이 좋다.

✅ 전체 선택자 (Universal Selector)

*를 사용하여 모든 요소를 선택한다.

* {
    margin: 0;
    padding: 0;
}

💡 모든 요소의 margin과 padding을 0으로 초기화한다.


2. 그룹 선택자 (Group Selector)

쉼표 ,를 사용하여 여러 요소를 한 번에 선택할 수 있다.

h1, h2, h3 {
    font-family: Arial, sans-serif;
}

💡 모든 <h1>, <h2>, <h3> 태그의 글꼴을 동일하게 설정한다.


3. 속성 선택자 (Attribute Selectors)

HTML 요소의 속성을 기준으로 선택할 수 있다.

✅ 특정 속성을 가진 요소 선택

a[target] {
    color: red;
}

💡 target 속성이 있는 <a> 태그를 선택한다.

✅ 특정 값과 일치하는 요소 선택

input[type="text"] {
    border: 1px solid #ccc;
}

💡 type="text" 속성을 가진 <input> 태그만 선택한다.

✅ 특정 값으로 시작하는 요소 선택 (^=)

a[href^="https"] {
    color: green;
}

💡 href 속성이 https로 시작하는 <a> 태그를 선택한다.

✅ 특정 값으로 끝나는 요소 선택 ($=)

img[src$=".png"] {
    border-radius: 10px;
}

💡 .png로 끝나는 src 속성을 가진 <img> 요소를 선택한다.

✅ 특정 값을 포함하는 요소 선택 (*=)

div[class*="box"] {
    padding: 20px;
}

💡 class 속성에 box라는 단어가 포함된 요소를 선택한다.


4. 관계 선택자 (Combinators)

HTML 요소 간의 관계를 기준으로 선택할 수 있다.

✅ 자식 선택자 (>)

바로 아래의 자식 요소만 선택한다.

div > p {
    color: red;
}

💡 <div>의 직속 자식 <p> 태그만 선택한다.

✅ 하위(후손) 선택자 (공백)

자식뿐만 아니라 모든 하위 요소를 선택한다.

div p {
    color: blue;
}

💡 <div> 내부에 있는 모든 <p> 태그를 선택한다.

✅ 인접 형제 선택자 (+)

바로 다음에 오는 형제 요소를 선택한다.

h1 + p {
    font-weight: bold;
}

💡 <h1> 태그 바로 뒤에 오는 <p> 태그만 선택한다.

✅ 일반 형제 선택자 (~)

동일한 부모를 가진 모든 형제 요소를 선택한다.

h1 ~ p {
    color: gray;
}

💡 <h1> 이후에 나오는 모든 <p> 태그를 선택한다.


5. 가상 클래스 (Pseudo-classes)

특정 상태의 요소를 선택할 때 사용한다.

✅ 마우스를 올린 상태 (:hover)

a:hover {
    color: orange;
}

💡 마우스를 올리면 링크 색상이 주황색으로 변경된다.

✅ 첫 번째 요소 선택 (:first-child)

p:first-child {
    font-size: 20px;
}

💡 부모 요소의 첫 번째 <p> 태그를 선택한다.

✅ 마지막 요소 선택 (:last-child)

div:last-child {
    background-color: lightgray;
}

💡 부모 요소의 마지막 <div>만 선택한다.


6. 가상 요소 (Pseudo-elements)

HTML의 특정 부분을 선택하여 스타일을 적용한다.

✅ 첫 글자 스타일 (::first-letter)

p::first-letter {
    font-size: 24px;
    font-weight: bold;
}

💡 <p> 태그의 첫 글자를 크게 표시한다.

✅ 첫 줄 스타일 (::first-line)

p::first-line {
    color: red;
}

💡 <p> 태그의 첫 줄만 빨간색으로 표시한다.

✅ 내용 추가 (::before, ::after)

div::before {
    content: "★ ";
    color: gold;
}

💡 <div> 앞에 ★ 아이콘을 추가한다.


7. 선택자 우선순위 (Specificity)

CSS에서 여러 선택자가 겹칠 경우 적용 우선순위는 다음과 같다.

  1. 인라인 스타일 (style="") >
  2. ID 선택자 (#id) >
  3. 클래스, 속성, 가상 클래스 (.class, [attr], :hover) >
  4. 태그 선택자 (div, p) >
  5. 전체 선택자 (*)

✅ 팁: 스타일이 적용되지 않는다면, 선택자 우선순위를 확인해 보자!


결론

CSS 선택자는 웹 디자인에서 필수적인 요소이다. 기본 선택자부터 속성, 관계, 가상 요소까지 다양한 선택자를 활용하면 더욱 효율적인 스타일링이 가능하다. 프로젝트에 맞게 적절한 선택자를 사용해 보자! 🚀

[CSS]: 함수(func) [CSS] Layout: 플렉스(flex)

You may also like

See all HTML-CSS
01 Mar 2024 [CSS] Layout: 플렉스(flex)
frontend
HTML-CSS

[CSS] Layout: 플렉스(flex)

17 Feb 2024 [CSS]: 함수(func)
frontend
HTML-CSS

[CSS]: 함수(func)

15 Feb 2024 [CSS]: 크기(size)
frontend
HTML-CSS

[CSS]: 크기(size)

Jay Kim

Jay Kim

Web development, data engineering for human for the Earth. I share posts, free resources and inspiration.

Rest
Lifestyle
Hobby
Hobby
Hobby
Hobby
2025 © Jay's Cookbook. Crafted & Designed by Artem Sheludko.