반응형
1. 기본 선택자
1) 전체 선택자
- 모든 엘리먼트(Element - 태그)를 선택 - 비권장
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
*{margin: 0; padding: 0;}
</style>
</head>
<body>
<h2>전체 선택자</h2>
<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
</body>
</html>
2) 태그 선택자
- 태그명을 이용하여 엘리먼트 선택
- 태그명이 같은 다수의 엘리먼트가 선택되어 동일한 스타일 적용
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
h2 { color: green; }
p { color: blue; }
</style>
</head>
<body>
<h2>태그 선택자</h2>
<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
</body>
</html>
3) 클래스 선택자
- 태그의 class 속성값을 이용하여 엘리먼트 선택
- 태그 선택자와 구분하기 위해 클래스 선택자는 .으로 시작
- class 속성값이 같은 다수의 엘리먼트가 선택되어 동일한 스타일 적용
class 속성
- CSS 스타일 적용하기 위한 태그의 클래스명을 속성값으로 설정
- "동일한 class 속성값 설정 가능" - 같은 class 속성값을 사용하는 태그에 동일한 CSS 스타일 적용
- class 속성에는 "다수의 속성값을 설정 가능" - 공백으로 속성값 구분
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
.text1 { color: maroon; }
.text2 { color: lime; }
.text3 { text-align: center; }
</style>
</head>
<body>
<h2>클래스 선택자</h2>
<p class="text1">브라우저에 출력될 아주 중요한 내용입니다.</p>
<p class="text1 text3">브라우저에 출력될 아주 중요한 내용입니다.</p>
<p class="text2">브라우저에 출력될 아주 중요한 내용입니다.</p>
</body>
</html>
4) 아이디 선택자
- 태그의 id 속성값을 이용하여 엘리먼트 선택
- 태그 선택자와 구분하기 위해 아이디 선택자는 #으로 시작
- id 속성값을 사용하는 하나의 엘리먼트에만 스타일 적용
id 속성
- 태그를 구분하기 위한 식별자(고유값)를 속성값으로 설정
- id 속성은 태그를 구분하기 위해 사용하므로 "동일한 속성값 설정 불가능"
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
#text4 { color: olive; }
/* 선택자는 [,] 기호를 이용하여 여러개를 나열하여 엘리먼트 선택 가능 */
#text5 , #text6 { color: silver; }
</style>
</head>
<body>
<h2>아이디 선택자</h2>
<p id="text4">브라우저에 출력될 아주 중요한 내용입니다.</p>
<p id="text5">브라우저에 출력될 아주 중요한 내용입니다.</p>
<p id="text6">브라우저에 출력될 아주 중요한 내용입니다.</p>
</body>
</html>
2. 파생 선택자
1) 후손 선택자
- 부모 엘리먼트를 기준으로 모든 깊이의 엘리먼트(후손 엘리먼트) 선택
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
/* 형식) 선택자(부모) 선택자(후손) */
#super1 div { color: purple; }
</style>
</head>
<body>
<h2>후손 선택자</h2>
<div id="super1">
<div>사원이름</div>
<ul>
<li><div>홍길동</div></li>
<li><div>임꺽정</div></li>
<li><div>전우치</div></li>
</ul>
</div>
</body>
</html>
2) 자식 선택자
- 부모 엘리먼트를 기준으로 첫번째 깊이의 엘리먼트(자식 엘리먼트) 선택
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
/* 형식) 선택자(부모) > 선택자(자식) */
#super2 > div { color: gold;c }
</style>
</head>
<body>
<h2>자식 선택자</h2>
<div id="super2">
<div>사원이름</div>
<ul>
<li><div>홍길동</div></li>
<li><div>임꺽정</div></li>
<li><div>전우치</div></li>
</ul>
</div>
</body>
</html>
3) 필터 선택자
- 선택된 다수의 엘리먼트 중 특정 엘리먼트 선택
- 필터 선택자는 반드시 클래스 선택자를 이용해야만 구현 가능
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
#super3 div{ color:orange; }
/* 형식) 선택자.선택자 */
#super3 div.choice{ color: lime; }
</style>
</head>
<body>
<h2>필터 선택자</h2>
<div id="super3">
<div>사원이름</div>
<ul>
<li><div>홍길동</div></li>
<li><div class="choice">임꺽정</div></li>
<li><div>전우치</div></li>
</ul>
</div>
</body>
</html>
4) 형제 선택자
- 선택된 하나의 엘리먼트 다음에 위치한 같은 깊이의 모든 엘리먼트 선택
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
/* 형식) 선택자 ~ 선택자 */
#p1 ~ p { color : fuchsia;}
</style>
</head>
<body>
<h2>형제 선택자</h2>
<div>
<p id="p1">브라우저에 출력될 아주 중요한 내용입니다</p>
<p>브라우저에 출력될 아주 중요한 내용입니다</p>
<p>브라우저에 출력될 아주 중요한 내용입니다</p>
</div>
</body>
</html>
5) 인접 형제 선택자
- 선택된 하나의 엘리먼트 다음에 위치한 같은 깊이의 첫번째 엘리먼트 선택
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
/* 형식) 선택자 + 선택자 */
#p2 + p { color : red;}
</style>
</head>
<body>
<h2>인접 형제 선택자</h2>
<div>
<p id="p2">브라우저에 출력될 아주 중요한 내용입니다</p>
<p>브라우저에 출력될 아주 중요한 내용입니다</p>
<p>브라우저에 출력될 아주 중요한 내용입니다</p>
</div>
</body>
</html>
3. 속성 선택자
- 태그의 속성과 속성값을 이용하여 스타일 적용 가능
- 태그의 속성이나 속성값을 이용하여 엘리먼트 선택
1) 선택자[속성]
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
/* 태그 속성이 존재하는 엘리먼트 선택 */
a[href]{
color: green;
}
</style>
</head>
<body>
<div><a>하이퍼 링크 기능을 제공하는 태그 -1 </a></div>
<div><a href="#">하이퍼 링크 기능을 제공하는 태그 -2 </a></div>
<div><a href="#abc">하이퍼 링크 기능을 제공하는 태그 -3 </a></div>
</body>
</html>
2) 선택자[속성="비교값"]
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
/* 태그 속성값이 비교값과 같은 엘리먼트 선택 */
a[href="#abc"]{
color: blue;
}
</style>
</head>
<body>
<div><a>하이퍼 링크 기능을 제공하는 태그 -1 </a></div>
<div><a href="#">하이퍼 링크 기능을 제공하는 태그 -2 </a></div>
<div><a href="#abc">하이퍼 링크 기능을 제공하는 태그 -3 </a></div>
</body>
</html>
3) 선택자[속성*="비교값"]
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
/* 태그 속성값에 비교값이 포함된 엘리먼트 선택*/
div[title*="여성"]{
color : gold;
}
</style>
</head>
<body>
<div title="여성">화장품-1</div>
<div title="화장품">화장품-2</div>
<div title="여성화장품">화장품-3</div>
<div title="여성 화장품">화장품-4</div>
<div title="남성화장품">화장품-5</div>
<div title="화장품남성">화장품-6</div>
</body>
</html>
4) 선택자[속성~="비교값"]
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
/* 태그 속성값에 비교값이 하나의 단어로 포함된 엘리먼트 선택 */
div[title~="여성"]{
color : silver;
}
</style>
</head>
<body>
<div title="여성">화장품-1</div>
<div title="화장품">화장품-2</div>
<div title="여성화장품">화장품-3</div>
<div title="여성 화장품">화장품-4</div>
<div title="남성화장품">화장품-5</div>
<div title="화장품남성">화장품-6</div>
</body>
</html>
5) 선택자[속성^="비교값"]
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
/* 태그 속성값이 비교값으로 시작되는 엘리먼트 선택 */
div[title^="남성"]{
color : orange;
}
</style>
</head>
<body>
<div title="여성">화장품-1</div>
<div title="화장품">화장품-2</div>
<div title="여성화장품">화장품-3</div>
<div title="여성 화장품">화장품-4</div>
<div title="남성화장품">화장품-5</div>
<div title="화장품남성">화장품-6</div>
</body>
</html>
6) 선택자[속성$="비교값"]
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
/* 태그 속성값이 비교값으로 종료되는 엘리먼트 선택 */
div[title^="남성"]{
color : maroon;
}
</style>
</head>
<body>
<div title="여성">화장품-1</div>
<div title="화장품">화장품-2</div>
<div title="여성화장품">화장품-3</div>
<div title="여성 화장품">화장품-4</div>
<div title="남성화장품">화장품-5</div>
<div title="화장품남성">화장품-6</div>
</body>
</html>
4. 가상 선택자
- 태그의 상태에 따라 다른 스타일을 적용하기 위해 사용
- 선택된 엘리먼트의 상태에 의해 CSS 스타일을 다르게 적용
1) :link
- a 태그로 설정된 URL 주소의 웹문서를 브라우저로 한번도 요청하지 않은 상태
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
div {font-size: 20px; line-height: 35px;}
a {text-decoration: none; color: orange;}
a:link {color: lime;}
</style>
</head>
<body>
<div>
<a href="https://www.daum.net?bbb">다음</a>
<a href="https://www.naver.com">네이버</a>
<a href="https://www.google.com">구글</a>
</div>
</body>
</html>
2) :visited
- a 태그로 설정된 URL 주소의 웹문서를 브라우저로 한번이상 요청한 상태
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
div {font-size: 20px; line-height: 35px;}
a {text-decoration: none; color: orange;}
a:link {color: lime;}
a:visited {color: pink;}
</style>
</head>
<body>
<div>
<a href="https://www.daum.net?bbb">다음</a>
<a href="https://www.naver.com">네이버</a>
<a href="https://www.google.com">구글</a>
</div>
</body>
</html>
3) :active
- 선택된 엘리먼트에 마우스 커서를 위치하여 버튼으로 누르고 있는 상태
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
div {font-size: 20px; line-height: 35px;}
a {text-decoration: none; color: orange;}
a:link {color: lime;}
a:visited {color: pink;}
a:active {color: lightgray;}
</style>
</head>
<body>
<div>
<a href="https://www.daum.net?bbb">다음</a>
<a href="https://www.naver.com">네이버</a>
<a href="https://www.google.com">구글</a>
</div>
</body>
</html>
4) :hover
- 선택된 엘리먼트에 마우스 커서를 위치하고 있는 상태
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
div {font-size: 20px; line-height: 35px;}
a {text-decoration: none; color: orange;}
a:link {color: lime;}
a:visited {color: pink;}
a:active {color: lightgray;}
a:hover {color: blue;text-decoration: underline;}
</style>
</head>
<body>
<div>
<a href="https://www.daum.net?bbb">다음</a>
<a href="https://www.naver.com">네이버</a>
<a href="https://www.google.com">구글</a>
</div>
</body>
</html>
5) :first-child
- 선택된 다수의 엘리먼트 중 첫번째 엘리먼트 선택
ul li:first-child { color: red;}
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
ul li:first-child { color: red;}
</style>
</head>
<body>
<ul>
<li>홍길동</li>
<li>임꺽정</li>
<li>전우치</li>
<li>일지매</li>
<li>장길산</li>
</ul>
</body>
</html>
6) :last-child
- 선택된 다수의 엘리먼트 중 마지막 엘리먼트 선택
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
ul li:last-child { color: green;}
</style>
</head>
<body>
<ul>
<li>홍길동</li>
<li>임꺽정</li>
<li>전우치</li>
<li>일지매</li>
<li>장길산</li>
</ul>
</body>
</html>
7) :nth-child(x)
- 선택된 다수의 엘리먼트 중 x번째 위치한 엘리먼트 선택
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
ul li:nth-child(2) { color: blue;}
</style>
</head>
<body>
<ul>
<li>홍길동</li>
<li>임꺽정</li>
<li>전우치</li>
<li>일지매</li>
<li>장길산</li>
</ul>
</body>
</html>
8) :nth-last-child(x)
- 선택된 다수의 엘리먼트 중 뒤에서 x번째 위치한 엘리먼트 선택
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
ul li:nth-last-child(2) { color: silver;}
</style>
</head>
<body>
<ul>
<li>홍길동</li>
<li>임꺽정</li>
<li>전우치</li>
<li>일지매</li>
<li>장길산</li>
</ul>
</body>
</html>
9) :nth-child(2n-1)
- 선택된 다수의 엘리먼트 중 홀수 번째 위치한 엘리먼트 선택
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
ol li:nth-child(2n-1) { color: teal;}
/* nth-child(2n-1) 대신 nth-child(odd) 사용 가능 */
ol li:nth-child(odd) { color: teal;}
</style>
</head>
<body>
<ol>
<li>홍길동</li>
<li>임꺽정</li>
<li>전우치</li>
<li>일지매</li>
<li>장길산</li>
</ol>
</body>
</html>
10) :nth-child(2n)
- 선택된 다수의 엘리먼트 중 짝수 번째 위치한 엘리먼트 선택 */
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
ol li:nth-child(2n) { color: fuchsia;}
/* nth-child(2n) 대신 nth-child(even) 사용 가능 */
ol li:nth-child(even) { color: fuchsia;}
</style>
</head>
<body>
<ol>
<li>홍길동</li>
<li>임꺽정</li>
<li>전우치</li>
<li>일지매</li>
<li>장길산</li>
</ol>
</body>
</html>
11) :nth-child(3n)
- 선택된 다수의 엘리먼트 중 x의 배수번째 위치한 엘리먼트 선택
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
ol li:nth-child(3n) { color: pink;}
</style>
</head>
<body>
<ol>
<li>홍길동</li>
<li>임꺽정</li>
<li>전우치</li>
<li>일지매</li>
<li>장길산</li>
</ol>
</body>
</html>
12) :not(선택자)
- 선택자의 엘리먼트를 제외한 나머지 엘리먼트 선택
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
input { border: 1px solid black; }
input[type="text"] { border: 1px solid maroon; }
input:not([type="text"]) { border: 1px solid orange; }
</style>
</head>
<body>
<table>
<tr>
<td>아이디</td>
<td><input type="text" name="id" value="abc123"></td>
</tr>
<tr>
<td>비밀번호</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td>이름</td>
<td><input type="text" name="name" value="홍길동" disabled="disabled"></td>
</tr>
<tr>
<td>이메일</td>
<td><input type="email" name="email"></td>
</tr>
</table>
</body>
</html>
13) :disabled & :checked & :selected
- :disabled : 선택된 엘리먼트가 비활성화 상태인 경우
- :checked : 선택된 엘리먼트가(<input>의 radio 또는 checkbox)가 선택된 상태인 경우
- :selected : 선택된 엘리먼트가(<select>의 option )가 선택된 상태인 경우
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
input[type="text"]:disabled { border: 1px dotted red; }
</style>
</head>
<body>
<table>
<tr>
<td>아이디</td>
<td><input type="text" name="id" value="abc123"></td>
</tr>
<tr>
<td>비밀번호</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td>이름</td>
<td><input type="text" name="name" value="홍길동" disabled="disabled"></td>
</tr>
<tr>
<td>이메일</td>
<td><input type="email" name="email"></td>
</tr>
</table>
</body>
</html>
14) :focus
- 선택된 엘리먼트(입력태그)에 입력촛점이 위치한 상태인 경우
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style>
input:focus { border: 3px double green;}
</style>
</head>
<body>
<table>
<tr>
<td>아이디</td>
<td><input type="text" name="id" value="abc123"></td>
</tr>
<tr>
<td>비밀번호</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td>이름</td>
<td><input type="text" name="name" value="홍길동" disabled="disabled"></td>
</tr>
<tr>
<td>이메일</td>
<td><input type="email" name="email"></td>
</tr>
</table>
</body>
</html>
반응형
'web > css' 카테고리의 다른 글
[css] 6. 박스모델 관련 스타일 속성 (0) | 2024.05.02 |
---|---|
[css] 5. 배경 관련 스타일 속성 (0) | 2024.05.02 |
[css] 4. 문장(텍스트) | 목록 | 글자색 관련 스타일 속성 (0) | 2024.05.01 |
[css] 3. 글꼴 | 글자 | 글자간격 | 공백 관련 스타일 속성 (0) | 2024.05.01 |
[css] 1. CSS개념 (0) | 2024.04.30 |