선택자와 선택자를 연결해 적용 대상을 제한하는 선택자부모 요소에 포함된 모든 하위 요소에 스타일이 적용됨....
<title>고급 선택자</title>
<style>
body {
background-color:#eee;
}
section {
width:600px;
margin:20px auto;
/* border: 1px solid blue; */
}
p {
width:500px;
padding:10px;
background-color:#fff;
border:1px solid #ccc;
line-height:2;
}
/* section 요소의 모든 하위 p 요소의 스타일 바꾸기 */
/* 여백을 두는 것이 하위 선택자 section()p 같이*/
/* 여백을 사용해야 자손으로 이어질 수 있음. */
section p {
color:blue; /* 글자색을 파란색으로 */
}
</style>
</head>
<body>
<section>
<h1>예약 방법 & 사용 요금</h1>
<p>아직 온라인 예약 신청이 준비되어 있지 않습니다. <br>전화(xxx-xxxx-xxxx)로 문의 바랍니다.</p>
<div>
<p>가족실(2~4인) : 60,000원/일</p>
<p>도미토리(4인 공용) : 25,000원/일</p>
</div>
</section>
</body>
</html>


section p {}자식 요소에 스타일을 적용하는 선택자...
<title>고급 선택자</title>
<style>
body {
background-color:#eee;
}
section {
width:600px;
margin:20px auto;
}
p {
width:500px;
padding:10px;
background-color:#fff;
border:1px solid #ccc;
line-height:2;
}
/* section 요소의 자식 p 요소의 스타일 바꾸기 */
section > p {/* section 요소 안에 포함된 p 요소 중 자식 p 요소에만 적용함 */
color:blue; /* 글자색을 파란색으로 */
}
div > p{
color: red;
}
</style>
</head>
<body>
<section>
<h1>예약 방법 & 사용 요금</h1>
<p>아직 온라인 예약 신청이 준비되어 있지 않습니다. <br>전화(xxx-xxxx-xxxx)로 문의 바랍니다.</p>
<div>
<p>가족실(2~4인) : 60,000원/일</p>
<p>도미토리(4인 공용) : 25,000원/일</p>
</section>
</body>
</html>


section > p {}같은 부모를 가진 형제 요소 중 첫 번째 동생 요소에만 스타일 적용...
<title>고급 선택자</title>
<style>
body {
background-color:#eee;
}
section {
width:600px;
margin:20px auto;
}
p {
width:500px;
padding:10px;
background-color:#fff;
border:1px solid #ccc;
line-height:2;
}
/* h1 요소의 형제 요소 중 첫번째 p 요소의 스타일 바꾸기 */
h1 + p{
background-color:#222; /* 배경은 검은색으로 */
color: #fff; /* 글자는 흰색으로 */
}
</style>
</head>
<body>
<section>
<!-- h1과 p는 형제 자매 관계 -->
<h1>예약 방법 & 이용 요금</h1>
<p>아직 온라인 예약 신청이 준비되어 있지 않습니다. <br>전화(xxx-xxxx-xxxx)로 문의 바랍니다.</p>
<p>가족실(2~4인) : 60,000원/일</p>
<p>도미토리(4인 공용) : 25,000원/일</p>
</section>
</body>
</html>


h1 + p { }형제 요소들에 스타일 적용...
<title>고급 선택자</title>
<style>
body {
background-color:#eee;
}
section {
width:600px;
margin:20px auto;
}
p {
width:500px;
padding:10px;
background-color:#fff;
border:1px solid #ccc;
line-height:2;
}
/* h1 요소와 형제인 모든 p 요소의 스타일 바꾸기 */
h1 ~ p{
background-color:#222; /* 배경은 검은색으로 */
color:#fff; /* 글자는 흰색으로 */
}
</style>
</head>
<body>
<section>
<h1>예약 방법 & 이용 요금</h1>
<p>아직 온라인 예약 신청이 준비되어 있지 않습니다. <br>전화(xxx-xxxx-xxxx)로 문의 바랍니다.</p>
<p>가족실(2~4인) : 60,000원/일</p>
<p>도미토리(4인 공용) : 25,000원/일</p>
</section>
</body>
</html>


