클래스 main을 div 에 적용할 경우 오류이라는 내용이 이해가 안되는데.. 구체적인 예를 들어주시고
마지막 줄 etc셀렉터를 p 에 사용할 수 없는 경우도 모르겠어요.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>셀렉터 만들기</title>
<style>
div.main {color:red;}
body.main{ color:blue;}
#etc { color: brown;}
</style>
</head>
<body class="main">
<h3>Web Programming</h3>
<hr>
<div class="main">
<p id="etc">2학기 <strong>학습 내용</strong></p>
<ul>
<li>HTML5</li>
<li><strong>CSS</strong></li>
<li>JAVASCRIPT</li>
</ul>
<div>60점 이하는 F!</div>
</div>
</body>
</html>
질문에 있는 웹 페이지는 171페이지에 있는 것과 다르네요.
1) 책 170~171페이지에는 다음 셀렉터가 있는데
body.main{ background : aliceblue;}
이것은 배경을 aliceblue로 칠하는 것은 <body class="main">... </body>에만 적용이 되고,
<div class="main"> ... </div> 태그에 적용되지 않는다는 뜻입니다.
class="main"을 사용하는 모든 태그에 CSS를 적용하고자 한다면 셀렉터는 .main{ background : aliceblue;}로 만들어야 합니다.
질문자의 소스에는 다음의 셀렉터가 만들어져 있군요.
div.main {color:red;}
이 경우에 <div class="main"> Hello </div> 태그는 Hello 글자를 빨간색으로 출력합니다.
2) 역시 171 페이지의 하단부에서 설명한 것처럼
div#etc {background : mistyrose;} 의 셀렉터가 선언되어 있으면
배경을 미스티로즈 색으로 칠하는 것은 div 태그에서 etc 클래스를 사용하는 경우에만 적용되는 것입니다.
그러므로 <p id="etc">.... </p>에는 적용되지 않습니다.
하지만, 만일 다음과 같은 셀렉터가 만들어져 있다면
p#etc {color : red;}
<p id="etc">Hello</p>에 적용되어 Hello 글자가 빨간색으로 출력됩니다.