본격적으로 HTML을 사용하여 홈페이지를 제작하는데 있어 필요한 단계를 배우고 연습해보기로 했다.

아래의 사이트는 별도의 회원가입 없이 무료로 풀린 홈페이지 템플릿의 소스를 받아 직접 배치해볼 수 있었다.

 

테마 웨건(theme wagon) 사이트 바로가기 : https://themewagon.com/

 

Home

Download the Best Free & Premium Responsive Bootstrap Templates from a hand-picked collection of over 1000 responsive Bootstrap themes & templates

themewagon.com


 

   1. 박싱처리 (블록요소 미리 나누기)   

 

   먼처 큰 섹션을 나눠서 구분하고 그 안에 배치될 요소가 가질 태그와 속성을 고려해 나눠본다.

개발자마다 다를 순 있겠지만 크게 세로로 쌓아갈지, 가로로 쌓아갈지를 정한다고 한다.

 

 

   2. 돔트리 작성   

 

드로우아이오(draw.io)https://app.diagrams.net/   

 

Flowchart Maker & Online Diagram Software

Flowchart Maker and Online Diagram Software draw.io is free online diagram software. You can use it as a flowchart maker, network diagram software, to create UML online, as an ER diagram tool, to design database schema, to build BPMN online, as a circuit d

app.diagrams.net

 

   본격적으로 HTML을 작성하기 전, 나눠둔 섹션을 따라 돔트리(DOM)라는 밑그림 작업을 시작한다.

처음에는 그냥 화면만 보고 따라서 배치하면 되는 것 같았지만 막상 들어가니 생각대로 안되는 경우가 많아 기초가 튼튼해야 한다는 말이 무엇인지 경험으로 알게되었다(...) 특히 이번 돔트리에는 클래스 명과 아이디를 그렇게 세세하게 지정하진 않았는데 엔간하면 각자 지정해 주는 편이 뒤에가서 손이 덜 가는 것 같다.

 

 

 

   3. HTML 작성   

폰트 어썸(font awesome) : https://fontawesome.com/

 

Font Awesome

The internet's icon library + toolkit. Used by millions of designers, devs, & content creators. Open-source. Always free. Always awesome.

fontawesome.com

 

   이제 돔트리를 바탕으로 HTML을 작성해주면 되는데 여기서 폰트 어썸 이라는 사이트를 통해 사이트에 필요한 아이콘들의 코드를 가져와 문서에 붙여넣을 수 있다. 회원가입을 하면 스크립트 코드가 주어지는데 복사하여 문서 내 헤드 부분에 삽입을 해주면 쉽게 페이지를 꾸밀 수 있다. (단, 이 방법은 사이트가 다운되었을 시 제대로 작동하지 않는다는 단점이 있다)

 

 

 

   4. CSS 작성   

돔트리를 기반으로 HTML작성이 끝났다면 홈페이지의 외관을 작성해줘야 한다. 헤드에 스타일을 넣어 바로 꾸며줄 수도 있지만 홈페이지와 같이 양이 늘어나다 보면 CSS의 내용도 HTML 못지 않은 길이가 되기 때문에 CSS파일을 따로 작성해 서로 연결시켜주는 작업이 필요하다.

 

<link rel="stylesheet" href="스타일 시트(CSS) 경로 지정">

 

 

 

background
background-color 요소의 배경 색상을 지정
background-image 요소의 배경에 한 개 이상의 이미지를 삽입
background-repeat 배경 이미지의 반복을 지정
repeat 배경 이미지를 수직, 수평으로 반복 (기본값)
repeat-x 배경 이미지를 수평으로 반복
repeat-y 배경 이미지를 수직으로 반복
no-repeat 반복 없음
background-position 배경 이미지의 위치를 지정
background-attachment 요소가 스크롤 될 때 배경 이미지의 스크롤 여부를 설정
scroll 배경 이미지가 요소를 따라서 같이 스크롤 됨
fixed 배경 이미지가 뷰포트에 고정되어 요소와 같이 스크롤 되지 않음
local 요소 내 스크롤 시 배경 이미지가 함께 스크롤 됨

 