h1 ~ p { }지정한 속성을 가진 요소를 찾아 스타일 적용
| 종류 | 선택 요소 | 예시 |
|---|---|---|
| [속성] | 해당 속성이 있는 요소 | [required] |
| [속성=값] | 지정한 속성값이 있는 요소 | [target = _blank] |
| [속성 ~= 값] | 지정한 속성값이 포함된 요소 (단어별) | [class ~= button] |
| [속성 | = 값] | 지정한 속성값이 포함된 요소 (하이픈 포함, 단어별) |
| [속성 ^= 값] | 지정한 속성값으로 시작하는 요소 | [title ^= eng] |
| [속성 $= 값] | 지정한 속성값으로 끝나는 요소 | [href $= xls] |
| [속성 *= 값] | 지정한 속성값의 일부가 일치하는 요소 | [href *= w3] |
코드 예시 )
...
<title>속성 선택자</title>
<style>
ul {
list-style:none;
}
li {
width:120px;
display:inline-block;
margin:10px;
}
li a {
padding: 5px 20px;
font-size: 14px;
text-decoration: none;
font-weight: bold;
}
/* id 속성이 있는 a 요소의 스타일 지정하기 */
/* [] -> 속성 선택자 */
/* a 요소 중에서 id 속성값이 있는 요소만 적용 */
a[id]{
background:yellow; /* 배경색 지정 */
border:1px solid #ccc; /* 테두리 지정 */
font-weight:normal; /* 글자 굵기 지정 */
}
</style>
</head>
<body>
<ul>
<li><a>메인 메뉴 : </a></li>
<li><a href="#" id="class1">메뉴 1</a></li>
<li><a href="#" id="class2">메뉴 2</a></li>
<li><a href="#">메뉴 3</a></li>
<li><a href="#">메뉴 4</a></li>
</ul>
</body>
</html>


a[id] {}주어진 속성과 속성 값이 일치하는 요소를 찾아 스타일 적용
코드 예시 )
...
<title>속성 선택자</title>
<style>
ul {
list-style:none;
}
li {
display: inline-block;
padding: 5px 30px;
border: 1px solid black;
}
li a {
font-size: 16px;
text-decoration: none;
color:#000;
}
/* target 속성 값이 _blank인 a 요소에만 스타일 지정하기 */
a[target="_blank"]{
/* 오른쪽에 30px 여백 */
padding-right:30px;
background:url(images/newwindow.png) no-repeat center right; /* 배경 이미지 지정 */
color: red;
}
</style>
</head>
<body>
<ul>
<li><a href="https://www.w3schools.com/html/" target="_blank">HTML</a></li>
<li><a href="https://www.w3.org/TR/selectors">CSS Selector Level 3</a></li>
<li><a href="https://www.w3.org/TR/css3-mediaqueries">미디어쿼리</a></li>
</ul>
</body>
</html>


a[target=”_blank”] {}여러 속성 값 중에 해당 값이 포함되어 있는 요소를 찾아 스타일 적용
코드 예시 )
...
<title>속성 선택자</title>
<style>
ul { list-style:none; }
li {
display:inline-block;
margin:10px;
}
li a {
padding: 5px 20px;
font-size: 14px;
color: blue;
text-decoration: none;
}
.flat {
background:#eee;
border:1px solid #222;
}
/* class 속성 값에 button이 포함된 요소에 스타일 지정하기 */
a[class ~= "button"]{
box-shadow:rgba(0,0,0,0.5) 4px 4px; /* 그림자 지정 */
border-radius: 5px; /* 테두리를 둥글게 */
border:1px solid #222; /* 테두리 지정 */
}
</style>
</head>
<body>
<ul>
<li><a href="#" class="flat">메뉴 1</a></li>
<li><a href="#" class="flat">메뉴 2</a></li>
<li><a href="#" class="button">메뉴 3</a></li>
<li><a href="#" class="li button" >메뉴 4</a></li>
</ul>
</body>
</html>


