<시작태그>컨텐츠</종료태그>
<>
로 감싸 내용의 시작을 표시하고, 종료 태그는 </>
로 감싸 내용의 끝을 표시<제목>바로 실행해보면서 배우는 HTML5/CSS3</제목>
<부제목>쉽고 빠르게 배우는 HTML5와 CSS3</부제목>
<내용>HTML5와 CSS3의 필수 개념과 실습까지</내용>
<h1>
, <h2>
, <p>
태그를 사용<h1>바로 실행해보면서 배우는 HTML5/CSS3</h1>
<h2>쉽고 빠르게 배우는 HTML5와 CSS3</h2>
<p>HTML5와 CSS3의 필수 개념과 실습까지</p>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>구름EDU</title>
</head>
<body>
<h1>바로 실행해보면서 배우는 HTML/CSS</h1>
<p>HTML과 CSS에 대해서 배워봅시다!</p>
</body>
</html>
<!DOCTYPE html>
<html lang="ko">
<html>
태그 안에는 크게 <head>
태그와 <body>
태그가 존재,각 태그 안에 여러 가지 태그를 배치하여 문서를 구성```html
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>구름EDU</title>
</head>
<body>
<h1>한 눈에 끝내는 HTML5/CSS3</h1>
<p>HTML과 CSS에 대해서 배워봅시다!</p>
</body>
</html>
```
<head>
태그는 HTML 문서에 대한 정보를 담고 있는데, 일반 사용자는 웹 사이트에서 <head>
태그에 속한 정보를 볼 수 없다.<meta>
: 문서와 관련된 정보를 담는 태그<title>
: 웹 페이지의 제목을 담는 태그<body>
태그는 HTML 문서 중 사용자에게 실제로 보여지는 부분<h1>
: 제목을 표시하는 태그<p>
: 단락을 표시하는 태그<head>
태그 내부와 <body>
태그 내부에 존재하는 태그는 종류에 상관 없이 여러 번 사용가능<header>
: 웹 페이지 혹은 <section>
의 소개나 제목을 담기 위해 사용하는 요소입니다.<nav>
: 내비게이션 역할을 수행하는 요소로, 페이지 이동을 위한 메뉴를 주로 담습니다.<section>
: 기준에 따라 구획을 구분하기 위해 사용하는 요소입니다. 기준에 맞는 <article>
들을 담습니다.<article>
: 주 내용을 담기 위해 사용하는 요소입니다.<aside>
: 광고 또는 사이트의 주변 부분에 해당하는 내용을 담기 위해 사용하는 요소입니다.<footer>
: 일반적으로 웹 사이트의 가장 아래에 들어가는 회사 정보나 사이트 정보 등의 추가 정보를 담기 위해 사용하는 요소입니다.<h1>
부터 <h6>
까지 사용<h1>
에 해당하고, 소제목 혹은 부제목이 <h2>
나 <h3>
에 해당<h1>h1 제목입니다.</h1>
<h2>h2 제목입니다.</h2>
<h3>h3 제목입니다.</h3>
<h4>h4 제목입니다.</h4>
<h5>h5 제목입니다.</h5>
<h6>h6 제목입니다.</h6>
<p>
: paragraphs의 약자로, 단락혹은 문단이라는 뜻
<p>구름IDE는 언제 어디서나
개발할 수 있는 웹 기반 IDE입니다.
동일한 도커 컨테이너 환경에 접속한
모든 사용자들은 코드를 동시 편집할 수 있고,
공유 링크를 통해 협업과 질문을
매우 편리하게 진행할 수 있습니다.</p>
<div>
: division의 약자로 분할의 뜻
<section>
<div>
<p>1번 문장입니다.</p>
<p>2번 문장입니다.</p>
</div>
<p>3번 문장입니다.</p>
</section>
<pre>
: preformatted의 약자로, 형식화된 텍스트를 브라우저에 그대로 표시
<pre>구름IDE는 언제 어디서나
개발할 수 있는 웹 기반 IDE입니다.
동일한 도커 컨테이너 환경에 접속한
모든 사용자들은 코드를 동시 편집할 수 있고,
공유 링크를 통해 협업과 질문을
매우 편리하게 진행할 수 있습니다.</pre>
<br>
: break의 약자로, 엔터(enter)와 동일한 역할, 즉 줄 바꿈을 수행
<p>구름IDE는 언제 어디서나<br>
개발할 수 있는 웹 기반 IDE입니다.<br>
동일한 도커 컨테이너 환경에 접속한<br>
모든 사용자들은 코드를 동시 편집할 수 있고,<br>
공유 링크를 통해 협업과 질문을<br>
매우 편리하게 진행할 수 있습니다.</p>
<br>
태그와 같이 종료 태그를 쓰지 않는 요소를 빈 요소(Empty element)라고 부른다.<strong>, <em>
태그<strong>
: 태그로 감싼 단어 혹은 문장을 볼드체로 바꿈<em>
: emphasized의 약자이며, 태그로 감싼 단어 혹은 문장을 이탤릭체로 바꿈<sub>, <sup>
태그<sub>
: 태그로 감싼 단어 혹은 문장을 일반 위치보다 아래로 내림<sup>
: 태그로 감싼 단어 혹은 문장을 일반 위치보다 위로 올림<ins>, <del>
태그<ins>
: 태그로 감싼 단어 혹은 문장 아래 밑줄을 추가<del>
: 취소선을 추가<a>
<a>
는 anchor(닻)의 약자로, HTML에서 하이퍼 링크의 역할을 수행<a>
태그를 사용하면 링크를 통해 다른 웹페이지로 이동하거나 문서로 이동할 수 있는 통로가 마련<a> 태그의 구성
<a>
의 속성, href<a>
가 참조하는 웹 사이트 주소(경로)를 값으로 가집니다<a>
태그에서는 a
다음에 공백을 입력한 뒤 href
와 웹 페이지 주소 및 경로를 입력<a href="https://ide.goorm.io">구름IDE</a>
<a>
의 속성, targettarget
속성은 링크를 클릭했을 때 해당 페이지를 어디에서 열지 정하는 속성target
속성에서 사용할 수 있는 대표 값_self
는 현재 탭에서 링크를 열음
_blank
는 새 탭 혹은 새 창(옛 버젼 브라우저의 경우)에서 링크를 열음
<a href="https://ide.goorm.io" target="_self">구름IDE</a>
<a href="https://edu.goorm.io" target="_blank">구름EDU</a>
웹 사이트 주소(도메인, domain)와 경로(path)를 합쳐 URL(Uniform Resource Locator)이 생성
HTML 페이지, CSS 문서, 이미지 등을 자원(Resource)이라고 부르며, URL은 인터넷에서 자원의 위치를 표현
절대 URL(Absolute URL): 접근하는 최초 시작점(주소)부터 경유한 경로를 모두 기록하여 리소스의 위치를 나타냅니다.
상대 URL(Relative URL): 현재 위치(기준점)를 기준으로 상대적인 경로를 기록하여 리소스의 위치를 나타냅니다.
예시
절대 URL : [https://edu.goorm.io/lecture/바로-실행해보면서-배우는.html](https://edu.goorm.io/lecture/%EB%B0%94%EB%A1%9C-%EC%8B%A4%ED%96%89%ED%95%B4%EB%B3%B4%EB%A9%B4%EC%84%9C-%EB%B0%B0%EC%9A%B0%EB%8A%94.html)
상대 URL : lecture/바로-실행해보면서-배우는.html
절대 URL : https://edu.goorm.io/lecture/바로-실행해보면서-배우는.html
상대 URL : 바로-실행해보면서-배우는.html
<img>
사용법과 속성<img>
: 이미지 태그는 넣고자 하는 이미지에 대한 속성을 필히 작성해야 하는 태그,종료 태그를 작성하지 않는다.<img src="이미지 url"/>
src:
source의 약자로 근원이라는 뜻, 불러올 이미지의 파일 경로 또는 URL을 속성값으로 가집니다.alt:
Alternative text의 약자로 대체 문구라는 뜻을 가집니다. 말 그대로 이미지가 정상 출력되지 않거나 이미지 파일이 아예 존재하지 않는 경우, 이미지 대신 표시할 문구를 값으로가집니다.<img src="이미지 URL" alt="이미지 대체 문구"/>
<img>
태그에서 이미지의 높이나 너비를 지정하는 속성 또한 추가할 수 있다.<img src="[https://t1.daumcdn.net/thumb/R720x0/?fname=http://t1.daumcdn.net/brunch/service/user/QsT/image/NSTeOeMe0MddpqlJ23FZV7hJGvg](https://t1.daumcdn.net/thumb/R720x0/?fname=http://t1.daumcdn.net/brunch/service/user/QsT/image/NSTeOeMe0MddpqlJ23FZV7hJGvg)" alt="dog's photo" width="430px" height="320px"/>
src
(source) 값으로 설정하면, 웹 페이지에 해당 오디오 파일을 재생하는 플레이어가 추가type
속성은 생략할 수 있다.<audio controls>
<source src="assets/audio/dance.mp3" type="audio/mpeg">
</audio>
src
(source) 값으로 설정하면, 해당 비디오 파일을 재생할 수 있는 플레이어가 웹 페이지에 추가video>
태그에서 type
속성을 생략할 수 있다.<video controls>
<source src="assets/video/dance.mp4" type="video/mp4">
</video>
<video>
태그는 audio>
태그와 다르게 height
와 width
속성을 지정할 수 있다.<video width="640" height="360" controls>
<source src="assets/video/dance.mp4" type="video/mp4">
</video>
유튜브 영상 아래에 공유하기를 클릭
공유창이 뜨면 HTML 코드를 제공하는 < >퍼가기
를 클릭
동영상 퍼갈 수 있는 HTML 소스 코드가 뜨면 이를 복사하여 아래와 같이 붙여넣기
<iframe width="560" height="315" src="https://www.youtube.com/embed/WnumLT3ZcLY" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
src
의 속성 값인 URL을 살펴보면, /embed/
뒤에 영어와 숫자를 조합한 Youtube 영상 ID를 볼 수 있다. 이 영상 ID는 모든 유튜브 영상의 주소 URL을 보면 찾을 수 있으며, 이 영상 ID를 바꿔줌으로써 원하는 영상으로 변경할 수 있다.유튜브 영상을 추가할 때 쓰는 <iframe>
태그는 유튜브 영상 뿐만 아니라 웹 페이지를 삽입할 때도 사용
<iframe src="https://www.youtube.com/embed/WnumLT3ZcLY"></iframe>
<form>
태그는 하나의 신청서 종이<form>
<!--다양한 input form이 들어감-->
</form>
<form>
태그로 묶으면 그 안에는 질문, 선택사항, 답변 작성 공간 등이 배치<form action='http://server.me/check' method="get">
<!--다양한 input form이 들어감-->
</form>
action
속성은 데이터를 보낼 URL을 지정method
속성은 보내는 방식을 지정get
또는 post
를 값으로 가지며, GET 방식과 POST 방식의 기능은 동일사용자가 서버로 데이터를 전송할 때 데이터는 HTTP Request Message라는 특별한 메세지에 담겨 보내진다.
메세지는 크게 Header와 Body두 부분으로 나뉜다.
메세지의 Header에는 데이터의 목적지가 되는 서버의 URL이 작성
GET 방식의 경우 사용자가 입력한 데이터를 서버URL 말미에 이어 붙여 숨김 없이 보낸다.
POST 방식은 데이터를 URL 끝에 붙이지 않고 데이터의 내용을 메세지의 Body 부분에 숨겨 보낸다.
https://ide.goorm.io?id=goorm&pw=asd123
POST 방식은 받는 서버 주소에 데이터를 적지 않고 편지 봉투 내부, 즉 메세지의 Body에 숨겨 보낸다.
<input>
태그는 입력 양식 태그 중에서도 가장 중요하고 많이 쓰이는 태그. 주로 사용자에게 입력을 받기 위해 사용되며, 빈 태그이기 때문에 종료 태그를 사용하지 않는다.type
이라는 속성을 설정하여 어떤 값을 입력할 것인지 결정<h3>text</h3>
<input type="text" name="myname">
<hr>
<h3>email</h3>
<input type="email" name="email">
<hr>
<h3>password</h3>
<input type="password" name="pw">
<hr>
<h3>button</h3>
<input type="button" value="Button">
<hr>
<h3>search</h3>
<input type="search" name="search">
<hr>
<h3>checkbox</h3>
<input type="checkbox" name="python" value="python" checked>Python<br>
<input type="checkbox" name="javascript" value="javascript">Javascript<br>
<input type="checkbox" name="cpp" value="cpp">C++<br>
<hr>
<h3>file</h3>
<input type="file" name="myfile">
<hr>
<h3>radio</h3>
<input type="radio" name="gender" value="male" checked> 남자<br>
<input type="radio" name="gender" value="female"> 여자<br>
<hr>
<h3>color</h3>
<input type="color" name="color">
<hr>
<h3>date</h3>
<input type="date" name="birthday">
<hr>
<h3>number</h3>
<input type="number" name="quantity" min="1" max="10" step="1" value="1">
<hr>
<h3>range</h3>
<input type="range" name="points" min="0" max="10" step="1" value="5">
<hr>
<h3>reset</h3>
<input type="reset">
<hr>
<h3>time</h3>
<input type="time" name="mytime">
<hr>
name
속성을 키(key)로, 입력 받은 데이터를 값(value)으로 전송type="password"
는 text
와 다르게 입력 칸에 값을 입력하면 별표로 표시되어 노출되지 않음placeholder: 가이드 문구를 지정하는데 사용하는 속성
<h3>회원가입</h3>
<form action="my-app" method="get">
<input type="text" name="id" placeholder="아이디를 입력하세요.">
<input type="password" name="password" placeholder="비밀번호를 입력하세요.">
</form>
<label>
태그는 입력 양식의 역할이 무엇인지 알려주는 이름표 역할을 수행<label>
태그에 해당하는 이름표를 클릭하면 입력 칸이 활성화 <h3>회원가입</h3>
<form action="my-app" method="get">
<div>
<label for="userid">아이디: </label>
<input type="text" id="userid" name="id" placeholder="아이디를 입력하세요.">
</div>
<div>
<label for="password">비밀번호: </label>
<input type="password" id="password" name="password" placeholder="비밀번호를 입력하세요.">
</div>
</form>
<select>
태그를 사용하며, <select>
태그는 <option>
태그로 이루어져 있는 각 선택지를 하나로 감싸는 역할을 수행select>
태그는 name
이라는 속성을, <option>
태그는 value
라는 속성을 필히 가져야한다. 여기서 name
속성은 <input>
태그의 name
속성과 동일한 역할을 수행. <input>
태그에서는 한 태그 안에 있는 name
과 value
가 짝이었지만, <select>
태그에서는 <select>
태그의 name
과 <option>
태그의 value
가 서로 짝을 이룬다.<select name="job" id="job">
<option value="student">학생</option>
<option value="teacher">선생님</option>
<option value="etc">기타</option>
</select>
<textarea>
태그는 rows
, cols
속성과 사용할 수 있는데, 값으로 숫자를 넣으면 <textarea>
의 크기를 조정할 수 있습니다. 정확히 말하자면 cols
는 글자 수 만큼, rows
는 글 줄 수 만큼 조정<textarea>
태그는 빈 요소가 아니기 때문에 종료 태그가 존재value
속성과 동일하게 사라지지 않는 값으로 처리됨<h3>회원가입</h3>
<form action="my-app" method="get">
<div>
<label for="userid">아이디: </label>
<input type="text" id="userid" name="id" placeholder="아이디를 입력하세요.">
</div>
<div>
<label for="password">비밀번호: </label>
<input type="password" id="password" name="password" placeholder="비밀번호를 입력하세요.">
</div>
<div>
<label for="gender">성별: </label>
<select name="gender" id="gender">
<option value="male">남성</option>
<option value="female">여성</option>
</select>
</div>
<div>
<label for="job">직업: </label>
<select name="job" id="job">
<option value="student">학생</option>
<option value="teacher">선생님</option>
<option value="etc">기타</option>
</select>
</div>
<div>
<label for="introduce">자기소개: </label>
<textarea name="introduce" id="introduce" placeholder="자기소개를 입력하세요" cols="20" rows="6"></textarea>
</div>
</form>
<button>
태그는 HTML 요소를 <button>
태그 내부에 담아 사용할 수 있다는 장점<h3>회원가입</h3>
<form action="my-app" method="get">
<div>
<label for="userid">아이디: </label>
<input type="text" id="userid" name="id" placeholder="아이디를 입력하세요.">
</div>
<div>
<label for="password">비밀번호: </label>
<input type="password" id="password" name="password" placeholder="비밀번호를 입력하세요.">
</div>
<div>
<label for="gender">성별: </label>
<select name="gender" id="gender">
<option value="male">남성</option>
<option value="female">여성</option>
</select>
</div>
<div>
<label for="job">직업: </label>
<select name="job" id="job">
<option value="student">학생</option>
<option value="teacher">선생님</option>
<option value="etc">기타</option>
</select>
</div>
<div>
<label for="introduce">자기소개: </label>
<textarea name="introduce" id="introduce" placeholder="자기소개를 입력하세요" cols="20" rows="6"></textarea>
</div>
<button type="submit">제출</button>
</form>
type="reset"
도 사용할 수 있는데, 이는 입력 양식을 모두 초기화하는 역할을 수행 <input type="reset">
표의 일반적인 구성
HTML 코드로 바꾼 경우
<table> <!--전체를 담고 있는 표-->
<tr> <!--각 행-->
<th>나이</th> <!--각 열의 제목을 담은 제목 셀-->
<th>직업</th>
<th>이름</th>
</tr>
<tr>
<td>23</td> <!--데이터를 담은 데이터 셀-->
<td>대학생</td>
<td>김구름</td>
</tr>
<tr>
<td>24</td>
<td>직장인</td>
<td>구우름</td>
</tr>
</table>
<th>
, <td>
, <tr>
은 각각 table heading, table data, table row를 축약한 태그
왼쪽에 표 제목이 있는 표
<table>
<tr>
<th>나이</th>
<td>23</td>
<td>24</td>
</tr>
<tr>
<th>직업</th>
<td>대학생</td>
<td>직장인</td>
</tr>
<tr>
<th>이름</th>
<td>김구름</td>
<td>구우름</td>
</tr>
</table>
<tr>
)을 기준으로 테이블 태그를 작성해야 조금 편하게 작성할 수 있다.colspan="숫자"
는 "숫자
"만큼 셀이 행을 점유rowspan="숫자"
는 "숫자"
만큼 셀이 열을 점유<table>
<tr>
<th>나이</th>
<td>23</td>
<td>24</td>
</tr>
<tr>
<th>직업</th>
<td colspan="2">대학생</td>
</tr>
<tr>
<th>이름</th>
<td>김구름</td>
<td>구우름</td>
</tr>
</table>
colspan
속성을 이용하여 직업 행에 위치한 '대학생'이라는 두 개의 셀이 병합. 만약 그렇게 보이지 않는다면 이는 셀 테두리가 없고 좌측으로 글씨가 정렬되었기 때문. 실제로는 두 셀이 병합되어 있다는 점 참고<ul>
: unordered list의 약자, 리스트의 항목을 감싸는 태그<li>
는: list item의 약자, 리스트에 나열할 항목을 담아두는 태그학교 과제하기
Python 강의 듣기
<ul>
<li>학교 과제하기</li>
<li>Python 강의 듣기</li>
</ul>
세제
돼지 고기 300g
생수
<ol>
<li>세제</li>
<li>돼지 고기 300g</li>
<li>생수</li>
</ol>
<h3>오늘 할 일</h3>
<ul>
<li>학교 과제하기
<ol>
<li>물리학 실험 보고서</li>
<li>확률과 통계 chapter.3 풀이</li>
</ol>
</li>
<li>Python 강의 듣기</li>
</ul>
<h3>장바구니</h3>
<ol>
<li>세제</li>
<li>돼지 고기 300g</li>
<li>생수</li>
</ol>
<ol>
태그 속성start="숫자"
는 리스트가 시작하는 숫자를 정합니다.<ol start="4">
<li>세제</li>
<li>돼지 고기 300g</li>
<li>생수</li>
</ol>
type="문자"
는 순서를 시작하는 문자를 지정<ol type="i">
<li>1</li>
<li>2</li>
</ol>
<ol type="I">
<li>1</li>
<li>2</li>
</ol>
<ol type="a">
<li>1</li>
<li>2</li>
</ol>
<ol type="A">
<li>1</li>
<li>2</li>
</ol>
<ol type="1">
<li>1</li>
<li>2</li>
</ol>
reversed
는 순서를 반대로 시작하도록 지정하는 속성다른 속성은 start="4"
와 같이 키(key)와 값(value)을 같이 쓰지만, reversed
는 키만 사용
<ol reversed>
<li>세제</li>
<li>돼지 고기 300g</li>
<li>생수</li>
</ol>
<li>
태그 속성value = "숫자"
는 해당하는 리스트 아이템의 번호를 지정<ol>
<li value="3">세제</li>
<li>돼지 고기 300g</li>
<li value="7">생수</li>
</ol>
value
속성은 사용하는 항목의 숫자를 기준으로 이후 항목에 숫자가 부여