선택자(Selector)

✒️ 2025-05-16 12:41 내용 수정


스타일을 적용할 대상을 선택하기 위해 사용하는 것

선택자 설명
* 전체 선택자
HTML태그 HTML 선택자
class="클래스" class 선택자, .클래스로 접근
id="아이디" id 선택자, #id명으로 접근
name="이름" name 선택자
선택자1, 선택자2, 선택자3 그룹 선택자
선택자1 하위선택자1 자손 선택자
선택자1 > 하위선택자1 직계 자손 선택자
동위선택자 ~ 동위선택자1 동위 선택자
동위선택자 + 동위선택자1 인접 동위 선택자
선택자[속성] 지정한 속성 선택

class 선택자(Class Selector)

.my-class.test{}
.home .window{}
표기 설명
.클래스1.클래스2 클래스1과 클래스2가 둘 다 있는 요소를 선택
.클래스1 .클래스2 클래스1의 하위 태그 중 클래스2인 요소를 선택
<header>
	<style>
		.cls1.cls2{background-color: red;}
		.cls1 .cls2{background-color: yellow;}
	</style>
</header>

<body>
	<!-- red -->
	<div class="cls1 cls2"></div>
	
	<div class="cls1">
		<!-- yellow -->
		<div class="cls2"></div>
	</div>
</body>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Insert title here</title>
		<style type="text/css">
			p{color:blue}
			p.c1{color:darkgreen}			
			.c1{color:red}
			
			
			h1{color:blueviolet}		
			div.box .h{color:sandybrown}		
			span{color:teal}		
			div.box2 h1 .span1{color:yellow}		
			.span2{color:blue}
		</style>
	</head>
	<body>
		<h1 class="c1">h1 태그의 클래스</h1>
		<p class="c1">p 태그의 클래스</p>
		<p>클래스가 없는 p 태그</p>
		
		<hr>
		
		<div class="box">
			<h1>h1의 <span>이 부분만</span>바꿔줍니다.</h1>
			<h1 class="h">이 h1은 어떻게 바뀔까요.</h1>
			
			<div class="box2">
				<h1>h1의 <span class="span1">이 부분은 위쪽과 다르게</span>바꿔줍니다.</h1>
			</div>
		</div>
		<h1>h1의 <span class=span2>이 부분은 또 다르게</span>바꿔줍니다.</h1>
	</body>
</html>

css 예제2.png


id 선택자(ID Selector)

#my-id{}
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Insert title here</title>
		<style type="text/css">
			p{color:blue}
			#id1{color:green}
			#id2{color:darkred}
		</style>
	</head>
	<body>
		<p id="id1">p태그의 id 태그를 테스트합니다.</p>
		<p id="id2">id 태그는 중복되면 안됩니다.</p>
		<p>id 태그가 없다면 색을 이렇게 지정합니다.</p>
	</body>
</html>

css 예제3.png


속성 선택자(Attribute Selector)

input[type]
input[type="checkbox"]
input[type~="tel"]
선택자 설명
선택자[속성] 지정한 속성 선택
선택자[속성 = "속성값"] 특정 속성값을 선택
선택자[속성 ~= "속성값"] 특정 속성값을 포함. "-" 연결 단어 적용 X
선택자[속성 *= "속성값"] 특정 속성값 포함. 일부라도 포함하면 적용 O
선택자[속성 ^= "속성값"] 특정 속성값으로 시작할 때 선택
선택자[속성 $= "속성값"] 특정 속성값으로 끝날 때 선택

name 선택자(Name Selector)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Insert title here</title>
		<script>
			function result() {
				let f = document.forms[0];
				
				let text = f.txt.value;
				let pwd = f.pwd.value;
				let checkbox = f.cb.value;
				let button = f.bt.value;
		
				console.log(text);
				console.log(pwd);			
				console.log(checkbox);
				console.log(button);
			}			
		</script>
	</head>
	<body>
		<form>
			<ul>
				<li><input name="txt" value="text"></li>
				<li><input name="pwd" type="password"></li>		
				<li><input name="cb" type="checkbox"></li>
				<li><input name="bt" type="button" value="버튼" onclick="result()"></li>
			</ul>
		</form>
	</body>
</html>

name.png


직계 자식 선택자

ul > li {}
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>Insert title here</title>
	<style type="text/css">	
		#div1 h1{color:blue;}
		#div1 > h1{color:red;}
	</style>
</head>

<body>
	<div id="div1">
		<h1> div1의 직계자식 h1 </h1> <!--div1의 직계자식-->
		<div id="div2"> <!--div1의 직계자식-->
			<h1> h1 - 2 </h1>
		</div>
		<div id="div3"> <!--div1의 직계자식-->
			<h1> h1 - 3 </h1>
		</div>
	</div>
</body>
</html>

child 예제.png