백엔드 개발을 해보는데 있어서 내가 html을 잘 모르니 버벅이거나 이해가 가지 않는 부분이 많았다. 그래서 html 기초 강의를 들어보았다. 다행히 유노코딩이라는 분이 좋은 강의를 무료로 만들어 두신게 있었다.
Hyper Text Markup Language
확장자: html 또는 htm
이 문서의 결과를 보고 싶다면 웹브라우저(크롬)으로 확인할 수 있다. 수정하고 싶다면 vscode같은 편집기를 사용해주면 된다.
나는 메모장을 통해서 html파일을 만들어 주었고, 이를 크롬부라우저를 통해 열면 아무것도 표시되지 않은 것을 확인할 수 있다. 당연히 아무것도 써주지 않았으니 아무것도 표시되지 않는다.
HTML의 문법은 tag만 기억해주면 된다!
태그란 html코드에서 정보를 정의하는 형식을 말한다.
<>
, </>
기호를 사용해 콘텐츠의 시작과 끝을 표시한다.<!--실습내용-->
<!--Hello를 브라우저에 출력-->
<p>Hello!</p>
<!--단일태그-->
<br>
<!--Hello를 빨간색, 굵은 글씨로 표현-->
<strong style="color:red;">Hello!</strong>
<!DOCTYPE html>>
<html lang="ko">
<head>
<meta charset = "utf-8">
<title></title>
</head>
<body>
</body>
</html>
<p></p>
로 표현<h></h>
로 표현한다.<hr>
로 표현하는 단일 태그이다.<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset = "utf-8">
<title></title>
</head>
<body>
<h1>제목</h1>
<p>첫번째 문단</p>
<hr>
<h2>더 작은 제목</h2>
<p>두번째 문단</p>
</body>
</html>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset = "utf-8">
<title></title>
</head>
<body>
<h1>제목</h1>
<p>
첫번째 문단 <mark>현광색 부분!</mark>
</p>
<hr>
<h2>더 작은 제목</h2>
<p>두번째 문단</p>
</body>
</html>
결과
p태그나 title태그는 하나의 줄을 전부다 차지하는 블록 레벨 요소이고, mark태그는 형광색 부분만을 차지하는 인라인 요소인 것을 확인할 수 있다.
단일 태그
이다.<img src="이미지 파일" alt="이미지 설명"/>
alt는 이미지를 대체할 수 있는 대체텍스트이다.
<img src="이미지 파일" alt="이미지 설명" width="너비값" height="높이값"/>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset = "utf-8">
<title></title>
</head>
<body>
<h1>이미지 표시하기</h1>
<p>
이미지를 표시해보겠습니다!
</p>
<hr>
<img src="img.jpg" alt="gan example"/>
</body>
</html>
<div></div>
(블록 레벨 컨테이너), <span></span>
(인라인 레벨 컨테이너)<태그명 속성명="속성값" 속성명="속성값">콘텐츠</태그명>
id는 서로 다른 값을 가져야 한다!
class는 동일한 값을 여러 개의 태그에서 공유할 수 있다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset = "utf-8">
<title>컨테이너 활용하기</title>
</head>
<body>
<div id="img_space">
<h1 class="title">영역을 구별해 봅시다!</h1>
<p>
이미지를 표시해보겠습니다!
</p>
<img src="img.jpg" alt="gan example", title="GANoutput"/>
</div>
<hr>
<div id="health">
<h2 class="title"><span>운동을</span> 열심히 하자</h2>
<p>건강을 위해서 열심히 하자</p>
</div>
</body>
</html>
링크란 현재에서 다른 문서로 이동할 수 있는 수단이다. (이메일이나 전화걸기도 가능하다.)
사용법: <a href="https://www.naver.com">네이버로 이동!</a>
taget의 속성을 통해 새로운 문서를 현재 탭에서 열지 새로운 탭에서 열지 결정할 수 있다. ex) taget="_self", target="_blank"
코드 예시
<a href="https://www.naver.com" target="_self">
네이버로 이동!
</a>
<li></li>
태그는 목록에 들어가는 항목 하나하나를 표현할때 사용하는 태그이다.<ul></ul>
로 표시<ol></ol>
로 표시<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset = "utf-8">
<title>목록 만들기</title>
</head>
<body>
<h1>animal list!</h1>
<ul>
<li>puppy</li>
<li>cat</li>
<li>frog</li>
</ul>
<h1>order of algorithm study</h1>
<ol>
<li>stack</li>
<li>queue</li>
<li>dfs</li>
</ol>
</body>
</html>
결과
위에는 순서가 없는 리스트가 적용되었고 아래는 순서가 없는 리스트가 적용된 것을 볼 수 있다.
input
태그는 사용자가 입력을 할 수 있게하는 태크이다.
input의 type은 20가지가 있고 기본값은 text이다.
input태그에는 name 식별자를 추가할 수 있다. ex) <input type="text" name="nickname">
이를 통해 사용자의 입력을 구별할 수 있다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset = "utf-8">
<title>input block</title>
</head>
<body>
<h1>input</h1>
<input type="text" placeholder="input text message" maxlength="5"/> <br>
<input type="button" value="PUSH"/> <br>
<input type="color" /> select color <br>
<input type="range" max="100" min="20" step="5"/> <br>
<input type="date"/> <br>
</body>
</html>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset = "utf-8">
<title>select & text area</title>
</head>
<body>
<h1>select</h1>
<select name="pet">
<option value="1">puppy</option>
<option value="2">cat</option>
<option value="3">frog</option>
<option value="4">horse</option>
</select>
<br>
<br>
<textarea name="content" rows="10" cols="20">default contents</textarea>
</body>
</html>
form은 사용자가 입력한 데이터/입력값을 서버로 보내기 위해 사용하는 태그이다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset = "utf-8">
<title>form exercise</title>
</head>
<body>
<form action="exam.php" method="POST">
<select name="pet">
<option value="1">puppy</option>
<option value="2">cat</option>
<option value="3">frog</option>
<option value="4">horse</option>
</select>
<br>
<input type="submit" value="전송">
</form>
</body>
</html>
결과
여기서 전송을 클릭하면 빈 화면이 나오게 되는데 이는 서버에서 아무것도 보내지 않기 때문이다.
meta 태크를 사용하는 이유:
웹페이지에 대한 정보를 제공하고 이를 통해 검색엔진이 이 정보를 참고하고 최적화할 수 있으며, 검색 결과에도 반영한다.
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="IE=edge">
-> IE브라우저의 최선 버전 엔진을 사용하자는 뜻<meta http-equiv="refresh" content="10">
-> 10초마다 페이지를 새로고침하라는 뜻<meta name="author" content="무라카미 하루키, 베르나르 베르베르">
이외에도 여러가지가 있다!
viewport란?
현제 화면에 보여지는 영역을 말한다. 예를 들면 같은 웹페이지도 노트북으로 보느냐 스마트폰으로 보느냐에 따라 크기와 배율이 다른데 이는 뷰포트가 다르기 때문인다.
<meta name="viewport" content="width=device-width, initial-scale=1.0"> => 뷰포트의 너비를 단말기 너비에 맞추고 초기 배율을 1로 한다!
이제 html 기초 강의 끝이다. 내일은 다시 백엔드로 넘어가거나 css강의를 들어볼 예정이다.
참조