다중 이미지 삽입의 예시

   

   다중 이미지 삽입의 확인을 위해 기본값으로 설정되어 있는 repeat 반복 값을 없애고 크기가 다른 이미지를 삽입해보면 제일 위에 쌓인 순서대로 깔려 삽입되는 것을 확인할 수 있다.


Transitions

※ CSS속성의 전환 효과를 지정 - CSS 속성의 시작과 끝을 지정하여 중간 값을 애니메이션함

transition-property 전환 효과를 사용할 속성의 이름 (쉼표로 구분)
transition-duration 전환 효과의 지속시간을 설정
transition-timing-function 타이밍 함수 지정
transition-delay 전환 효과를 몇 초 뒤에 시작할지 대기시간을 설정

 

Transfrom

※ 요소의 변환 효과(모양의 변형)를 지정

 

 

backface-visibility

    rotate 값이 90도를 넘어갈 경우  요소의 뒷면에서 앞면이 보이게 할 지 설정하는 속성. 기본 값으로 보여지게 설정되어 있으나 만일 숨기고 싶은 경우에는 hidden 값을 주면 된다.

 

transform: perspective( )

    쉽게 말해 가상의 눈을 만들어 관찰자의 거리를 정하는 요소이다. px단위는 관찰자의 눈이 요소로부터 얼마나 떨어져 있는지의 거리를 나타내며 값이 작을수록 요소가 확대되어 나타난다.

 

transform-origin

    관찰자의 눈의 위치를 지정하는 속성이다. X축과 Y축 순서로 작성한다.

padding / margin

※ 박스의 안쪽 여백 / 박스의 바깥쪽 여백

-top, -bottom, -right, -left { padding or margin : 0px 0px 0px 0px; }
위, 아래, 오른쪽, 왼쪽 패딩이나 마진값을 줄 수 있다. 왼쪽부터 위, 오른쪽, 아래, 왼쪽 순으로 패딩이나 마진값을 줄수 있다. 네 값을 모두 주지 않을 경우 위/아래, 오른쪽/왼쪽이 한 쌍이 되어 같은 값을 공유한다. 하나의 값을 줄 경우 네 곳이 같은 값을 가지게 된다.  

 

display

※ 요소가 지닌 속성을 바꾸거나 재배치 할 때 사용

block 블록 요소로 지정함 (div, p, ul, ol, dl, li, h1~h6, address, hr 등)
inline 인라인 요소로 지정함 (label, b, strong, mark, i, span, small, sup, sub, s 등)
inline-block 인라인 블록 요소로 지정함 (input 등)
none 요소의 박스 타입을 없앰 (요소가 사라짐)
flex 부모를 기준으로 자식들을 수평으로 배치함

 

font

※ 글자와 관련된 속성들을 지정함

font-style 글자 기울기 지정
font-size 글자 크기 지정
font-weight 글자 두께(가중치) 지정 - normal : 기본값, 400과 동일함
- bold : 글자 두껍게, 700과 동일함
- bolder : 부모요소보다 더 두껍게
- lighter : 부모요소보다 더 얇게
- 100~900 : normal과 bold이외의 두께를 지정할 때 사용
line-height 줄 높이(간격)을 지정 - normal : 브라우저가 가진 기본 정의를 사용
- 숫자 : 요소 자체 글꼴 크기의 배수로 지정
- 단위 : px, em, cm등 단위로 지정
- % : 요소 자체 글꼴 크기의 비율로 지정
font-family 글꼴(서체) 지정 - serif : 바탕체 계열
- sans-serif : 고딕체 계열
- monospace : 고정너비 글꼴 계열
- cursive : 필기체 계열
- fantasy : 장식 글꼴 계열

 

하나하나 지정하기엔 속성이 너무 많아 번거롭다면 단축 속성을 활용하자.

 

font : [style 값] [weight 값] [size 값] / [height 값] [family 값]

※ 빨간 글씨 부분은 반드시 포함되어야 하는 값이며, 이외의 값은 생략해도 문제없다.


 

