웹페이지의 뼈대 세우기
2024 DTC
| → / Space | 다음으로 |
| ← | 이전으로 |
| ↓ / ↑ | 같은 주제 안에서 단계 이동 |
| O | 전체 슬라이드 한눈에 보기 |
| F | 전체화면 |
아래쪽 화살표가 보이면 그 주제는 단계별로 이어집니다
HyperText Markup Language
문서에 “표시(mark)”를 달아 구조를 알려주는 언어
웹페이지의 뼈대를 만드는 것
제목이다, 문단이다, 목록이다
무엇인가크게, 빨갛게, 가운데로
어떻게 보이는가HTML 문서를 만들려면
<!doctype html>
<html>
<head>
</head>
<body>
</body>
</html>
<!doctype html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>내 첫 페이지</title>
</head>
<body>
</body>
</html>
아직 화면에 아무것도 없습니다
<!doctype html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>내 첫 페이지</title>
</head>
<body>
<h1>안녕하세요</h1>
<p>제 첫 웹페이지입니다</p>
</body>
</html>
제 첫 웹페이지입니다
<!doctype html> — HTML 문서라는 선언. 맨 첫 줄<head> — 화면에 안 보이는 정보. 제목, 문자 인코딩<body> — 화면에 보이는 내용한글이 깨지면 십중팔구 <meta charset="utf-8">가 없는 것
태그를 제대로 쓰려면
<p>여는 태그안녕하세요내용</p>닫는 태그내용을 태그로 감싸서 “이건 문단이다”라고 알려준다
<p>안녕하세요</p>
<p>반갑습니다</p>
안녕하세요
반갑습니다
<a태그 이름href="https://example.com"속성 이름 = "값">태그에 추가 정보를 붙이는 것이 속성
<!-- 닫는 태그가 없는 태그도 있다 -->
<img src="cat.png" alt="고양이">
<br>
<hr>
<input type="text">
줄바꿈
했습니다
<!-- 올바른 중첩 -->
<p><strong>중요한</strong> 문단</p>
<!-- 잘못된 중첩 -->
<p><strong>중요한 문단</p></strong>
중요한 문단
둘 중 어느 쪽이 맞을까요?
<태그>내용</태그> — 감싸서 의미를 부여<태그 속성="값"> — 속성은 여는 태그 안에<img>, <br> — 닫는 태그가 없는 빈 태그글을 화면에 올리려면
<h1>제목 1</h1>
<h2>제목 2</h2>
<h3>제목 3</h3>
<h4>제목 4</h4>
<h1>가장 큰 제목</h1>
<p>제목 아래 설명하는 문단입니다.</p>
<p>문단을 나누면 줄이 바뀝니다.</p>
제목 아래 설명하는 문단입니다.
문단을 나누면 줄이 바뀝니다.
<p>한 문단 안에서<br>줄만 바꾸려면 br</p>
<hr>
<p>hr은 구분선입니다</p>
한 문단 안에서
줄만 바꾸려면 br
hr은 구분선입니다
<h1> ~ <h6> — 제목. h1은 페이지에 하나만<p> — 문단<br> — 줄바꿈, <hr> — 구분선여러 항목을 나열하려면
<ul>
<li>사과</li>
<li>바나나</li>
<li>포도</li>
</ul>
<ol>
<li>재료를 준비한다</li>
<li>물을 끓인다</li>
<li>면을 넣는다</li>
</ol>
<ul>
<li>과일
<ul>
<li>사과</li>
<li>바나나</li>
</ul>
</li>
<li>채소</li>
</ul>
<ul> — 순서 없는 목록 (점)<ol> — 순서 있는 목록 (번호)<li> — 항목. 항상 ul이나 ol 안에다른 페이지로 이동하려면
<a href="https://developer.mozilla.org">
MDN 문서 보러가기
</a>
<!-- 새 탭에서 열려면 -->
<a href="https://developer.mozilla.org"
target="_blank">
MDN 문서 보러가기
</a>
<a href="주소">글자</a>target="_blank" — 새 탭에서 열기그림을 넣으려면
<img src="html5-logo.svg" alt="HTML5 로고">
<img src="html5-logo.svg"
alt="HTML5 로고"
width="200">
<!-- 그림을 못 불러오면? -->
<img src="없는파일.png"
alt="웃고 있는 고양이">
그림 파일이 없으면 화면에 뭐가 나올까요?
<img src="경로" alt="설명">src — 그림 파일의 위치alt — 그림을 못 볼 때 대신 읽히는 글. 생략하지 말 것행과 열로 된 자료를 보여주려면
<table>
<tr>
<th>이름</th>
<th>학과</th>
</tr>
<tr>
<td>홍길동</td>
<td>컴퓨터공학</td>
</tr>
</table>
| 이름 | 학과 |
|---|---|
| 홍길동 | 컴퓨터공학 |
<table> — 표 전체<tr> — 한 줄 (table row)<th> — 제목 칸, <td> — 일반 칸표는 “자료”를 위한 것이지 “배치”를 위한 것이 아니다
사용자에게 무언가를 받으려면
<form>
<label for="name">이름</label>
<input type="text" id="name">
<label for="email">이메일</label>
<input type="email" id="email">
<button type="submit">보내기</button>
</form>
<input type="text">
<input type="password">
<input type="date">
<input type="checkbox">
<input type="radio">
<input type="..."> — type에 따라 모양이 달라진다<label for="id"> — 입력창의 이름표. id와 짝을 맞춘다<button> — 누르는 버튼특별한 의미 없이 묶기만 하려면
<div>
<h2>공지사항</h2>
<p>내일은 휴강입니다</p>
</div>
내일은 휴강입니다
<p>여기서 <span>이 부분만</span> 강조</p>
여기서 이 부분만 강조
<div> — 덩어리로 묶는다. 줄 전체를 차지<span> — 글 일부만 묶는다. 줄을 바꾸지 않음여기에 CSS를 붙이는 방법은 다음 시간에
내용에 맞는 태그를 고르려면
<div class="header">
<h1>DTC 블로그</h1>
<div class="nav">홈 · 소개</div>
</div>
<div class="main">
<div class="article">
<h2>첫 번째 글</h2>
<p>오늘 HTML을 배웠습니다.</p>
</div>
</div>
<div class="footer">© 2024 DTC</div>
홈 · 소개
오늘 HTML을 배웠습니다.
© 2024 DTC
여기서 태그 이름만 바꾸면 화면이 달라질까요?
<header>
<h1>DTC 블로그</h1>
<nav>홈 · 소개</nav>
</header>
<main>
<article>
<h2>첫 번째 글</h2>
<p>오늘 HTML을 배웠습니다.</p>
</article>
</main>
<footer>© 2024 DTC</footer>
홈 · 소개
오늘 HTML을 배웠습니다.
© 2024 DTC
여기 뭔가 있다
기계가 알 수 있는 것여기가 머리말,
여기가 본문
화면은 같지만 “뜻”이 다르다
| <header> | 페이지나 구역의 머리말 |
| <nav> | 메뉴, 탐색 링크 모음 |
| <main> | 페이지의 핵심 내용. 하나만 |
| <section> | 주제별로 나눈 구역 |
| <article> | 그 자체로 완결된 글 |
| <footer> | 바닥글, 저작권 표시 |
오늘 배운 것
<!doctype> → <html> → <head> + <body><body> 안에| h1 ~ h6, p | 제목과 문단 |
| ul, ol, li | 목록 |
| a | 링크 — href |
| img | 이미지 — src, alt |
| table, tr, th, td | 표 |
| form, input, label, button | 입력 폼 |
| div, span | 의미 없이 묶기 |
| header, nav, main, footer | 시맨틱 태그 |
직접 만들어봅시다
오늘 배운 태그만으로 전부 만들 수 있습니다
다음 시간엔 CSS로 꾸며봅시다