HTML CSS
CSS 선택자 (기본 선택자)
jiyoon12
2025. 5. 29. 12:29
1. CSS 선택자란?
- CSS 선택자는 HTML 문서에서 스타일을 적용하고 싶은 특정 요소를 "선택"하는 도구입니다. 마치 가게에서 물건을 고를 때 "이거 주세요!"라고 손으로 가리키는 것처럼, 선택자는 "이 요소에 스타일을 입히고 싶어요!"라고 CSS에게 알려주는 역할을 합니다.
- 예를 들어, HTML에 <p> 태그가 여러 개 있을 때, "모든 문단을 파란색으로 만들자"거나 "특정 클래스가 붙은 문단만 굵게 하자" 같은 작업을 선택자가 가능하게 해줍니다
- <h1> 태그를 선택해서 제목을 크게 만들기.
- .warning 클래스를 가진 요소를 빨간색으로 강조하기.
- #header라는 ID를 가진 부분에 배경색 추가하기.
선택자의 중요성
- 웹 페이지의 디자인과 레이아웃을 제어하는 첫 단계.
기본 문법
- 선택자 { 속성: 값; } 형태
기본 선택자 정리
2. 선택자의 종류
2.1 전체 선택자 ( * )
전체 선택자는 HTML 문서에 있는 모든 요소를 한꺼번에 선택합니다. 이름 그대로 "모두 다!"라는 뜻이에요. CSS에서 * 기호를 사용하며, 특정 태그나 조건 없이 페이지의 모든 요소에 스타일을 적용할 때 유용합니다.
- 주로 초기화 작업에 사용됩니다. 예를 들어, 브라우저마다 기본적으로 설정된 여백(margin)이나 패딩(padding)이 달라서 디자인에 혼란이 올 수 있는데, 이걸 한 번에 없애줄 때 많이 써요.
* {
margin: 0;
padding: 0;
}
2.2 태그 선택자
태그 선택자는 HTML 태그 이름을 직접 써서 해당 태그를 가진 모든 요소를 선택합니다. 예를 들어, <p> 태그를 선택하면 페이지에 있는 모든 문단에 스타일을 줄 수 있어요.
- 특정 "종류"의 요소를 한꺼번에 다루고 싶을 때 유용합니다.
p {
color: blue;
font-size: 16px;
}
: 이 코드는 모든 <p> 태그의 글자를 파란색으로 만들고, 크기를 16픽셀로 설정합니다.
2.3 클래스 선택자 (.class)
클래스 선택자는 HTML 요소의 class 속성을 기준으로 선택합니다. . 뒤에 클래스 이름을 붙여서 사용하며, 같은 클래스를 가진 여러 요소에 동시에 스타일을 적용할 수 있어요.
- 개발자가 직접 요소에 "이름표"를 붙이는 셈이라, 원하는 대상을 더 구체적으로 골라낼 수 있습니다.
<p class="highlight">중요한 문단</p>
<div class="highlight">중요한 박스</div>
.highlight {
background-color: yellow;
font-weight: bold;
}
2.4 ID 선택자 (#id)
ID 선택자는 HTML 요소의 id 속성을 기준으로 선택합니다. # 뒤에 ID 이름을 붙여서 사용하며, ID는 문서에서 고유해야 하므로 단 하나의 요소만 선택합니다.
- 클래스와 달리 "이거 하나만!"이라는 특수한 상황에 쓰입니다.
<div id="header">헤더 영역</div>
#header {
background-color: gray;
padding: 20px;
}
- 실습하기
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>기본 선택자 실습</title>
<style>
* {
margin: 0;
padding: 0;
/* 전체 초기화 */
}
h1 {
font-size: 24px;
}
.content {
color: purple;
}
#special-box {
background-color: yellow;
border: 2px solid blue;
}
</style>
</head>
<body>
<h1 class="title">제목</h1>
<p class="content">내용1</p>
<p class="content">내용2</p>
<div id="special-box">특별한 박스</div>
</body>
</html>
- 도전 문제
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
/* 문제 1: 모든 요소 글자 색상 회색 */
* {
color: gray;
}
/* 문제 2: 모든 <span> 태그 배경색 연한 파란색 */
span {
background-color: lightblue;
}
/* 문제 3: note 클래스 스타일링 */
.note {
color: brown;
font-size: 30px;
}
/* 문제 4: main-content ID 를 선택해서 원하는 대로 스타일링 */
#main-content {
color: palevioletred;
}
/* 문제 5: 모든 <header> 태그를 선택해서 원하는 대로 스타일링 */
header {
font-size: 30px;
text-align: center;
border: 5px solid lightseagreen ;
}
</style>
</head>
<body>
<header>헤더 영역입니다</header>
<h2>제목입니다</h2>
<span class="note">중요한 메모입니다</span>
<p>일반 문단입니다</p>
<span class="note">또 다른 메모입니다</span>
<section id="main-content">메인 콘텐츠입니다</section>
</body>
</html>