position

※ 텍스트, 이미지, 표 등의 요소를 웹 문서에 배치할 때 사용하는 속성

정적 위치 설정 static 기본값, 각종 요소를 HTML 문서에 마크업한 그대로 배치됨
상대 위치 설정 relative 다른 요소의 위치에 영향을 받지 않으며, 자기 자신을 기준으로 이동하여 배치함
절대 위치 설정 absolute relative를 가진 부모요소를 기준으로 이동하여 배치함 (없을 경우 문서 자체가 부모가 됨)
고정 위치 설정 fixed 부모요소가 body로 고정되며, 스크롤을 동작해도 고정된 위치에 그대로 배치됨
sticky 스크롤을 동작하면 부모요소가 가진 범위에서만 고정된 위치에 그대로 배치됨
(top, botoom, right, left 어디에 고정할 지 정해야 함)

 

fixed 예시


sticky 예시

속성 선택자

[속성] 해당 속성이 정의된 모든 태그를 값에 상관 없이 선택함
[속성=값] 정의된 속성과 값이 동일한 태그를 선택함
[속성~=값] 공백으로 구분된 속성값 리스트 중 하나가 주어진 값과 동일한 태그를 선택
[속성|=값] 해당 값과 동일하거나, 주어진 값으로 시작하되 하이픈(-) 기호로 이어지는 값을 가진 태그를 선택
[속성^=값] 속성값이 주어진 값으로 시작하는 태그를 선택
[속성$=값] 속성값이 주어진 값으로 끝나는 태그를 선택
[속성*=값] 속성값에 주어진 값을 부분 문자열로 가지고 있는 태그를 선택

 


 

 

이벤트 가상 선택자

: link {} 웹 문서에서 사용자가 방문하지 않았던 링크를 표시함
: visited {} 웹 문서에서 사용자가 방문한 링크를 표시함
: active {} 웹 문서에서 사용자가 링크를 클릭하는 순간을 표시함
: hover {} 웹 문서에서 사용자가 링크에 마우스 포인터를 올리는 순간을 표시함
: focus {} 해당 요소에 초점이 맞춰졌을 때 적용

 

구조적 가상 선택자

: root 문서의 최상위 태그(html)를 선택함
: nth-child(n) 앞에서부터 지정된 순서와 일치하는 태그를 선택함
(선택하고자 하는 태그를 제외한 다른 태그도 순서에 포함되며 n은 수열을 나타냄)
: nth-last-child(n) 뒤에서부터 지정된 순서와 일치하는 태그를 선택함
(선택하고자 하는 태그를 제외한 다른 태그도 순서에 포함되며 n은 수열을 나타냄)
: nth-of-type(n) 앞에서부터 지정된 순서와 일치하는 태그를 선택함
(선택하고자 하는 태그만 순서에 포함되며 n은 수열을 나타냄)
: nth-last-of-type(n) 뒤에서부터 지정된 순서와 일치하는 태그를 선택함
(선택하고자 하는 태그만 순서에 포함되며 n은 수열을 나타냄)
: first-child 지정된 태그가 첫 번째면 선택함 (선택하고자 하는 태그를 제외한 다른 태그도 순서에 포함)
: last-child 지정된 태그가 마지막이라면 선택함 (선택하고자 하는 태그를 제외한 다른 태그도 순서에 포함)
: first-of-type 지정된 태그 중 첫 번째 태그를 선택함 (선택하고자 하는 태그만 순서에 포함)
: last-of-type 지정된 태그 중 마지막 태그를 선택함 (선택하고자 하는 태그만 순서에 포함)
: only-child 지정된 태그가 유일한 자식이면 선택함 (다른 태그가 포함되어 있다면 선택하지 않음)
: only-of-type 지정된 태그가 유일한 타입이면 선택함 (다른 태그가 포함되어 있어도 해당 태그가 유일하면 선택함)
: empty 텍스트 및 공백을 포함하여 자식 요소가 없는 태그를 선택함

 

기타 가상 선택자