a[class ~= “button”] {}특정 값이 포함된 속성을 가진 요소를 찾아 스타일 적용...
<title>속성 선택자</title>
<style>
ul { list-style:none; }
li {
display:inline-block;
margin:10px;
}
li a {
padding: 5px 20px;
font-size: 14px;
color: blue;
text-decoration: none;
}
/* 속성 값의 시작 부분이 일치하는 요소에 스타일 지정하기 */
a[class |= "us"]{ /* 속성값이 "us"이거나 "us-"로 시작하는 요소를 찾는 선택자 */
/* 속성값이 us로 일치 */
background: url(images/us.png) no-repeat left center;
}
a[class |= "jap"]{ /* 속성값이 "jap"이거나 "jap-"로 시작하는 요소를 찾는 선택자 */
/* 하지만, 속성값이 jap 또는 jap- 가 아닌 ja 이기 때문에 적용이 안됨 */
background: url(images/jp.png) no-repeat left center;
}
</style>
</head>
<body>
<ul>
<li>외국어 서비스 : </li>
<li><a href="#" class="us-english">영어</a></li>
<li><a href="#" class="ja-pan">일본어</a></li>
</ul>
</body>
</html>


a[class |= “us”] {}a[class |= “jap”] {}특정 값으로 시작하는 속성을 가진 요소를 찾아 스타일 적용...
<title>속성 선택자</title>
<style>
ul {
list-style:none;
}
li {
display:inline-block;
margin:10px;
}
li a {
padding: 5px 20px;
font-size: 14px;
color: blue;
text-decoration: none;
}
/* 속성 값의 시작 부분이 일치하는 요소에 스타일 지정하기 */
a[title ^= "eng"]{ /* 속성값이 "eng"로 시작하는 요소를 찾는 선택자 */
background: url(images/us.png) no-repeat left center;
padding: 5px 25px;
}
a[title ^= "jap"]{ /* 속성값이 "jap"로 시작하는 요소를 찾는 선택자 */
background: url(images/jp.png) no-repeat left center;
padding: 5px 25px;
}
</style>
</head>
<body>
<ul>
<li>외국어 서비스 : </li>
<li><a href="#" title="english">영어</a></li>
<li><a href="#" title="asiajapan">일본어</a></li>
</ul>
</body>
</html>


a[title ^= “eng”] {}a[title ^= “jap”] {}특정 값으로 끝나는 속성을 가진 요소를 찾아 스타일 적용<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>속성 선택자</title>
<style>
ul {
list-style:square;
}
li a {
line-height:30px;
font-size: 14px;
color: blue;
text-decoration: none;
}
/* 속성 값의 끝 부분이 일치하는 요소에 스타일 지정하기 */
a[href $= hwp]{ /* 연결한 파일의 확장자가 hwp인 링크 */
background: url(images/hwp_icon.gif) center right no-repeat; /* 배경으로 hwp 아이콘 표시 */
padding-right: 25px; /* 아이콘을 표시할 수 있도록 오른쪽에 25px 여백 */
}
a[href $= xls]{ /* 연결한 파일의 확장자가 hwp인 링크 */
background: url(images/excel_icon.gif) center right no-repeat; /* 배경으로 hwp 아이콘 표시 */
padding-right: 25px; /* 아이콘을 표시할 수 있도록 오른쪽에 25px 여백 */
}
</style>
</head>
<body>
<h3>회사 소개 파일 다운 받기</h3>
<ul>
<li><a href="intro.hwp">hwp 파일</a></li>
<li><a href="intro.xls">엑셀 파일</a></li>
</ul>
</body>
</html>


a[href $= hwp] {}a[href $= xls] {}값의 일부가 일치하는 속성을 가진 요소를 찾아 스타일 적용<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>속성 선택자</title>
<style>
ul {
list-style:circle;
}
li {
padding: 5px 30px;
}
li a {
font-size: 16px;
color: black;
text-decoration: none;
}
/* 속성 값의 일부가 일치하는 요소에 스타일 지정하기 */
a[href *= "w3"]{ /* href 속성값 중에 w3가 있는 a 요소를 찾는 선택자 */
background:blue;
color:white;
}
</style>
</head>
<body>
<h1>HTML5 참고 사이트 </h1>
<p>(아래 링크 중 파란색 배경의 링크는 W3C 사이트로 연결됩니다.)</p>
<ul>
<li><a href="https://html.spec.whatwg.org/">HTML 표준안 사이트</a></li>
<li><a href="https://caniuse.com/">HTML 지원 여부 체크</a></li>
<li><a href="https://www.w3.org/TR/css3-mediaqueries">미디어쿼리</a></li>
</ul>
</body>
</html>


a[href *= “w”] {}