4단원 'CSS 첫걸음'의 여섯 레슨에서 11문제를 내고, 1~3단원에서 3문제를 섞었습니다. 앞 단원 문제가 어느 레슨인지는 정답을 펼치면 보입니다. 색 값이나 글자 크기, 고친 줄은 종이에 끝까지 쓴 뒤 정답을 펼치세요. 막히면 정답 앞의 힌트를 먼저 펼칩니다. 점수는 매기지 않습니다.
결과를 묻는 문제의 결과 화면과 잰 값은 정답을 펼치면 보입니다. 잰 값은 개발자 도구에서 그 요소를 골라 본 값과 같습니다. 컴퓨터가 있으면 문제의 HTML과 CSS를 index.html과 style.css로 저장해 link로 잇고, 브라우저로 열어 Elements 패널 · Styles 창과 함께 맞춰 봅니다. 결과는 모두 크롬 기준입니다.
이 단원을 이미 안다면 1 · 2 · 3 · 5 · 7 · 9번을 먼저 풀어 보세요. 건너뛸지 볼 때는 힌트를 펴지 않고 풉니다. 다 맞히면 이 단원은 건너뛰어도 됩니다. 틀린 문제와 힌트를 펴고 맞힌 문제는 정답 끝의 '다시 볼 레슨'으로 갑니다. 끝의 두 문제(13 · 14번)는 직접 만들어 보는 문제라, 건너뛸지 가릴 때는 풀지 않아도 됩니다. 12번까지 풀고 쉬었다가 13번부터 이어 풀어도 됩니다. ⟨컴퓨터⟩가 붙은 문제는 컴퓨터에서 파일을 만들어 풉니다. 폰으로만 본다면 그 문제 끝의 폰 물음 하나로 대신합니다.
문제 1
사진 동아리 공지의 제목을 빨갛게, 조금 크게, 가운데에 두려고 규칙 하나를 썼습니다. 이 코드는 화면에 어떻게 보일까요? 보기 셋 가운데 고르세요.
<h2>10월 출사</h2>
h2 {
color: #d70015;
font-size: 28px
text-align: center;
}
힌트
선언마다 끝에 ;이 있는지 보세요.
힌트 둘
;이 없는 곳이 있다면, 브라우저가 그 줄과 다음 줄을 어떻게 읽을지 따져 봅니다.
정답
① — 빨간 제목이 왼쪽에 있습니다.
- 3번 줄 끝에
;이 없어, 브라우저는28px부터 4번 줄text-align: center까지를font-size의 값 하나로 읽습니다. 그런 값은 알아듣지 못하니 이 선언을 오류 없이 버립니다(브라우저 규칙 4). 그래서 크기와 정렬 둘이 함께 빠집니다. - 2번 줄의 색 선언은 그대로 먹고, 크기는
h2의 기본 크기, 정렬은 기본인 왼쪽입니다. - ②
;이 빠지면 그 줄만 버려진다고 본 것입니다.;이 없는 3번 줄은 4번 줄까지 이어 읽혀, 정렬 선언도 함께 버려집니다. - ③ 규칙에 틀린 곳이 있으면 그 규칙이 통째로 안 먹는다고 본 것입니다(CSS도 멈춘다는 생각). 버리는 것은 알아듣지 못한 선언뿐입니다.
다시 볼 레슨: 규칙의 모양
문제 2
여행 일정 사이트의 규칙을 <style> 요소에서 style.css로 옮겼습니다. 복사할 때 <style>과 </style> 줄까지 함께 붙여 넣었습니다. (가) 페이지 바탕은 연회색 #f5f5f7로 칠해질까요? (나) 제목 h1의 글자색은 무엇일까요?
<h1>제주 2박 3일</h1>
<p>첫째 날: 성산</p>
<style>
body {
background-color: #f5f5f7;
}
h1 {
color: #005bb5;
}
</style>
힌트
CSS 파일 1번 줄에 무엇이 적혀 있는지 보고, 그 줄이 CSS의 꼴인지 HTML의 꼴인지 가려 보세요.
힌트 둘
CSS 파일 1번 줄의 글이 바로 아래 줄과 이어져 무엇처럼 읽히는지 보세요.
정답
받는 답: (가) 칠해지지 않는다 — 흰 바탕 그대로 · (나) #005bb5
body의background-colorrgba(0, 0, 0, 0)h1의 글자색rgb(0, 91, 181)
(나)는 rgb(0, 91, 181) · rgb(0 91 181)로 써도 같은 답입니다. 잰 값의 rgba(0, 0, 0, 0)은 칠하지 않은 투명한 바탕이라는 뜻입니다.
- CSS 파일 안의
<style>은 태그가 아니라 알아듣지 못하는 글입니다. 이 글이 첫 규칙의 선택자body앞에 붙어 선택자째 틀린 글이 되고, 브라우저는 그 규칙을 통째로 버립니다(브라우저 규칙 4). - 둘째 규칙
h1부터는 그대로 먹습니다. 맨 끝의</style>도 알아듣지 못하는 글이지만, 뒤에 규칙이 없어 버릴 것이 없습니다. - 흔한 오답은 (가) 칠해진다입니다.
<style>줄을 브라우저가 건너뛴다고 본 것입니다. CSS 파일에는 CSS만 씁니다. - (나)를 기본 글자색(검정)으로 쓴 것은 틀린 줄이 있으면 파일 전체가 안 먹는다고 본 것입니다(CSS도 멈춘다는 생각).
문제 3
블로그 편집기에서 하던 대로 카페 메뉴판의 가격을 style 속성으로 꾸몄습니다. 셋째 줄에는 깜빡 쓰지 않았습니다. (가) 화면에서 회색으로 그려지는 줄을 모두 고르세요. (나) style 속성을 모두 지우고, style.css에 규칙 하나만 써서 세 줄을 모두 같은 회색으로 그리려 합니다. 그 규칙을 쓰세요.
<ul>
<li style="color: #6e6e73;">
커피 4000원
</li>
<li style="color: #6e6e73;">
라테 4500원
</li>
<li>녹차 3500원</li>
</ul>
- ㉠
li커피 4000원 - ㉡
li라테 4500원 - ㉢
li녹차 3500원
힌트
style 속성 하나가 닿는 범위가 어디까지인지 떠올려 보세요. (나)는 세 줄을 함께 고르는 선택자부터 정합니다.
정답
받는 답: (가) ㉠ ㉡ · (나) li { color: #6e6e73; }
li의 글자색rgb(110, 110, 115)li:last-child의 글자색rgb(0, 0, 0)
잰 값 둘째 줄의 li:last-child는 '목록의 마지막 li'(녹차)를 고른 것입니다.
style속성은 그 속성을 쓴 요소 하나에만 닿습니다. 이 습관이 짓는 것은 줄마다 따로 붙은 모양이라, 속성을 빠뜨린 녹차 줄은 기본 글자색 그대로입니다.- (나)는
li를 고르는 규칙 하나로 세 줄에 함께 닿습니다. 색을 바꿀 때도 이 한 곳만 고칩니다.
<ul>
<li>커피 4000원</li>
<li>라테 4500원</li>
<li>녹차 3500원</li>
</ul>
li {
color: #6e6e73;
}li:last-child의 글자색rgb(110, 110, 115)
다르게 써도 되는 곳: ul { color: #6e6e73; }도 세 줄이 같은 회색이 됩니다. ul에 준 글자색을 안의 li가 물려받습니다.
- (가)에 ㉢까지 고른 것은
style속성이 같은 이름의 요소에 다 닿는다고 본 것입니다. - (나)에
li { style="color: #6e6e73;" }처럼 쓴 것은 속성의 꼴과 규칙의 꼴을 섞은 것입니다. 규칙의 중괄호 안에는 선언만 씁니다.
문제 4
플로우 카페 사이트에 소개 페이지 pages/about.html을 더했습니다. 이 페이지에 css 폴더의 style.css를 잇는 link의 href로 맞는 것은 어느 것일까요?
cafe/
├── index.html
├── css/
│ └── style.css
└── pages/
└── about.html
- ①
href="css/style.css" - ②
href="/css/style.css" - ③
href="../css/style.css"
힌트
폴더 나무에서 about.html과 style.css가 저마다 어느 폴더에 있는지 짚어 보세요.
힌트 둘
about.html이 든 폴더에서 출발해 style.css까지 가는 길을 폴더 나무에서 따라가 보세요.
정답
③ — href="../css/style.css"입니다.
link의 주소도 그 주소를 적은 파일이 든 폴더에서 출발합니다(브라우저 규칙 1). 출발점pages/에서../로cafe/에 올라간 뒤css/로 들어가style.css에 닿습니다.- ①
index.html에서 쓰던 주소를 그대로 쓴 것입니다(출발점이 늘 같다는 생각). 브라우저는pages/css/style.css를 찾다가 없어서 CSS가 하나도 닿지 않습니다. - ②
/로 시작하면 사이트 맨 위에서 찾는다고 본 것입니다. 내 컴퓨터에서 연 파일은 디스크 맨 위에서 찾아 못 찾습니다.
크롬으로 이 폴더를 만들어 열어 보면, ③만 css/style.css의 규칙이 제목에 닿고 ① · ②는 제목이 기본 글자색 그대로입니다.
문제 5
김치볶음밥 페이지 정보 줄의 글자색을 두 규칙으로 정했습니다. p의 글자색은 무엇일까요? 색 값을 쓰세요.
<p>한식 · 조리 15분 · 2인분</p>
p {
color: #6e6e73;
}
p {
color: 1d1d1f;
}
힌트
둘째 규칙의 값을 첫째 규칙의 값과 한 글자씩 견주어 보세요.
정답
받는 답: #6e6e73
p의 글자색rgb(110, 110, 115)
같은 답으로 치는 꼴: rgb(110, 110, 115) · rgb(110 110 115) · #6E6E73. 잰 값 칸에는 브라우저가 고쳐 적은 계산된 값 rgb(110, 110, 115)로 보입니다.
- 둘째 규칙의
1d1d1f는#기호가 없어 색 값으로 알아듣지 못합니다. 브라우저는 오류 없이 그 선언만 버립니다(브라우저 규칙 4). Styles 창에서는 그 줄에 경고 표시와 취소선이 보입니다(크롬 기준). - 둘째 규칙에 남은 선언이 없어, 첫째 규칙의 색이 그대로입니다.
- 흔한 오답은
#1d1d1f입니다.#기호가 없어도 색으로 읽는다고 보고, 뒤에 쓴 규칙이 이긴다고 본 것입니다. 알아듣지 못한 선언은 겨루기에 들지 않습니다. - 기본 글자색(검정)도 흔한 오답입니다. 틀린 줄이 있으면 CSS가 다 안 먹는다고 본 것입니다(CSS도 멈춘다는 생각).
문제 6
레시피 노트의 본문 글자 규칙입니다. 하위 목표 '2. 바꿀 속성과 값'의 ____ 자리를 통째로 쓰세요. 글꼴은 system-ui, 그 글꼴이 없으면 sans-serif · 글자 크기는 16px · 줄 높이는 글자 크기의 1.6배입니다.
/* 1. 고를 요소 */
body {
/* 2. 바꿀 속성과 값 */
____
}
나와야 할 결과는 둘입니다.
- 16px 문단의 줄 높이가 25.6px이다.
- 32px 제목
h1의 줄 높이가 51.2px이라, 제목이 두 줄로 꺾여도 줄이 겹치지 않는다.
힌트
선언 셋을 씁니다. 나와야 할 결과 두 줄을 함께 보세요 — 둘째 줄은 제목의 줄 높이입니다.
힌트 둘
줄 높이는 제목에도 1.6배로 다시 셈되어야 하니, 단위를 붙인 길이로 적을지 단위 없는 수로 적을지 정하세요.
정답
받는 답:
<h1>김치볶음밥</h1>
<p>15분이면 됩니다.</p>
body {
font-family:
system-ui,
sans-serif;
font-size: 16px;
line-height: 1.6;
}p의line-height25.6pxh1의line-height51.2px
font-family는 목록의 앞에서부터 이 기기에 있는 글꼴을 찾고, 끝의sans-serif는 글꼴 하나가 아니라 종류 이름이라 어느 기기에나 있습니다.- 단위 없는 수
1.6은 '그 요소 글자 크기의 1.6배'로 요소마다 다시 셈됩니다. 문단은 16 × 1.6 = 25.6px, 32px 제목은 51.2px입니다(body에 준 글자 값은 안쪽이 물려받고, 단위 없는 수는 수 그대로 내려갑니다).
다르게 써도 되는 곳: 세 선언의 차례는 바꿔도 됩니다. 글꼴 목록을 나누지 않고 한 줄에 써도 같습니다 — 이 과목은 32칸에 맞추려고 쉼표 뒤에서 나눠 씁니다.
- 흔한 오답은
line-height: 25.6px;입니다. 첫째 결과는 맞지만, 길이로 정한 줄 높이는 그대로 물려받아 32px 제목도 25.6px이 되고 두 줄이 겹칩니다.
<h1>김치볶음밥</h1>
<p>15분이면 됩니다.</p>
body {
font-family:
system-ui,
sans-serif;
font-size: 16px;
line-height: 25.6px;
}h1의line-height25.6px
- 글꼴 목록을
system-ui sans-serif처럼 쉼표 없이 쓰면 브라우저가 알아듣지 못해 그 선언을 버리고(Styles 창에서는 경고 표시와 취소선), 기본 글꼴로 그려집니다(브라우저 규칙 4).
문제 7
사진 동아리 공지에서 body의 글자색만 회색으로 정했습니다. 결과 화면에서 회색으로 그려지는 요소를 모두 고르세요. 기호를 다 쓰세요.
<h1>10월 출사</h1>
<p><strong>토요일</strong> 9시</p>
<a href="map.html">모이는 곳</a>
<button>신청</button>
body {
color: #6e6e73;
}
- ㉠
h110월 출사 - ㉡
p9시 - ㉢
strong토요일 - ㉣
a모이는 곳 - ㉤
button신청
힌트
규칙이 직접 고른 요소는 body 하나입니다. 다섯 요소가 저마다 글자색을 어디서 받는지 보세요.
힌트 둘
안쪽 요소마다 글자색을 정하는 다른 선언(기본 스타일)이 있는지 떠올려 보세요.
정답
㉠ ㉡ ㉢ — 제목 · 문단 · 강조 글입니다.
h1의 글자색rgb(110, 110, 115)p의 글자색rgb(110, 110, 115)strong의 글자색rgb(110, 110, 115)a의 글자색rgb(0, 0, 238)button의 글자색rgb(0, 0, 0)
body에 준 글자색은 안쪽 요소가 물려받습니다.h1·p는body에서,strong은p에서 받습니다.- 링크와 단추는 브라우저 기본 스타일이 글자색을 따로 정해 둡니다. 제 값이 있는 요소는 물려받지 않아, 링크는 기본 파랑, 단추는 기본 글자색 그대로입니다(크롬 기준).
- 흔한 오답은 다섯 모두입니다.
body에 준 글자 값은 안쪽 모든 요소에 닿는다고 본 것입니다. 링크와 단추의 색은a·button을 고르는 규칙을 따로 써서 정합니다. - ㉠ ㉡만 고른 것은 강조 글
strong도 제 색을 따로 가진다고 본 것입니다.strong은 굵기만 기본 스타일이 정하고, 색은 물려받습니다.
다시 볼 레슨: 글자 꾸미기 · 브라우저 기본 스타일과 Styles 창
문제 8
카페 메뉴판의 작은 제목 '오늘의 쿠키'(h3)가 너무 커 보여서, 본문만 한 16px로 줄이려 합니다. 제목 차례는 그대로 두고 크기만 줄이는 방법은 어느 것일까요?
- ①
<h3>를<h5>로 바꾼다(여는 태그와 닫는 태그 둘 다) - ②
style.css에h3 { font-size: 16px; }를 쓴다 - ③
h3를 지우고<p><strong>오늘의 쿠키</strong></p>로 쓴다
힌트
세 방법마다 나무에 남는 요소가 무엇인지, 화면의 크기가 얼마가 되는지 따로 따져 보세요.
정답
② — 크기는 CSS로 바꿉니다.
<h2>디저트</h2>
<h3>오늘의 쿠키</h3>
<p>쿠키 2000원</p>
h3 {
font-size: 16px;
}h3의font-size16px
- 제목의 숫자는 글자 크기가 아니라 단계입니다(브라우저 규칙 3). CSS로 크기를 바꿔도 나무에는
h3가 남아, 제목 차례에서 '오늘의 쿠키'는 그대로 '디저트' 아래 3단계입니다. - ① 작은 글자를 내려고 숫자를 고른 것입니다(태그가 모양이라는 생각).
h5는 본문보다 작은 기본 크기이고, 제목 차례에 3 · 4단계가 비어 검사기가 Error를 냅니다.
<h2>디저트</h2>
<h5>오늘의 쿠키</h5>
<p>쿠키 2000원</p>h5의font-size13.28px
- ③ 크기는 본문과 같아지지만, '오늘의 쿠키'가 제목에서 빠져 제목 차례에 들지 않습니다. 화면 읽기 프로그램이 제목만 골라 읽을 때 이 글을 건너뜁니다.
문제 9
짝마다 앞 코드는 CSS 없이, 뒤 코드는 규칙 하나를 더해 그렸습니다. 짝마다 두 화면이 같은지 다른지 쓰세요. 다르면 어디가 다른지도 한 줄로 쓰세요. 셋 모두 같은 답이 나와도 됩니다. 그리고 (다)의 뒤 코드에서 목록 글이 왼쪽 끝에 붙는지, 안으로 들어가 있는지 쓰세요.
(가)
<h1>김치볶음밥</h1>
<h1>김치볶음밥</h1>
h1 {
font-size: 32px;
}
(나)
<p><strong>꼭</strong> 볶기</p>
<p><strong>꼭</strong> 볶기</p>
strong {
font-weight: normal;
}
(다)
<ol>
<li>김치를 썹니다.</li>
</ol>
<ol>
<li>김치를 썹니다.</li>
</ol>
ol {
list-style-type: none;
}
힌트
짝마다 뒤 코드의 규칙이 바꾼 속성 하나를 찾고, 그 속성의 기본 스타일 값이 무엇이었는지 떠올려 보세요.
정답
(가) 같다 · (나) 다르다 — 뒤 코드는 '꼭'이 굵지 않다 · (다) 다르다 — 뒤 코드는 줄 앞의 번호가 없다. (다)의 뒤 코드에서 목록 글은 여전히 안으로 들어가 있습니다.
ol의padding-left40px
잰 값 끝 줄은 (다) 뒤 코드의 ol을 잰 것입니다.
- 우리 규칙은 같은 요소의 같은 속성에서 기본 스타일을 이깁니다(브라우저 규칙 5). 이기는 것은 적은 속성 하나뿐이고 나머지 기본 스타일은 남습니다.
- (가)
h1의 기본 크기가 이미 32px이라, 같은 값을 덧칠해도 화면은 그대로입니다. - (나)
strong의 굵기는 기본 스타일이 준 모양이라, 우리 규칙으로 보통 굵기가 됩니다. 나무에는 여전히strong이 있어 뜻은 그대로입니다. - (다) 번호만 사라지고, 기본 스타일의 왼쪽 안쪽 여백 40px은 남아 글이 안으로 들어가 있습니다. 들여 쓴 틈은 번호가 아니라 이 여백이 만든 것입니다.
- (가) 다르다는 우리 규칙을 쓰면 무엇이든 바뀐다고 본 것입니다. 기본 스타일과 같은 값이면 화면은 그대로입니다.
- (다)의 둘째 물음에 '왼쪽 끝에 붙는다'고 쓴 것은 들여 쓴 틈을 번호가 만든다고 본 것입니다.
다시 볼 레슨: 브라우저 기본 스타일과 Styles 창
문제 10
김치볶음밥 페이지의 style.css에는 h1 { color: #005bb5; } 규칙 하나만 있습니다. 아래 차례로 했습니다. 다 하고 나면 제목은 어떻게 보일까요?
- 개발자 도구 Styles 창에서
h1의color값을#d70015로 바꾸고, 그 규칙에font-size: 40px선언도 하나 더해 봤다. - 편집기에서
style.css의h1규칙에font-size: 40px;한 줄만 옮겨 적고 저장했다. - 브라우저에서 새로고침했다.
- ① 빨강(
#d70015) · 40px - ② 파랑(
#005bb5) · 32px - ③ 파랑(
#005bb5) · 40px
힌트
1번과 2번에서 바꾼 것을 따로 적고, 새로고침 뒤 브라우저가 무엇을 읽는지 보세요.
힌트 둘
새로고침하면 브라우저는 무엇을 다시 읽나요? 1번에서 바꾼 것 가운데 2번에서 파일에 옮겨 적은 것만 남습니다.
정답
③ — 파랑 · 40px입니다. 새로고침 뒤 브라우저가 읽는 style.css는 이렇습니다.
<h1>김치볶음밥</h1>
h1 {
color: #005bb5;
font-size: 40px;
}h1의 글자색rgb(0, 91, 181)h1의font-size40px
- Styles 창에서 바꾼 값은 브라우저 안의 사본이지
style.css파일이 아닙니다. 새로고침하면 브라우저가 저장된 파일을 다시 읽어 그립니다(브라우저 규칙 1). - 파일에는 2번에서 옮겨 적은
font-size: 40px;이 있고, 색은 옮겨 적지 않아 파일에 적힌#005bb5그대로입니다. - ① Styles 창에서 바꾼 것도 파일에 남는다고 본 것입니다(사본을 파일로 보는 생각). 남기고 싶은 값은 파일에 옮겨 적고 저장합니다.
- ② 새로고침하면 Styles 창의 사본처럼 파일에 적은 것도 처음으로 돌아간다고 본 것입니다. 저장한 파일의 내용은 그대로 남습니다.
다시 볼 레슨: 브라우저 기본 스타일과 Styles 창 · 개발자 도구로 요소 나무 보기
문제 11
하고 싶은 일마다 쓸 요소나 CSS 속성을 쓰세요. 값까지 묻는 것은 값도 씁니다.
- (가)
head안에서 CSS 파일을 이 페이지에 잇는 요소 - (나) 요소의 바탕을 칠하는 속성
- (다) 글을 줄 가운데에 놓는 속성과 값
- (라) 목록 줄 앞의 점이나 번호 모양을 정하는 속성
힌트
(나)는 글자색 속성 이름 앞에 무엇이 붙습니다. (라)는 list-로 시작합니다.
정답
받는 답: (가) link · (나) background-color · (다) text-align: center · (라) list-style-type
같은 답으로 치는 꼴: (가) <link> · (다) 끝에 ;을 붙인 text-align: center;.
틀리는 꼴 — 까닭:
- (가)
style— 그 페이지 안에 규칙을 바로 쓰는 요소입니다. 파일을 잇는 것은link이고,a는 다른 페이지로 가는 링크입니다. - (나)
color— 글자색입니다. - (다)
text-align: middle—middle은 이 속성이 알아듣지 못하는 값이라 선언째 버려집니다. - (라)
list-style— 속성 여럿을 한 줄로 정하는 짧게 적기입니다(뒤 단원). 점 모양 하나만 정하는 속성은list-style-type입니다.
다시 볼 레슨: CSS 연결하기 · 색 쓰기 · 글자 꾸미기 · 브라우저 기본 스타일과 Styles 창
문제 12
레시피 노트의 목록 페이지는 연회색 바탕으로 꾸며지는데, 김치볶음밥 페이지에는 CSS가 하나도 안 먹습니다. 개발자 도구에서 제목을 골라 보니 Styles 창에 우리 규칙은 하나도 없고 기본 스타일(user agent stylesheet)만 보입니다. kimchi.html의 몇 번 줄을 어떻게 고쳐야 할까요? 고친 줄을 쓰세요.
<!-- kimchi.html -->
<link
rel="stylesheet"
href="sytle.css"
/>
<h1>김치볶음밥</h1>
<p>한식 · 조리 15분 · 2인분</p>폴더와 style.css는 아래와 같습니다. 목록 페이지 index.html에는 href="style.css"라고 적혀 있습니다.
recipe-note/
├── index.html
├── kimchi.html
└── style.css
/* style.css */
body {
background-color: #f5f5f7;
}
h1 {
color: #005bb5;
}
힌트
목록 페이지는 꾸며지고 이 페이지에는 우리 규칙이 하나도 없습니다. 찾는 차례 몇 번부터 볼지 정하세요.
힌트 둘
목록 페이지가 꾸며지니 style.css의 규칙은 멀쩡합니다. 이 페이지에 그 파일이 닿았는지부터 보세요 — 폴더의 파일 이름과 한 글자씩 견줍니다.
정답
받는 답: 4번 줄을 href="style.css"로 고칩니다.
<!-- kimchi.html -->
<link
rel="stylesheet"
href="style.css"
/>
<h1>김치볶음밥</h1>
<p>한식 · 조리 15분 · 2인분</p>
/* style.css */
body {
background-color: #f5f5f7;
}
h1 {
color: #005bb5;
}body의background-colorrgb(245, 245, 247)h1의 글자색rgb(0, 91, 181)
찾는 차례 1번에서 찾습니다.
- 1번 — 파일이 닿았나. 목록 페이지가 꾸며지니
style.css는 저장돼 있고 규칙도 멀쩡합니다. 그런데 이 페이지에는 우리 규칙이 하나도 닿지 않았습니다. 규칙 하나가 아니라 전부가 안 먹으면 파일이 닿지 않은 것이라,link주소를 폴더의 파일 이름과 견줍니다 — 4번 줄의sytle은style과 글자 차례가 다릅니다. - 브라우저는
recipe-note/sytle.css를 찾다가 없어서 그만둡니다. 오류 창은 뜨지 않고 기본 스타일만으로 그립니다(브라우저 규칙 1). 그래서 2번(나무) · 3번(규칙이 닿았나)까지 갈 일이 없습니다.
다르게 고쳐도 되는 곳: 없습니다. 주소는 파일 이름과 글자 하나까지 같아야 합니다.
- 흔한 오답은
h1규칙에!important를 붙이는 것입니다. 파일이 닿지 않아 규칙이 겨루기에 들지도 못하니, 제목은 여전히 기본 모양입니다. style.css의 이름을sytle.css로 바꾸는 것도 흔합니다. 김치볶음밥 페이지는 꾸며지지만, 이번에는href="style.css"라고 적은 목록 페이지에 CSS가 하나도 닿지 않습니다 — 증상만 옮긴 것입니다.
다시 볼 레슨: 브라우저 기본 스타일과 Styles 창 · CSS 연결하기
문제 13 (만들어 보기)
여행 일정의 한 문단에서 시각 '9시'만 빨간 #d70015로 칠하려 합니다. 문장의 다른 글은 그대로이고, '9시'의 굵기도 그대로 둡니다. 하위 목표 주석 둘만 남긴 틀의 …를 채워 규칙 하나를 쓰세요.
<h2>셋째 날</h2>
<p>
<strong>9시</strong>에
협재 가는 버스를 탑니다.
</p>
/* 1. 고를 요소 */
…
/* 2. 바꿀 속성과 값 */
…
확인 목록 — 하위 목표 3 '개발자 도구로 확인'입니다.
- '9시'만 빨갛고, '에 협재 가는 버스를 탑니다.'는 기본 글자색 그대로다(화면).
- '9시'를 골라 Styles 창을 보면 우리 규칙의
color선언이 취소선 없이 보인다 — 규칙이 닿았고 이겼다(Styles 창). - '9시'는 여전히 굵다 — Styles 창 아래쪽 기본 스타일(
user agent stylesheet)의font-weight선언이 취소선 없이 남아 있다(화면 · Styles 창). - 문단을 골라 Styles 창을 보면 우리 규칙이 보이지 않는다 — 우리 규칙은 문단에 닿지 않았다(Styles 창).
힌트
'9시'만 감싼 요소가 무엇인지 찾으세요. 그 요소를 고르는 선택자가 1, 색 선언이 2입니다.
정답
모범 답입니다.
<h2>셋째 날</h2>
<p>
<strong>9시</strong>에
협재 가는 버스를 탑니다.
</p>
/* 1. 고를 요소 */
strong {
/* 2. 바꿀 속성과 값 */
color: #d70015;
}strong의 글자색rgb(215, 0, 21)strong의font-weight700p의 글자색rgb(0, 0, 0)
확인 목록을 다 채웠으면 맞습니다. 코드가 모범 답과 달라도 됩니다.
다르게 써도 되는 곳:
- 색을
rgb(215 0 21)로 써도 같은 색입니다. - 주석 둘은 지워도 화면이 같습니다.
흔한 잘못:
- 1에서
p를 고르면 문장 전체가 빨개집니다. 안의strong도 문단의 색을 물려받습니다.
<p>
<strong>9시</strong>에
협재 가는 버스를 탑니다.
</p>
p {
color: #d70015;
}p의 글자색rgb(215, 0, 21)strong의 글자색rgb(215, 0, 21)
- 2에서
color대신background-color를 쓰면 글자는 그대로이고 '9시' 뒤 바탕만 빨개집니다.
문제 14 (만들어 보기)
레시피 노트의 셋째 단계입니다(⟨컴퓨터⟩ · 20분 안팎 · 표 한 줄마다 멈춰도 됩니다). style.css 하나를 만들어 목록 페이지와 김치볶음밥 페이지에 함께 잇고, 두 페이지의 글꼴과 색을 맞춥니다. 레시피 한 페이지 만들기를 따라 했다면 이미 이 상태입니다 — 그렇다면 레슨의 코드를 보지 않고 아래 표만 보고 새 폴더에서 다시 써 본 뒤 견주어 보세요.
이 단계 시작 파일 — index.html · kimchi.html
3단원 연습 문제 13번의 모범 답입니다. recipe-note 폴더에 두 파일과 images 폴더(안에 그림 넣기 img에서 받은 kimchi.svg)가 있는 상태에서 시작합니다.
<!-- index.html -->
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width"
/>
<title>레시피 노트</title>
</head>
<body>
<h1>레시피 노트</h1>
<ul>
<li>
<a href="kimchi.html">
김치볶음밥 레시피
</a>
</li>
<li>계란말이</li>
<li>된장찌개</li>
<li>떡볶이</li>
<li>잡채</li>
<li>미역국</li>
</ul>
</body>
</html><!-- kimchi.html -->
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width"
/>
<title>김치볶음밥</title>
</head>
<body>
<p>
<a href="index.html">
레시피 목록으로
</a>
</p>
<h1>김치볶음밥</h1>
<p>한식 · 조리 15분 · 2인분</p>
<figure>
<img
src="images/kimchi.svg"
alt="김치볶음밥 한 그릇"
width="200"
height="150"
/>
<figcaption>
달걀은 반숙으로 올립니다.
</figcaption>
</figure>
<p>
<strong>잘 익은 김치</strong>와
찬밥만 있으면 십오 분 만에
끝나는 한 그릇 요리입니다.
</p>
<p>
<a href="#steps">조리 순서</a>
</p>
<h2>재료</h2>
<ul>
<li>밥 2공기</li>
<li>잘 익은 김치 1컵</li>
<li>달걀 2개</li>
<li>참기름 1큰술</li>
<li>김가루 조금</li>
</ul>
<h2 id="steps">조리 순서</h2>
<ol>
<li>
김치를 한입 크기로 썹니다.
</li>
<li>
달군 팬에 기름을 두르고
김치를 3분간 볶습니다.
</li>
<li>
밥을 넣고 김치와 고루
섞어 가며 볶습니다.
</li>
<li>
참기름을 두르고 불을 끕니다.
</li>
<li>
달걀 프라이와 김가루를
올려 냅니다.
</li>
</ol>
</body>
</html>할 일 — 아래 표대로 style.css를 쓰고, 두 HTML의 head 안 title 아래에 같은 link를 넣습니다.
| 고를 요소 | 바꿀 것 |
|---|---|
페이지 전체(body) | 바탕 #f5f5f7 · 글자색 #1d1d1f · 글꼴 system-ui(없으면 sans-serif) · 글자 크기 16px · 줄 높이는 글자 크기의 1.6배 |
큰 제목(h1) | 글자 크기 32px |
작은 제목(h2) | 글자 크기 22px |
링크(a) | 글자색 #005bb5 |
확인 목록:
- 두 페이지 모두 바탕이 연회색이다(화면).
- 김치볶음밥 페이지의 문단을 골라 Styles 창을 보면,
body에서 물려받은 값으로style.css의body규칙(줄 높이1.6· 글자색#1d1d1f)이 보인다(Styles 창). - 두 페이지의 링크가 진한 파랑이고 밑줄이 그대로 있다(화면).
style.css의#005bb5를 다른 색으로 바꿔 저장하고 두 페이지를 새로고침하면, 두 페이지의 링크가 함께 바뀐다. 확인한 뒤 되돌린다(화면).- 목록 페이지에서도 Styles 창에
style.css의body규칙이 보인다(Styles 창). - 두 페이지 모두 검사기 Error가 0이다(검사기 — Info는 접어 둠).
폰으로만 따라왔다면 이 물음 하나로 대신합니다. 두 HTML에 넣는 link 네 줄입니다. 차례대로 기호를 늘어놓으세요.
- ㉠
rel="stylesheet" - ㉡
/> - ㉢
<link - ㉣
href="style.css"
힌트
표의 줄마다 규칙 하나입니다. 글꼴 · 글자 크기 · 줄 높이는 body에 주면 안쪽 요소가 물려받습니다. 링크의 색은 물려받지 않으니 a를 따로 고릅니다.
정답
모범 답입니다. style.css를 두 HTML과 같은 폴더에 둡니다.
/* style.css */
body {
background-color: #f5f5f7;
color: #1d1d1f;
font-family:
system-ui,
sans-serif;
font-size: 16px;
line-height: 1.6;
}
h1 {
font-size: 32px;
}
h2 {
font-size: 22px;
}
a {
color: #005bb5;
}두 HTML의 title 바로 아래에 같은 link 네 줄을 넣습니다.
<head>
…
<title>김치볶음밥</title>
<link
rel="stylesheet"
href="style.css"
/>
</head>김치볶음밥 페이지의 맨 위를 이 style.css로 그리면 이렇습니다.
<p>
<a href="index.html">
레시피 목록으로
</a>
</p>
<h1>김치볶음밥</h1>
<p>한식 · 조리 15분 · 2인분</p>
/* style.css */
body {
background-color: #f5f5f7;
color: #1d1d1f;
font-family:
system-ui,
sans-serif;
font-size: 16px;
line-height: 1.6;
}
h1 {
font-size: 32px;
}
h2 {
font-size: 22px;
}
a {
color: #005bb5;
}body의background-colorrgb(245, 245, 247)p의 글자색rgb(29, 29, 31)p의line-height25.6pxh1의font-size32pxa의 글자색rgb(0, 91, 181)
확인 목록을 다 채웠으면 맞습니다. 코드가 모범 답과 달라도 됩니다.
다르게 써도 되는 곳:
- 규칙의 차례와 한 규칙 안 선언의 차례는 바꿔도 됩니다. 이 단원의 규칙들은 서로 다른 요소를 골라 겨루지 않습니다.
link의rel과href줄은 서로 바꿔도 됩니다.- 색을
rgb(245 245 247)처럼 써도 같은 색입니다.
흔한 잘못:
- 목록 페이지에
link를 빠뜨리면 김치볶음밥 페이지만 연회색이고 목록 페이지는 흰 바탕 그대로입니다.link는 그 줄을 쓴 페이지에만 CSS를 잇습니다. style.css첫 줄에<!-- style.css -->를 쓰면 첫 규칙body가 통째로 버려져 바탕 · 글꼴 · 줄 높이가 모두 빠집니다. 파일 이름 주석은/* style.css */로 씁니다.body의color로 링크까지 칠하려 하면 링크는 기본 파랑 그대로입니다(문제 7).
폰 물음의 답은 ㉢ ㉠ ㉣ ㉡입니다. ㉠과 ㉣은 서로 바꿔도 됩니다 — 속성의 차례는 뜻이 없습니다.
다시 볼 레슨: 레시피 한 페이지 만들기 · CSS 연결하기 · 글자 꾸미기 · 색 쓰기