언어 선택자 : lang(ko) HTML lang 속성값이 'ko'로 지정된 태그를 선택함
부정 선택자 : not(x) x가 아닌 태그를 선택함
목적 선택자 : target 태그의 URL이 요청되면 선택함
가상 엘리먼트 선택자 :: first-line 태그의 첫 번째 라인을 선택함
:: first-letter 태그의 첫 번째 문자를 선택함
:: before 태그의 시작 지점에 생성된 태그를 선택함
:: after 태그의 끝 지점에 생성된 태그를 선택함

 

조합 선택자

※ 기존의 여러 선택자를 '복합적' 으로 조합하는 방법

후손 선택자 선택자A  선택자B 선택자B가 선택자 A에 반드시 포함되어 있을 경우에 선택함
자손 선택자 선택자A > 선택자B 부모 선택자A의 직계 자손인 선택자B를 선택함
인접 형제 선택자 선택자A + 선택자B 선택자A 바로 다음에 위치한 선택자 B를 선택함
일반 형제 선택자 선택자A ~ 선택자B 선택자A 뒤에 인접하여 나타나는 모든 선택자 B를 선택함
그룹 선택자 선택자A, 선택자B 선택자A와 선택자B를 모두 선택함

 

선택자 연습용 미니게임 바로가기(CSS Diner) ▶ https://flukeout.github.io/

   선택자 관련 내용의 공부는 CSS Diner 게임으로 복습하는게 괜찮았던 것 같다.

   아래는 오답노트 겸 전 레벨 정답을 적어두도록 하겠다.


 

Level1   plate

  • 쉽다, <plate> 태그를 선택하는 문제.

Level2   bento

  • 접시와 도시락이 나란히 있다, 여기서 도시락을 고르는 문제. 1레벨과 동일하다.

Level3   #fancy

  • 접시 두개 중 장식이 된 접시를 고르는 문제. 장식된 접시는 fancy라는 ID값을 가지고 있으니 #으로 해당 ID값을 입력하면 된다.

Level4   plate apple

  • 반드시 접시 위에 있는 사과만 선택해야 하기 때문에 후손 선택자를 이용하면 된다.

Level5   plate#fancy pickle 또는 #fancy pickle

  • 반드시 꾸며진 접시 위에 있는 피클을 선택해야 하기 때문에 후손 선택자를 이용하면 되는데 '꾸며진 접시' 값을 입력해도 되고, 해당 ID는 고유의 값이기 때문에 '꾸며진' 값만 주어도 문제 없다.

Level6 .small

  • 클래스 값을 입력하는 문제, 사과들 중에서도 '작은' 클래스를 가진 사과만 선택하면 되기 때문에 .을 찍고 선택하고자 하는 클래스 명을 입력하면 된다.

Level7 orange.small

  • 오렌지들 중에서도 작은 오렌지만 골라야 하는 문제, <orange> 태그와 함께 해당 클래스 명도 공백없이 입력해주면 small 클래스 값을 가진 오렌지만 선택할 수 있다.

Level8 bento orange.small

  • 도시락 위에 있는 오렌지들 중에서도 작은 클래스를 가진 오렌지를 고르는 문제, 후손 선택자를 이용하면 간단하다.

Level9 plate, bento

  • <plate>와 <bento>만 선택하면 된다. 그룹 선택자를 통해 해결하자.

Level10 *

  • 모든 오브젝트가 흔들거리고 있다, *을 써서 모두 선택하면 된다.

Level11 plate *

  • 큰 사과, 작은 오렌지, 그리고 피클이 선택해달라 시위하고 있다. 공통점을 찾아 보자면 모두 접시 위에 있으므로 부모인 접시 위에 있는 모든 채소를 선택하면 되겠다. 다만 종류가 다양하니 후손 선택자로 공백에 유의하며 모든 객체 선택인 *을 써주면 된다.

Level12 plate+apple

  • 같은 형제인 값이 다른 사과 둘의 공통점을 보아하니 모두 접시 옆에 위치해 있다. 인접 형제 선택자로 옆의 사과만 골라내면 된다.

