웹 개발 강의 6편 - 선택자
5강에서 쓴 규칙은 하나였고, body 에 적용되어 전체로 흘러내렸습니다.
오늘은 원하는 것만 골라내는 법을 배웁니다. 4강에서 구역에 이름을 붙인 이유가
여기서 드러납니다.
선택자 네 가지
| 선택자 | 고르는 것 | 예 |
|---|---|---|
h1 | 그 태그를 가진 모든 요소 | h1 { font-size: 40px; } |
#contact | 그 id 를 가진 요소 하나 | #contact { padding: 16px; } |
.note | 그 class 를 가진 요소 전부 | .note { color: grey; } |
#contact h2 | #contact 안에 있는 h2 만 | #contact h2 { margin: 0; } |
앞에 아무것도 없으면 태그, 샵이면 id, 점이면 class 입니다.
둘 사이의 공백은 안쪽이라는 뜻입니다. 반점은 둘 다라는 뜻이고 공백은
안쪽입니다. 이 둘만 구분해두시면 나머지는 쉽습니다.
태그 이름으로 고르기
style.css 의 /* headings */ 주석 아래에 넣습니다.
h1 {
font-size: 40px;
margin-bottom: 4px;
}
h2 {
margin-top: 36px;
border-bottom: 2px solid #C98B1B;
padding-bottom: 6px;
}
페이지에 h1 은 하나뿐이라 그 규칙은 요소 하나를 건드립니다. h2 는 세 개이고,
셋 다 같이 바뀝니다.
border-bottom 은 제목 아래에 선을 그립니다. 굵기, 모양, 색을 그 순서대로
공백으로 띄어 적습니다.
규칙은 한 번만 썼는데 선이 세 개 그어집니다. 선택자가 존재하는 이유가 바로
이것입니다. 내일 제목을 하나 더 추가해도 똑같이 적용됩니다.
id 로 고르고, 공백으로 좁히기
/* blocks */ 주석 아래에 넣습니다.
#contact {
background: #FAF7F0;
border-radius: 10px;
padding: 16px 20px;
}
#contact h2 {
margin-top: 0;
border-bottom: none;
}
첫 규칙은 4강에서 이름 붙인 contact 구역을 고릅니다.
두 번째가 오늘의 핵심입니다. h2 를 고르는데, 그 구역 안에 있는 것만 고릅니다.
둘 사이의 공백이 그 일을 전부 하고 있습니다.
결과를 보시면 Contact 제목에만 선이 없고 나머지 두 개에는 그대로 있습니다.
규칙을 깨지 않고 예외를 만드는 방법입니다.
class 로 고르기
class 는 두 단계입니다. 먼저 HTML 의 태그에 붙입니다.
<p class="note">Everything here is hand written. No build step.</p>
그다음 /* text */ 주석 아래에 점으로 시작하는 규칙을 씁니다.
.note {
color: #6B7078;
font-size: 15px;
}
사람들이 빠뜨리는 것이 바로 그 점입니다. 점이 없으면 note 라는 태그를 찾게
되는데, 그런 태그는 없습니다.
같은 class 를 다른 문단에 붙이면 거기도 똑같이 적용됩니다. id 와의 차이를
한 문장으로 말하면 그것입니다.
확인하기
python -m http.server 5500
처음 실행하면 윈도우에서 방화벽 경고창이 뜰 수 있습니다. 개인 네트워크만 체크된 상태로 액세스 허용을 눌러주시면 됩니다. 이 서버는 본인 컴퓨터에서만 쓰는 것이라 공용 네트워크는 체크하지 않으셔도 됩니다.
브라우저에서 localhost:5500 으로 들어가시면 됩니다.
이름이 커졌고 제목마다 금색 선이 생겼습니다. Contact 덩어리는 크림색 배경 위에
카드처럼 올라앉았고, 그 제목에만 선이 없습니다. 회색 메모 줄도 한 줄 들어갔습니다.
규칙 여섯 개로 페이지가 드디어 페이지처럼 읽힙니다.
자주 발생하는 오류
첫째, class 선택자에 점을 빠뜨리는 경우입니다. 존재하지 않는 태그를 찾게 됩니다.
둘째, 공백 자리에 반점을 쓰는 경우입니다. 반점은 둘 다, 공백은 안쪽이라는
뜻입니다. 전혀 다른 규칙이 됩니다.
셋째, class 가 여러 번 나오는 걸 걱정하는 경우인데, 원래 그런 것입니다.
유일해야 하는 것은 id 뿐입니다.
연습 문제
ul선택자로 목록에 규칙을 하나 써보세요.class="note"를 다른 문단에도 붙여보고 둘 다 바뀌는지 확인해보세요.#contact p규칙을 써서 그 구역의 문단만 색을 바꿔보세요.
다음 편
7강에서는 박스 모델을 다룹니다. 모든 요소가 왜 사각형인지 알게 됩니다.
영상으로 보시려면 링바이트에 같은 내용이 올라가 있습니다.
강의 노트도 함께 보실 수 있습니다.