Visual Code를 사용하여 웹 개발을 진행하고, 크롬에서 동작 시킬것이다.이번 목표는 웹 공부를 끝나고 홈페이지를 하나 개발해보는 것이다.
웹은 클라이언트와 서버로 나뉠 수 가 있다.
웹 개발도 두 가지로 나뉜다. 웹 브라우저의 화면 부분을 다루는 프론트엔드와 사용자가 보는 화면의 뒤, 즉 보이지 않는 영역을 다루는 백에드가 있다.프론트 엔드는 HTML,CSS,JS를 이용하여 개발을 한다. 백엔드는 데이터베이스를 설계하거나 데이터를 처리하고 자바, PHP, 파이썬등의 프로그래밍 언어를 사용한다.
HTML,CSS,JS를 사용하여 개발을 한다.
HTML은
Hypertext Markup Language
의 약자이고 프로그래밍 언어는 아니고 우리가 보는 웹페이지가 어떻게 구조화되어 있는지 브라우저로 하여금 알 수 있도록 하는 언어이다
아래 그림은 HTML의 기본적인 구조이다.
<!DOCTYPE html>
: 현재 문서가 HTML언어로 작성한 웹문서라는 것을 나타낸다.<html> ~ </html>
: 웹 문서의 시작과 끝을 나타낸다.lang이라는 속성을 사용해 문서에서 사용할 언어 지정 가능
<!doctype html>
<html lang="ko">
<head>
...
</head>
<body>
...
</body>
</html>
<head> ~ </head>
: 웹 브라우저가 웹 문서를 해석하는데 필요한 정보를 입력하는 부분<body> ~ </body>
: 웹 브라우저 화면에 나타나는 부분이다.<head>
태그브라우저에게 정보를 주는 역할을 한다.
<head>
태그 내에는 <meta>
,<title>
태그가 들어간다.
<meta>
태그<meta charset ="UTF-8">
한글로 된 내용을 표시하기위해 사용한 문자 세트
<title>
태그<body>
태그실제 브라우저에 표시되는 내용이다. html의 대부분의 태그가 이 안에 들어간다.
특수 기호 입력
화면에 표시되는 모습 | 특수 기호 |
---|---|
& | & |
공백 한칸 | |
< | < |
> | > |
| | | |
( | ( |
) | ) |
, | , |
- | - |
´ | ´ |
<h*n>
* 태그 - 제목 표시
<h*n>* 제목 </h*n>*
<p>
태그 - 텍스트 단락
<p> 텍스트 </p>
<br>
태그 - 줄 바꾸기
<br>
<br>
태그를 사용, 닫는 태그가 없다<blockquote>
태그 - 인용문 넣기
<blockquote> 인용 내용 </blockquote>
<hr>
태그 - 분위기 전환
<hr>
<pre>
태그 - 입력한 그대로 표시
<pre> 텍스트 </pre>
<strong>,<b>
- 굵게 표시
<strong>
: 중요한 내용이라서 강조해야 할 때<b>
: 단순히 굶게 표시할 때<em>,<i>
- 이탤릭체로 표시하기
<em>
: 흐름상 특정 부분을 강조하고 싶을 때<i>
: 단순히 이탤릭체로 표시할 때<q>
인용 내용 표시
<mark>
형광펜 효과
<span>,<div>
영역 묶기
<span>
: 줄 안에서(인라인) 묶기<div>
: 줄 바꿔(블록) 단락으로 묶기<ruby>
: 동아시아 글자에 주석 표시
<ruby>
태그 안에 <rt>
태그를 사용해 주석 표시목록만드는 태그
<ul>,<li>
-순서 없는 목록<ol>,<li>
- 순서 목록<ol>
태그의 속성<dl>,<dt>,<dd>
설명 목록
<dl>
과 <dt>,<dd>
태그 사용<dt>
에 여러개의 <dd>
값을 가질 수 있다.<table> ~</table>
: 표 전체, border 속성을 이용하여 표의 라인 두께 설정<tr> ~ </tr>
: 행<td> ~<td>
: 셀<th> ~<th>
: 제목 셀<td colspan="합칠 행의 개수"> 내용 </td>
<th colspan="합칠 행의 개수"> 내용 </th>
<td rowspan="합칠 열의 개수"> 내용 </td>
<th rowspan="합칠 열의 개수"> 내용 </th>
<caption>
- 표 제목<figure>, <figcaption>
- 표 제목<figcaption>
위치에 따라 표의 위나 아래에 제목표시<figure>~</figure>
태그안에 <table>
태그와 <figcaption>
태그가 위치함<thead>, <tbody><tfoot>
- 표 구조 정의하기<col>,<colgroup>
- 열끼리 묶어 스타일 지정<col>
<colgroup>
태그로 여러 열을 묶을 수도 있는데, <colgroup>
안에 묶는 열의 개수 만큼 <col>
태그를 사용<col>,<colgroup>
태그는 <caption>
뒤, <tr>,<td>
태그 전에 사용해야함<img>
태그<img src="경로" [속성="값"]>
<figure> 요소 <figure>
다른 문서 혹은 다른 사이트로 바로 연결해주는 기능
외부 사이트나 외부 페이지로도 연결
<a>
태그, href 속성
<a href="링크할 주소" [속성="속성 값"]>텍스트 </a>
<a>
태그에서 사용할 수 있는 속성
속성 | 설명 |
---|---|
href | 링크한 문서나 사이트의 주소를 입력 |
target | 링크한 내용이 표시될 위치를지정 |
download | 링크한 내용을 보여 주는 것이 아니라 다운로드함 |
rel | 현재 문서와 링크한 문서의 관계를 알려줌 |
hreflang | 링크한 문서의 언어를 지정 |
type | 링크한 문서의 파일 유형을 알려줌 |
target 속성 -새 탭에서 링크 열기
다른 사이트로 링크하거나 현재 페이지를 유지한 상태에서 링크페이지를 표시할 때
현재 페이지는 그대로 유지하면서 새 창이나 새 탭에 표시
사용할 수 있는 값
속성 값 | 설명 |
---|---|
_blank | 링크 내용이 새 창이나 새 탭에서 열림 |
_self | target 속성의 기본값으로 일크가 있는 화명에서 열림 |
_parent | 프레임을 사용했을 때 링크 내용을 부모 프레임에 표시 |
_top | 프레임을 사용했을 때 프레임을 벗어나 링크 내용을 전체 화면에 표시 |
앵커를 사용하려면 우선 이동하고 싶은 위치마다 id 속성을 이용해 앵커를 만듦
<a>
태그의 href 속성을 사용해서 링크함, 단 앵커 이름 앞에 #을 붙여 앵커 표시
<태그 id="앵커이름"> Text or image</태그>
<a href="#앵커이름"> Text or Image</a>
<area>
태그, usemap 속성 - 이미지맵이미지맵 : 한 이미지 상에 여러 다른 링크를 만드는 것
<map name="맵이름">
<area>
<area>
</map>
<img src="이미지 파일" usemap="#맵이름">
속성 | 설명 |
---|---|
alt | 대체 텍스트를 지정 |
coords | 링크로 사용할 영역을 시작 좌표와 끝 좌표를 이용해 지정 |
download | 링크를 클릭했을 때 링크 문서를 다운로드 |
href | 링크 문서경로를 지정 |
media | 링크 문서를 어떤 미디어에 최적화 시킬지 지정 |
rel | 현재 문서와 링크 문서 사이의 관계를 지정 |
shape | 링크로 사용할 영역의 형태를 지정(lternate, bookmark, help, license, next, nofollow, noreferer, prefetch, prev,search, tag |
target | 링크를 표시할 대상을 지정(default, rect, cricle,poly) |
type | 링크 문서의 미디어 유형을 지정(_blank, _parent, _self, _top, 프레임 이름) |
<form>
태그<form [속성 = "속성 값"]> 여러 폼 요소 </form>
<form>
태그에 사용 하는 속성들<form>
태그가 있을 경우, 폼들을 구분하기위해 사용<form>
태그안의 내용을 처리해 줄 서버 상의 프로그램을 지정<action>
태그에서 지정한 스크립트 파일을 현재 창이 아닌 다른 위치에 열도록 지정<label>
태그<label [속성="속성 값"]> 레이블<input ...></label>
<label for="id이름">
<input id="id이름" [속성="속성값"]>
</label>
<fieldset>
태그<fieldset [속성="속성값"]> ... </fieldtset>
<input>
태그<input>
태그를 이용해 처리<input>
태그의 type 속성을 통해 지정<intput type="유형" [속성="속성 값"]>
<input>
태그의 id 속성
<label>
태그를 이용해 캡션을 붙일 수 있다type 종류
<input type="hidden" name="이름" value="서버로 넘길 값">
<input type="text" [속성="속성 값"]>
<input type="email" [속성="속성 값"]>
<input type="te" [속성="속성 값"]>
숫자 입력 필드, 슬라이드 막대를 이용해 숫자 입력
<input type="range" [속성="속성 값"]>
<b>주문 개수: <\b> <input type="range" min="1" max="5" value="1">개
<input type="password" [속성="속성 값"]>
<input type="search" [속성="속성 값"]>
<input type="url" [속성="속성 값"]>
숫자 입력 필드 브라우저에 따라 스핀 박스로 표시됨
<input type="number" [속성="속성 값"]>
<b>주문 개수: <\b> <input type="number" min="1" max="5" value="1">개
radio : 여러 항목 중 하나만 선택<input type="radio" [속성="속성 값"]>
checkbox : 여러 항목 중 둘 이상 선택 <input type="checkbox" [속성="속성 값"]>
속성 | 설명 |
---|---|
name | 라디오 버튼이나 체크박스가 여러개 있는 경우, 서버의 폼 프로그램에서 라디오 버튼이나 체크박스를 구분하기 위해 이름을 지정. 라디오 버튼은 여러개 중에서 한 가지만 선택하는 것이기 때문에 관련 있는 그룹끼리는 name 속성 값을 똑같이 만듬 |
value | 선택한 라디오 버튼이나 체크박스를 서버로 알려 줄 때 넘길 값을 지정합니다. 이 값은 영문이거나 숫자여야 하며 필수 속성입니다. |
checked | 라디오 버튼의 항목들은 처음에 아무 것도 선택되지 않은 상태로 화면에 표시되는게 기본으로 선택해 놓을 항목이 있다면 checked 속성을 사용 |
<input type="color" [ value="기본 색" [속성="속성 값"]]>
<input type="date | month | week" [value="기본값" 속성="속성 값"]>
유형 | 설명 |
---|---|
date | 날짜를 선택 “yyyy-mm-dd”형식 |
month | 월과 연도를 선택 “yyyy-mm” 형식 |
week | 주와 연도를 선택 |
시간 입력
<input type="time | datetime | datetime-local" [value="기본 값" 속성="속성 값"]>
속성 | 설명 |
---|---|
min | 날짜나 시간의 최솟값 지정 |
max | 날짜나 시간의 최댓값 지정 |
step | 스핀 박스의 화살표를 누를 때마다 날짜나 시간을 얼마나 조정할지 지정 |
value | 화면에 표시할 초기값을 지정 |
type=”time”일 경우, 시간은 00:00 부터 23:59까지 입력
type=”datatime” 이나 type=”datatime-local” 유형일 경우, 날짜 다음에 키워드 T를 쓰고 24시간제로 시간을 지정, 예들들어 오후 6시를 나타내려면 T18:00 |
<input type="submit | reset " [value="버튼 내용" 속성="속성 값"]>
<input type="image" src="경로" alt="대체 텍스트" [속성="속성 값"]>
<input>
태그의 속성
<select>, <option>, <optgroup>
여러 옵션 중에서 선택 - 드롭 다운 목록
공간을 최소한으로 사용하면서 여러 옵션 표시 가능
<select 속성="속성 값">
<option value="값" [속성="속성 값"]> 내용 1</option>
<option value="값" [속성="속성 값"]> 내용 2</option>
<option value="값" [속성="속성 값"]> 내용 3</option>
...
</select>
<select>
태그 속성
<option>
태그의 속성
<optgroup>
<datalist>,<option>
데이터 목록에서 제시한 값 중에서 선택하면 그 값이 자동으로 텍스트 필드에 입력됨
데이터 목록에 id를 이용해 이름을 붙이고 <input>
태그의 list 속성에 데이터 목록 id를 지정함
<input type="text" list="데이터 목록 id">
<datalist id="데이터 목록 id">
<option> ... </option>
<option> ... </option>
...
</datalist>
<option>
태그의 속성
<textarea>
<textarea [속성="속성값"]> 내용 </textarea>
<button>
<button [type="submit | reset | button"> 내용 </button>
<output>
계산 결과를 브라우저에 표시
브라우저 화면에 다르게 표시되는 것은 아니지만 태그로 묶인 부분이 일반 텍스트가 아니라 계산의 결과값이라는 점을 웹 브라우저가 정확히 인식할 수 있다.
<form oninpit="result.value=paresInt(num1.value)+parseInt(num2.value)">
<input type="number" name="num1" value="0"> +
<input type="number" name="num2" value="0"> =
<output name="result" for="num"></output>
</form>
<progress>
<meter>