Level13 bento~pickle

  • 많은 피클 중에서 도시락 옆에 위치한 피클 두 개만 골라내야 한다. 해당 태그는 어디에 속한 태그가 아닌 도시락과 같은 형제이니 일반 형제 선택자를 사용하면 된다. 그 뒤로 나열된 피클들은 모두 접시라는 부모를 가지고 있기 때문에 같은 형제가 아니라서 선택되지 않는다.

Level14 plate>apple

  • 접시 위에 있는 사과가 한 개 뿐이라고 일반적인 후손 선택자를 쓰면 왼쪽에 위치한 사과도 함께 흔들리게 된다. 후손 선택자는 말 그대로 자손의 후손도 포함되기 때문에 여기서 쓸 수 없고, 자손 선택자를 써서 골라줘야 한다.

Level15 orange:first-child

  • 오렌지 세 개가 접시에 나란히 올라 있는데 그 중에서 첫 번째를 골라야 한다. first-child 선택자를 쓰면 되지만 이 방법은 만약 다른 접시에도 오렌지가 있다면 그 아이도 함께 선택되니 유의하자.

Level16 plate *:only-child

  • 접시 위에 외동인 사과와 피클이 있다. 하지만 옆 집에 사는 도시락에도 피클이 외동으로 있으니 단순 그룹 선택자로 하나하나 지정하는 방법은 안되고, 후손 선택자를 사용해 포괄적으로 지정하면 된다. 접시 위에 있는 후손이 외동일 경우에 선택해달라는 의미이다.
<div> ~ </div>
블록 레벨 요소

웹 브라우저 전체 공간에 대해 블록(block) 형식으로 분할됨
마크업 할 때 단락이 바뀌며, 텍스트 및 인라인 요소를 포함해 일부 블록 요소를 자식으로 포함 가능
블록 요소는 vertical-align / text-align 이 적용되지 않음
<span> ~ </span>
인라인 레벨 요소
웹 브라우저 일부 영역만 인라인(inline) 형식으로 분할됨
마크업 할 때 단락이 바뀌지 않고 이어서 출력되며, 블록 요소를 자식 요소로 포함할 수 없음
대부분 텍스트로 이루어져 있으며 크기값을 설정할 수 없음  (height / width 안됨)

 

 

 


CSS

  • 스타일 시트의 표준안으로 웹 문서에 글꼴, 색상, 정렬과 각 요소의 배치 등 디자인 요소를 적용하는데 사용
  • 문서 작성과 디자인을 분리하여 관리함으로써 수정에 용이
  • 하나의 요소에 인라인 스타일 시트가 중복 정의된 경우에는 제일 마지막(적용될 태그와 가장 인접한) 값이 적용되며, 이를 무시하고 강제로 적용할 때는 !important 를 표시하여 사용
전체 선택자 * { 속성선언; } 모든 태그에 스타일을 적용
타입 선택자 태그 { 속성선언; } 지정한 태그에 스타일을 적용
클래스(class) 선택자 .클래스 이름 { 속성선언; } 지정한 클래스에 스타일을 적용
아이디(id) 선택자 #아이디 { 속성선언; } 지정한 아이디에 스타일을 적용
속성 선택자 [속성] or [속성=값] { 속성선언; } 지정한 속성 또는 값이 있는 태그에 스타일을 적용

 

서식 적용의 예시

 

 

   HTML에서 기본적으로 지원하는 태그 이외에 사용자가 임의적으로 생성한 태그 또한 쓸 수 있다. 하지만 태그에 속성값을 넣는 것 말고는 주어진 효과가 없어서 구분을 지어 나열했을 시에 한줄로 입력이 되는 것을 확인할 수 있었다.

 

글로벌 속성의 종류

accesskey="단축키" 공백으로 구분하여 여러 개의 단축키를 지정
class="클래스 명" 공백으로 구분하여 여러 개의 클래스 명을 지정 (여러개의 태그에 중복 가능)
contrteditable="편집 가능 여부" 편집할 수 있는 경우 true, 편집할 수 없는 경우 공백(" ")이나 false로 지정
contextmenu="menu 요소의 id 속성값" 메뉴 요소의 id 속성값을 지정
dir="텍스트표시 방향"  왼쪽 정렬인 경우 ltr, 오른쪽 정렬인 경우 rtl 로 지정
draggable="드래그 사용 여부" 드래그 할 수 있는 경우 true, 드래그 할 수 없는 경우 false로 지정
dropzone="드롭한 아이템 처리 방법" - copy : 드래그한 데이터가 이 장소에 복사
- move : 드래그한 데이터가 이동
- link : 오리지널 데이터와 드롭된 곳 사이에 통로를 만듦
hidden="hidden" 웹 문서에 표시하지 않음 
id="고유 이름" 해당 태그를 유일하게 식별하는 기능으로 동일 문서 내 같은 이름 사용 금지
lang="언어 코드" 한국어(ko), 영어(en), 프랑스어(tr), 일본어(ja) 등 언어 속성값 지정
spellcheck="철자 체크 여부" 철자 체크 사용 여부를 결정
style="CSS 선언" 세미콜론(;)으로 구분하면 여러 개의 CSS 선언이 가능
tabindex="이동 순서"  

<section> ~ </section> 본문의 구역을 나누는 데 사용됨, 하위 컨텐츠들을 모아둔 그룹
<article> ~ </article> 하위 컨텐츠를 담당함
<p> ~ </p> 빈 줄을 만들어 다음 단락으로 넘어감
<b> ~ </b> 해당 텍스트를 볼드체(굵음) 으로 표시
<strong> ~ </strong> 해당 텍스트를 강조하여 굵게 표시 (볼드체와 유사함)
<i> ~ </i> 해당 텍스트를 이태릭체(기울임) 로 표시
<em> ~ </em> 해당 텍스트를 강조하여 기울인 채 표시 (이태릭체와 유사함)
<ins> ~ </ins> 해당 텍스트에 밑줄을 표시
<del> ~ </del> 해당 텍스트에 취소선을 표시
<sub> ~ </sub> 해당 텍스트를 아랫첨자로 표시
<sup> ~ </sup> 해당 텍스트를 윗첨자로 표시
<mark> ~ </mark> 해당 텍스트에 하이라이트를 표시

 

 

<a href="URL">

<a> ~ </a> 다른 사이트 혹은 같은 문서 내 다른 위치로 이동할 때 사용
href 연결하고자 하는 웹 사이트의 URL이나 경로를 지정함
target 링크를 클릭했을 때 웹 사이트가 열리는 곳을 지정함

_blank : 새로운 웹 브라우저에서 창 열기
_self : 현재 웹 브라우저에서 창 열기 (기본값)
_parent : 부모 웹 브라우저에서 창 열기
_top : 웹 브라우저 전체 영역에 창 열기
id (name)  페이지 내 요소 위치 지정을 위해 임의로 값을 입력

 

<table> 태그

<table> ~ </table>
<tr> ~ </tr> 적용된 갯수만큼 행을 생성
<td> ~ </td> 적용된 갯수만큼 열을 생성
<th> ~ </th> 표의 머리에서 셀 제목 글자를 강조 (볼드체 및 가운데 정렬)
<caption> ~ </caption> 표의 머리에 제목을 삽입
rowspan 셀을 세로로 병합, 속성값으로 병합하려는 행의 수만큼 지정
colspan 셀을 가로로 병합, 속성값으로 병합하려는 열의 수만큼 지정

 

<img> 태그

<img> ~ </img> 웹 문서에 이미지 삽입을 위한 태그
src 이미지 파일이 저장된 경로 지정
alt 이미지를 윕 브라우저에 불러내지 못했을 경우 표시되는 대체 텍스트 지정
width 이미지의 가로 길이를 픽셀 단위로 지정 (% 사용 시, 브라우저 크기의 비율에 맞춰 반영됨)
height 이미지의 세로 길이를 픽셀 단위로 지정 (% 사용 시, 브라우저 크기의 비율에 맞춰 반영됨)
ex. style="height:60px" 또는 height=40%
style 이미지의 스타일을 픽셀 단위로 지정
border 이미지 경계선의 두께를 픽셀 단위로 지정

 

<audio>, <video> 태그

<audio> ~ </audio> 웹 문서에 오디오 파일을 삽입하는 태그
<video> ~ </video> 웹 문서에 비디오 파일을 삽입하는 태그
<source> ~ </source> 여러 형식의 미디어 파일을 동시에 제공할 때 사용
src 오디오/비디오 파일이 저장된 경로 지정
controls 재생 제어기 표시
loop 반복 재생
autoplay 웹 문서가 열림과 동시에 자동으로 재생 (브라우저에서 이 기능을 막아둠)
muted 음소거 상태로 재생되게 함
preload 오디오/비디오 파일 사용 여부와 관계없이 미리 다운로드 함
poster 비디오 파일 재생 전, 또는 다운로드 하지 않은 상태에서 표시될 이미지의 URL을 표시

 

<form> 태그

<form> ~ </form> 웹 양식을 만드는 데 사용하는 태그 (데이터 전달 가능)
<input> ~ </input> 텍스트를 나타낼 수 있는 입력 필드를 나타내는 태그
<textarea> ~ </textarea> 텍스트를 여러 줄에 걸쳐 자유롭게 입력 가능한 텍스트 상자를 생성
<fieldset> ~ </fieldset> 입력 폼이 여러 개 존재할 때, 경계선을 둘러 하나의 그룹으로 만들 때 사용
<select> ~ </select> 펼침 목록에서 한 가지만 선택할 수 있도록 지원하는 태그
<datalist> ~ </datalist> 펼침 목록에서 텍스트 입력 시 자동완성 기능을 제공하는 태그
<option> ~ </option> 드롭 다운 리스트에서 사용되는 하나의 옵션 값을 지정하기 위한 태그
multiple 다중 선택을 위한 속성
action 사용자가 입력한 데이터를 받아 처리하기 위한 웹 프로그램의 페이지 지정
name 폼의 이름을 결정
required null 값을 허용하지 않을 때 쓰는 속성
maxlength / minlength 글자 수의 최댓값/최솟값을 적용할 때 쓰는 속성
placeholder 특정 내용을 미리 표기할 때 쓰는 속성
readonly 읽기 전용 속성
max / min 숫자의 최댓값/최솟값을 적용할 때 쓰는 속성
type 폼의 모양과 기능 결정 - text : 텍스트를 받음
- password : 비밀번호를 받음
- number : 숫자만 받음
- color : 색상을 받음
- radio : 여러 항목 중 단일 선택을 위해 사용
- checkbox : 여러 항목 중 중복 선택을 위해 사용
- button : 클릭 가능한 버튼을 만듦
- reset : 웹 문서 초기화
- submit : action 주소로 전송
- date : 년-월-일 단위로 원하는 날짜 입력
- month : 년-월 단위로 원하는 날짜 입력
- week : 년-주 단위로 원하는 주일을 입력
- time : 시간만 입력
- range : 특정 범위의 숫자를 선택할 때 사용
- email : 이메일 형식에 맞게 입력되지 않으면 경고창을 띄움
- url : 주소 형식에 맞게 입력되지 않으면 경고창을 띄움
method 웹 서버와 클라이언트 간의 통신 방법을 지정 GET 방식

- URL 뒤에 파라미터를 붙여 데이터를 전송
- 사용자가 입력한 값이 데이터와 결합되어 문자열 형식으로 전송
- 서버로 보낼 수 있는 글자 수는 2,048자
- URL에 데이터 값이 그대로 노출되기 때문에 보안에 취약함
POST 방식

- HTTP Request 헤더에 파라미터를 붙여 데이터를 전송
- 서버로 보낼 수 있는 글자 수에 한계 없음
- 보안에 강하나 처리가 복잡해 느리고 무겁다는 단점이 있음

 

+ Recent posts