HTML Living Standard

  • HTML, HyperText Markup Language로 대변되는 이 언어는 단순히 Markup Language라는 이유로 많은 개발자들에게 ‘HTML은 프로그래밍 언어가 아니다’라는 식으로 조롱받고는 합니다.
  • HTML 4.01이 1999년 12월 표준이 되었고, HTML 5가 2008년 1월 22일 처음 시작되어 2014년 10월 W3C 권고안이 되었습니다.
  • 2020년 기준, 최신 HTML 표준안은 WHATWG(Web Hypertext Application Technology Working Group)에서 HTML Living Standard 라는 이름으로 관리하고 있으며, WHATWG에 참여 중인 기업체는 Apple, Google, Mozilla, Microsoft 등입니다.

태그란?

  • HTML문서를 구성하고 있는 요소 입니다.
  • 태그는 이름과 속성이 있습니다.

html을 검사

!doctype html

  • 이 문서가 html(=html5) 문법이 적용된 문서임을 알려줍니다.
  • HTML 태그에 포함되지는 않습니다.
  • 문서의 최상위에 위치해야합니다.

html

  • 이하의 모든 태그는 <html> 태그의 자손이어여야 합니다. 즉 모든 HTML 태그의 최상위 부모 요소입니다.

lang=“ko-KR”

  • 태그 내부의 내용이 어떤 나라의 어떤 언어로 작성되었는지를 나타내는 속성입니다.
  • “언어코드-나라코드”의 값을 가집니다.
  • 대부분 html 태그에 사용하지만 전역 속성이므로 다른 태그에도 사용할 수 있습니다.

head

  • 웹 브라우저가 알아야 할 문서의 일반적인 정보들이 입력되는 부분입니다.
  • <html> 태그의 첫번째 자식으로 배치해야합니다.

meta

  • 다른 meta 요소로 표현할 수 없는 문서레벨 메타데이터를 나타내는데 사용하는 태그입니다.
  • 주로 문자 인코딩을 선언하는데 사용됩니다.
  • 닫는 태그는 없습니다.

charset=“utf-8”

  • meta 태그에 사용하는 속성입니다. HTML 문서의 문자 인코딩 방식을 나타냅니다.
  • HTML5에서 유효한 문자 인코딩 방식은 utf-8 뿐이므로 값은 항상 utf-8이어야 합니다.
    • 한국어, 영어, 일본어만 사용할 경우 euc-kr을 선언하기도 하지만 국제화 시대에 다국어로 인코딩이 되게 하기 위해서는 utf-8로 지정하실 것을 권장합니다.
  • 일부 브라우저에서 문자 인코딩 방식은 문서의 첫 1024byte만 보고 결정하므로 그 안에 있어야 합니다. 그러므로 <head> 태그의 앞부분에 위치시키는 것이 좋습니다.
    • 512byte 이내에 위치할 것을 권장합니다.

title

  • 브라우저 탭에 표시될 제목을 나타내는 태그입니다.
  • 내용에는 텍스트만 쓸 수 있으며, 안에 다른 태그가 있어도 무시됩니다.
  • <head> 태그의 자식으로 하나만 존재할 수 있습니다.
  • 사용하지 않을 시 페이지 주소가 문서의 제목으로 사용됩니다.

그 외

  • link 링크 요소 : 외부 리소스와의 관계를 표시합니다.
  • style 스타일 요소 : 스타일 정보를 작성합니다.
  • base 베이스 요소 : 기준 URL 설정합니다.

body

  • 실제 브라우저에 표시되는 내용입니다.
  • <html> 태그의 두번째 자식으로 배치해야합니다.
  • <body> 태그의 자손으로 배치되어 브라우저 내에 표시되는 태그들은 두가지 display 속성 중 하나를 가집니다.
    • 블록(block) 속성을 갖는 태그들은 내용 표시 후 줄바꿈이 됩니다.
    • 인라인(inline) 속성을 갖는 태그들은 내용 표시 후 줄바꿈이 되지 않습니다.
  • 태그의 디자인은 CSS로 바꿀 수 있으므로 태그의 ‘의미론적’ 역할에 더 주목해야합니다.

블록(block) 속성

  • 블록(block) 속성을 갖는 태그들은 내용 표시 후 줄바꿈이 됩니다.

h1 ~ h6 태그 : HTML 구획 제목 요소

  • 제목을 나타낼 때 사용하는 태그입니다.
  • 숫자가 작을수록 글씨 크기가 커집니다.
  • 크기와 상관없이 level로 사용할 것을 권장합니다.

p

  • 문단을 나타낼 때 사용하는 태그입니다.
  • p태그 내부 텍스트에 줄바꿈이 사용될 경우 띄어쓰기 하나로 표현됩니다ㅣ
  • 텍스트의 길이가 텍스트가 담긴 박스 너비보다 길면 그 때 자동으로 줄바꿈이 됩니다.

blockquote

  • 주로 긴 인용문을 나타낼 때 사용하는 태그입ㄴ디ㅏ.
  • 사용시 내부 내용에 들여쓰기가 적용됩니다.
  • cite 태그를 이용해 인용문의 출처를 표시할 수 있습니다.
  • 들여쓰기를 사용하고 싶지 않은 짧은 인용문은 <q>태그를 이용하면 됩니다.
    • q 태그와 다르게 블록으로 할당합니다.

pre

  • 미리 서식을 지정한 텍스트를 나타내는 태그입니다.
  • 텍스트를 있는 그대로 표시하고 싶을 때 사용합니다. 탭이나 뛰어쓰기가 모두 그래로 보존됩니다.
  • <p> 태그 등에서는 스페이스바를 여러개 써도 하나만 나타나지만 <pre> 태그는 그대로 표현됩니다.
  • <pre> 태그를 사용한 부분은 웹 접근성 도구가 건너뛰어버리는 경우가 많습니다.
  • 이를 대비해 웹 접근성을 위해 <pre>태그의 내용에 대한 대체 텍스트를 추가할 필요가 있습니다.
  • 프로그래밍 코드를 있는 그대로 보여주기 위해 <code>, <samp>, <kbd> 태그를 사용할 때도 함께 사용됩니다.

hr

  • 분위기가 전환되는 단락과 단락을 나누는 수평줄을 그릴 때 사용하는 태그입니다.
  • 닫는 태그가 없습니다. </hr> 형태로는 사용되지 않습니다.
  • 주로 단락들을 나열하다가 단락의 주제가 바뀌었을 때 사용됩니다.
  • 그냥 줄을 긋고 싶은거라면 이 태그보다는 css를 사용하는 편이 의미론적으로 좋습니다.

br

  • 줄바꿈(캐리지 리턴)을 나타내는 태그입니다.
  • 닫는 태그가 없습니다. <br> 혹은 </br>의 형태로 사용됩니다.
  • 여백을 주고 싶다면 css의 마진을 사용하는 것이 박스 모델에 더 좋습니다.

div

  • 플로우 콘텐츠를 위한 통용 컨테이너입니다. CSS로 꾸미기 전에는 콘텐츠나 레이아웃에 어떤 영향도 주지 않습니다.

인라인(inline) 속성

  • 인라인(inline) 속성을 갖는 태그들은 내용 표시 후 줄바꿈이 되지 않습니다.

strong

  • 중대하거나 긴급한 내용임을 나타내는 태그입니다.
  • 화면에는 굵은 텍스트(bold체)로 표시됩니다.
  • 웹 접근성 도구는 strong 태그를 만나면 그 부분이 강조되었다고 알려준다고 하는데 도구에 따라 다른듯합니다.
  • <strong> 태그를 겹쳐서 사용하는 것으로 더 강조할 수도 있습니다. 그렇다고 더 굵게 표시되지는 않습니다.

b

  • 텍스트를 굵게(bold체) 표시하는 태그입니다.
  • 중요성, 관련성 없이 다른 글자와 구분을 목적으로 사용 되는 요소입니다.
  • 현재는 그저 텍스트를 꾸미기 위해서 <b> 태그를 사용하는 것은 추천하지 않습니다.
  • 텍스트를 꾸미는 것이 목적이라면 css의 font-weight 속성을 쓰는 것이 추천됩니다.
  • <b>태그에 대한 설정이 웹브라우저마다 다를 수 있으므로 <b>태그로 감싸고 css를 설정해주는 것이 추천됩니다.

em

  • 텍스트의 강세를 표시하는 태그입니다.
  • 화면에는 기울어진 글씨(italic체)로 표시됩니다.
  • <strong> 태그와 마찬가지로 <em> 태그를 겹쳐서 사용할 수도 있습니다. 그렇다고 더 기울어지게 표시되지는 않습니다.

i

  • 관용구나 마음 속 생각, 기술적인 용어 등을 강조하고 싶을 때 사용하는 태그입니다.
  • 화면에는 기울어진 글씨(italic체)로 표시됩니다.
  • 현재는 텍스트를 꾸미는 것이 목적이라면 css의 font-style 속성을 사용하는 것이 추천됩니다.

s

  • 이제는 관계없어졌거나 정확하지 않은 텍스트임을 나타낼 때 사용하는 태그입니다.
  • 화면에는 텍스트에 취소선을 그은 것으로 표시됩니다.
  • 현재는 취소선을 긋는 것만이 목적이라면 css의 text-decoration 속성에 값을 line-through로 사용하는 것이 추천됩니다.
  • 문서의 편집 내역을 나타낼 때는 <s>태그 대신에 <del>과 <ins>태그를 사용할 것이 추천됩니다.

del

  • 문서에서 제거된 텍스트의 범위를 나타내는데 사용되는 태그입니다.
  • 화면에는 텍스트에 취소선을 그은 것으로 표시됩니다.

ins

  • 문서에서 추가된 텍스의 범위를 나타내는데 사용되는 태그입니다.
  • 화면에는 텍스트에 밑줄을 그은 것으로 표시됩니다.

u

  • 텍스트가 문서로 표시되지 않는 주석을 가졌음을 나타낼 때 사용되는 태그입니다.
  • 주로 텍스트의 문법 오류 등을 나타낼 때 사용되어야 합니다.
  • 화면에는 밑줄을 그은 것으로 표시된다.
  • 현재는 밑줄을 긋는 것만이 목적이라면 css의 text-decoration 속성에 값을 underline으로 사용하는 것이 추천됩니다.
  • 텍스트 주석을 나타내고 싶다면 <ruby> 태그를 사용하는 것이 추천됩니다.

ruby

  • 동아시아 글자에 대한 주석을 표현하기 위해 사용되는 태그입니다.
  • 일본어의 후리가나(=요미가나)를 표현할 때 사용할 수 있습니다.
  • <ruby>글자<rt>주석</rt><ruby> 형태로 사용합니다.
rt
  • <ruby>태그 내부에 사용하여 주석 부분을 나타내는 태그입니다.
rp
  • 브라우저가 <ruby>태그 주석을 후리가나 형태로 나타내지 못할 때 대체할 괄호를 나타내는 태그입니다.
  • <ruby>福<rp>(</rp><rt>복</rt><rp>)</rp><ruby> 의 형태로 사용됩니다.

sup

  • 윗첨자를 표현하는데 사용되는 태그입니다.
  • 타이포그래피적인 이유로만 사용할 것을 추천합니다. 즉, 주로 수학식의 거듭제곱이나 영어권의 서수 표시 등을 할 때 사용됩니다.

sub

  • 아래첨자를 표현하는데 사용되는 태그입니다.
  • 타이포그래피적인 이유로만 사용할 것을 추천합니다. 즉, 주로 화학식에서 원소의 수나 텍스트의 각주 번호 등을 표기할 때 사용됩니다.

small

  • 덧붙이는 글이나 저작권 표기 등을 위해 작게 써도되는 내용을 나타내는 태그입니다.
  • 그저 글자를 작게 쓰고 싶은 거라면 css에서 font-size 속성을 사용하는 것을 추천합니다.

abbr

  • 줄임말을 나타낼 때 사용하는 태그입니다.
  • title 속성을 사용하여 전체 내용을 표시할 수 있습니다. 마우스를 올리고 있으면 표시됩니다.
  • 화면에는 점선으로 밑줄을 그은 것으로 표시됩니다.

q

  • 간단한 문장을 인용한 것을 나타낼 때 사용되는 태그입니다.
  • <blockquote>태그와 달리 줄바꿈이 되지 않고, 인용 내용에 큰따옴표를 붙여서 표시됩니다.
  • cite 태그를 붙여서 인용문의 출처를 나타낼 수 있습니다.

cite

  • 인용문의 출처를 나타낼 때 사용되는 태그입니다.
  • 화면에는 기울어진 글씨(italic체)로 표시됩니다.

code

  • 짧은 코드 조각을 나타낼 때 사용되는 태그입니다.
  • 화면에는 고정폭 글꼴로 표시됩니다.
  • <pre>태그화 함께 사용하여 긴 코드를 나타낼 수도 있습니다.

kbd

  • 키보드 입력, 음성 입력 등 사용자의 입력을 나타낼 때 사용되는 태그입니다.
  • 화면에는 고정폭 글꼴로 표시됩니다.
  • <samp>태그와 함께 사용하는 경우도 많습니다.

samp

  • 컴퓨터 프로그램 출력의 예시 등을 나타낼 때 사용되는 태그입니다.
  • 화면에는 고정폭 글꼴로 표시됩니다.

mark

  • 맥락상 관련성이 있는 곳을 하이라이트 할 때 사용되는 태그입니다.
  • 사용시 마치 형광펜을 칠한 것처럼 표시됩니다.
  • 디자인적인 의미만 갖는다면 span태그와 css를 통해서 표현하는 것이 추천됩니다.

span

  • 줄바꿈 없이 영역을 묶기 위해서 사용되는 태그입니다.
  • 의미론적으로는 오히려 아무 의미가 없으므로 CSS를 통해 스타일을 주는데 사용됩니다.

time

  • 시간의 특정 지점 또는 구간을 나타냅니다. datetime 특성의 값을 지정해 보다 적절한 검색 결과나, 알림 같은 특정 기능을 구현할 때 사용할 수 있습니다.

목록을 만드는 태그

ul

  • 순서가 상관없는 목록을 만들때 사용하는 태그입니다.
  • 항목 앞에 작은 원이나 사각형 같은 불릿(bullet)이 붙습니다.
  • HTML5에서는 이 불릿을 수정할 때 css의 list-style-type 속성을 사용할 것을 추천하고 있습니다.

ol

  • 순서가 중요한 목록을 만들때 사용하는 태그입니다.
  • 항목 앞에 마커로 아라비아 숫자나 로마숫자, 영어가 붙습니다.
  • 이 카운터는 css의 list-style-type 속성으로 수정할 수 있습니다.
  • 하지만 기술적, 법률적 문서에서는 HTML 태그 속성이 중요하므로 type 속성으로 바꿀 수 있습니다.
  • type 속성은 1(숫자, 기본값), i(로마숫자 소문자), I(로마숫자 대문자), a(영문 소문자), A(영문 대문자)의 값을 가집니다.
  • start 속성으로 순서 목록의 시작 값을 바꿀 수 있습니다.
  • reversed 속성으로 항목을 역순으로 표시할 수 있습니다.
li
  • <ul> 태그나 <ol> 태그 내부의 개별 리스트를 표현할 때 사용하는 태그입니다.
    1. 태그 안에 사용할 때 value 속성으로 항목의 순서를 설정할 수 있습니다.
    2. value 값이 사용되면 그 값부터 순서를 셉니다.
    3. <li> 태그는 닫는 태그가 필요한 태그지만 <li> 태그가 연속될 때는 닫는 태그를 생략할 수도 있습니다.

dl

  • 제목과 설명이 한쌍인 설명 목록을 나타내는 태그입니다.
  • 예를 들어 ‘단어/정의’, ‘질문/답’ 목록 등에 사용할 수 있습니다.
dt
  • <dl>태그 내부에서 제목을 나타내는 태그입니다.
  • dt와 dd는 1:1, 1:n, n:1, n:m 가능합니다. 하지만 1:0은 불가능합니다.
    • dt에 대한 dd는 하나는 무조건 따라 와야 합니다.
dd
  • <dl>태그 내부에서 설명을 나타내는 태그입니다.

표를 만드는 태그

table

  • 표의 시작과 끝을 나타내는 태그입니다.
  • 기본 스타일에서는 테두리가 표시되지 않습니다.

caption

  • 표의 제목을 나타냅니다.
  • <table> 태그의 첫번째 자식이어야 합니다.
  • 표의 상단에 가운데 정렬로 표시됩니다.

tr

  • 표의 행(row: 가로줄)을 나타내는 태그입니다.
  • <table> 태그 안에 사용합니다.

th

  • 표에서 제목셀의 역할을 하는 셀 한칸을 나타내는 태그입니다.
  • 전역 속성인 id 속성을 사용해서 id를 지정해두면 headers 속성으로 관련된 셀임을 나타낼 수 있습니다.
  • abbr 속성을 사용하여 화면엔 표시되지 않지만 접근성에 도움을 주는 셀 내용에 대한 간략한 설명을 추가할 수 있습니다.
  • scope 속성을 사용하여 화면엔 표시되지 않지만 이 제목셀이 어떤 셀들과 연관되는지 표시할 수 있습니다.
  • <td>태그와 마찬가지로 colspan과 lowspan 속성을 이용해 셀들을 합칠 수 있습니다.

td

  • 표의 셀 한칸을 나타내는 태그입니다.
  • colspan과 rowspan 속성을 이용해서 셀을 합칠 수 있습니다.
  • headers 속성을 이용하면 화면에 표시되지는 않지만 관련된 th 셀을 표시할 수 있습니다.

thead

  • 표의 내용을 의미론적으로 구조화할 때 표의 상단 부분을 나타낼 때 사용하는 태그입니다.
  • tbody 태그 앞에 위치해야 합니다.

tbody

  • 표의 내용을 의미론적으로 구조화할 때 표의 본문 부분을 나타낼 때 사용하는 태그입니다.
  • thead 태그 뒤, tfoot태그 앞에 위치해야 합니다.

tbody

  • 표의 내용을 의미론적으로 구조화할 때 표의 본문 부분을 나타낼 때 사용하는 태그입니다.
  • thead 태그 뒤, tfoot태그 앞에 위치해야 합니다.

tfoot

  • 표의 내용을 의미론적으로 구조화할 때 표의 하단 부분을 나타낼 때 사용하는 태그입니다.
  • tbody 태그 뒤에 위치해야 합니다.

colgroup

  • col 태그를 묶기 위해서 사용되는 구획 태그입니다.
  • caption태그 뒤, 첫번째 tr태그나 thead태그 앞에 위치해야 합니다.

col

  • 표 내부에서 하나의 열이나 여러개의 열을 묶어서 스타일을 지정할 때 사용하는 태그입니다.
  • 닫는 태그는 없습니다.
  • 사용된 순서대로 표의 열을 첫번째부터 순서대로 가리키며 span 태그로 묶으면 그 갯수만큼의 열을 가리킵니다다.
  • caption태그 뒤, 첫번째 tr태그나 thead태그 앞에 위치해야합니다.
  • 사실상 CSS를 위한 태그라서 예제 코드에 CSS가 포함되어 있습니다.
  • 행을 묶는 태그는 tr태그로 충분하므로 존재하지 않습니다.

이미지를 표시하는 태그

img

  • HTML 문서에서 이미지를 표시할 때 사용되는 태그입니다.
  • 닫는 태그는 사용하지 않습니다.
  • 이미지 주소를 나타내는 src 속성은 필수로 있어야 합니다.
src 속성
  • 표시할 이미지의 주소(URI)를 나타내기 위해서 사용되는 속성입니다.
  • 값으로 내 컴퓨터에 있는 파일 경로나 웹 이미지 링크 주소를 사용할 수 있습니다.
  • 내 컴퓨터에 있는 파일을 웹에 보여주려면 이미지 파일도 서버에 같은 경로로 올라가 있어야 합니다.
  • 웹 상의 이미지를 사용할 경우 경로를 ‘참조’하는 방식이기 때문에 원본 경로의 이미지 상태에 종속됩니다.
alt 속성
  • 이미지를 표시할 수 없을 때 이미지를 설명하는 대체 텍스트를 삽입하기 위해 사용되는 속성.
  • 대체 텍스트는 웹 접근성을 향상 시키기 위해서도 넣어줄 필요가 있다.
width, height 속성
  • 화면에 표시할 이미지의 넓이(width)와 높이(height)를 정하는 속성 입니다.
  • 값은 양의 정수값을 받습니다. 뒤에 단위를 작성하더라도 px로 적용됩니다.
  • 생략할 경우 원본 이미지의 크기로 표시됩니다.
  • width나 height 중 하나만 사용할 경우 나머지는 원본 이미지 크기 비율로 자동 설정됩니다.
  • 원본 이미지의 크기보다 크게 설정하면 이미지가 확대되고, 작게 설정하면 이미지가 축소됩니다.
  • 이때 사용된 이미지가 비트맵 포맷 이라면 확대시 화질이 깨지게 되니 주의해야 합니다.
  • 벡터 포맷인 svg 파일을 사용하면 확대해도 화질이 깨지지 않습니다.
  • css로도 이미지 크기를 조정할 수 있습니다. css를 사용하면 퍼센트(%)나 vw, vh 단위로도 조정가능 합니다.

figure

  • 독립적인 콘텐츠를 표현합니다. <figcaption> 요소를 사용해 설명을 붙일 수 있습니다. 피규어, 설명, 콘텐츠는 하나의 단위로 참조됩니다.

figcaption

  • 부모 <figure> 요소가 포함하는 다른 콘텐츠에 대한 설명 혹은 범례를 나타냅니다.

HTML 이미지 맵 만들기

  • 이미지 맵이란 문서 내 이미지의 일부 범위만 지정해서 링크를 거는 것입니다.
  • 하나의 이미지의 서로 다른 범위에 서로 다른 링크를 거는 것도 가능합니다.

map

  • 이미지 맵을 만들때 사용되는 태그입니다.
  • map태그의 name 속성과 img 태그의 usemap속성으로 서로 연결합니다.
  • id 속성을 사용했다면 name 속성의 값과 id 속성의 값은 서로 같아야 합니다.
    • ex) <map name=“m1”> … </map> <img href=”…” usemap=“m1”>

area

  • 이미지맵에서 이미지 내의 범위를 지정하고 링크를 걸 때 사용하는 태그입니다.
  • a태그에 shape 속성과 coords 속성이 추가된 태그라고 생각하면 됩니다.
  • 범위 지정시 웹페이지 내에서의 이미지로 지정해야합니다.
  • 이미지를 확대 혹은 축소했을 경우 좌표가 달라짐에 주의해야 합니다.
shape속성 과 그에 따른 coords 속성
  • 지정할 범위의 모양을 정합니다. 정수로만 적어야하며 단위는 px입니다.
  • rect : 사각형 모양. 좌상단의 점과 우하단의 점을 지정합니다.
    • coord 형식 : x1,y1,x2,y2
  • circle : 원모양. 원의 중심과 반지름을 지정합니다.
    • coord 형식 : x1,x2,r
  • poly : 다각형 모양. 다각형의 꼭지점쌍을 지정합니다. 삼각형이랑 좌표쌍 3개, 5각형이라면 좌표쌍 5개가 필요합니다.
  • default : 전체 지정. 이미지 전체를 선택할 때 사용합니다. shape속성이 default일 경우 coords 속성은 사용되지 않습니다.
  • default가 없다면 이미지의 다른 부분에는 링크가 생기지 않습니다.

링크를 만드는 태그

a

  • 다른 문서 혹은 문서 내의 다른 부분 혹은 그 외의 주소(URL)로 이동하는 연결점을 만드는 태그 입니다.
  • <a href=“주소”>텍스트</a> 혹은 <a href=“주소”><img src=“이미지 경로”></a> 의 두가지 형태로 사용됩니다.
  • 방문 주소를 나타내는 href 속성은 필수로 있어야 합니다.
  • 링크가 걸린 텍스트는 밑줄이 쳐진 색 있는 텍스트로 표현됩니다.
  • 링크를 방문하기 전에는 파란색, 클릭 중이면 빨간색, 방문 후에는 빨간색으로 표시됩니다.
href 속성
  • 이동할 주소(URL)를 나타내는 속성 입니다.
  • 값으로는 HTTP 기반 URL이 가장 많이 사용되지만, 브라우저가 지원하는 모든 URL 스킴을 사용할 수 있습니다.
    • URL 스킴이란 FTP, mailto, rtsp 등 URL의 맨 앞에서 URL의 종류를 나타내는 단어입니다.
hreflang 속성
  • 이동할 페이지가 어떤 언어를 사용하는지에 대한 힌트를 제공하는 속성 입니다.
  • 전역 속성인 lang에 사용가능한 값들을 사용할 수 있습니다.
  • 특별한 내장 기능은 없습니다.
target 속성
  • 링크한 페이지를 표시할 위치를 나타내는 속성 입니다.

  • 특정 키워드 혹은 <iframe>태그의 name 속성 값을 사용합니다.

  • ‘_self’ : 기본값, 현재 브라우저에 표시합니다.

  • ‘_blank’ : 새로운 브라우저 맥락에 표시합니다. 보통 새 탭이지만 사용자 브라우저 설정에 따라 달라질 수 있습니다.

  • ‘_parent’ : URL을 현재 브라우징 맥락의 부모에 표시한다. 부모 브라우저가 없으면 self와 동일하게 행동합니다.

  • ‘_top’ : URL을 최상단 브라우징 맥락에 표시합니다. 부모 브라우저가 없으면 self와 동일하게 행동합니다.

rel
  • 현재 문서와 링크될 문서의 관계를 나타내는 속성 입니다.
  • 여러개의 값을 가질 수 있으며 띄어쓰기로 구분합니다.
  • ‘alternate’ : 링크된 문서가 해당 문서의 대체 버전임을 나타냅니다.(영문 페이지 등)
  • ‘author’ : 링크된 문서가 해당 문서의 저자에 대한 정보 페이지임을 나타냅니다.
  • ‘help’ : 링크된 문서가 해당 문서에 대한 도움말 페이지임을 나타냅니다.
  • ‘license’ : 링크된 문서가 해당 문서의 저작권 정보 페이지임을 나타냅니다.
  • ‘bookmark’ : 링크된 주소가 해당 문서의 즐겨찾기용 고유 주소임을 나타냅니다.
  • ‘search’ : 링크된 문서가 해당 문서를 위한 검색 도구임을 나타냅니다.
  • ‘tag’ : 링크된 문서가 해당 문서를 위한 키워드임을 나타냅니다.
  • ‘external’ : 링크된 문서가 해당 문서와 같은 사이트 내에 있지 않음을 나타냅니다.
  • ‘next’ : 링크된 문서가 해당 문서와 연관된 문서들의 모음 중 다음 문서임을 나타냅니다.
  • ‘prev’ : 링크된 문서가 해당 문서와 연관된 문서들의 모음 중 이전 문서임을 나타냅니다.
  • ‘nofollow’ : 검색엔진이나 봇등이 추적해서는 안됨을 나타냅니다.
  • ‘noreferrer’ : 사용자가 링크를 클릭할 때 브라우저가 HTTP 리퍼러 헤더를 전송해서는 안됨을 나타냅니다.
  • ‘noopener’ : 링크를 따라 연결되는 어떠한 브라우징 컨텍스트도 오프너여서는 안됨을 나타냅니다.
download
  • 링크로 이동하는 대신 링크의 리소스를 다운로드할지 물어봅니다.
  • 지정한 속성 값은 파일명으로 추천됩니다.
  • 값을 지정하지 않으면 브라우저가 자동으로 추천합니다.
  • 동일 출처 URL이나 blob:: 혹은 data:: 스킴에서만 작동합니다.

폼을 만드는 태그

폼(form)이란?

  • HTML에서 폼이란 데이터를 서버에 보내기 위해 사용하는 모든 대화형 컨트롤을 의미합니다.

form

  • 폼의 시작과 끝을 알리는 구획 태그입니다.
  • method : 사용자가 입력한 내용들을 서버 쪽 프로그램에 어떻게 넘겨줄지 지정합니다.
    • get : 주소 표시줄에 사용자가 입력한 내용이 그대로 들어납니다. 넘길 수 있는 데이터의 제한이 있습니다.
    • post : 사용자의 입력을 표준 입력으로 넘겨줍니다. 넘길 수 있는 데이터의 제한이 없고 주소 표시줄에 들어나지 않습니다.
  • autocomplete : 자동완성을 사용할지 여부를 설정합니다. 기본값은 on으로 설정되어 있습니다. on,off의 값을 가집니다.
  • action : form태그 안의 내용들을 처리해 줄 프로그램의 주소(URI)를 지정합니다. 제출시 그 주소로 이동합니다.
  • target : action태그에 지정된 주소를 어디에 열지를 지정합니다. a태그의 target 속성과 동일합니다.

fieldset

  • 폼 요소들을 그룹으로 묶을때 사용되는 구획 태그입니다.
  • 사용시 태그 내부의 요소들을 검은색 실선으로 묶습니다.
  • <legend>태그로 구획의 이름을 표시할 수 있습니다.
  • name : 그룹의 이름을 나타내는 속성입니다.
  • disabled : 묶은 태그들을 비활성화한다. 비활성화된 태그는 회색으로 표시되어 작동하지 않습니다.
    • 값을 갖지 않으며, 적어도 무시됩니다.
  • form : form 요소의 id를 값으로 갖는 속성으로 <fieldset>과 <form>을 연결해줍니다.
  • <fieldset> 내의 <input>요소를 양식으로 묶으려면 해당 <form>내에 직접 사용해야합니다.
  • <fieldset>에 대한 설명은 첫번째 자식으로 사용된 <legend> 태그가 담당합니다.

legend

  • <fieldset> 태그의 제목 혹은 콘텐츠 설명을 나타내는 태그입니다.

폼에 들어가는 컨트롤 태그들

컨트롤 태그에서 어느정도 공통적으로 사용되는 속성

  • form : 컨트롤과 연결된 양식의 id. 지정하지 않아도 조상 중에 form 요소가 있으면 해당 form과 연결됩니다.
    • 조상 중에 form 요소가 있어도 이 속성을 지정함으로 다른 폼 요소와 연결되도록 할 수 있습니다.
  • name : 컨트롤의 이름을 지정한다. 서버쪽에서 식별자로 사용됩니다. id속성이 존재한다면 같은 값을 가져야 합니다.
  • autocomplete : 자동완성기능 사용 여부를 지정한다. 지정하지 않을 경우 상위 태그의 설정을 상속받습니다.
    • ‘on’ ‘off’값을 가집니다.
  • disabled : 컨트롤과 상호작용이 가능한지 여부를 지정합니다. 지정하지 않을 경우 상위 태그의 설정을 상속받습니다.
    • bool값을 가지며 true일 경우 포커스도 잡을 수 없고 내용이 아예 제출되지 않습니다.
  • readonly : 사용자가 컨트롤 안의 내용을 수정가능한지 여부를 지정합니다. disabled 속성과는 다르게 값은 제출됩니다.
    • bool값을 가지며 true여도 포커스는 잡을 수 있습니다.
  • required : 사용자가 양식을 제출하기 전에 이 컨트롤을 꼭 채워야 함을 나타냅니다. 값을 가지지 않습니다.
  • autofocus : 이 속성을 지정하면 페이지를 불러왔을 때 자동으로 포커스를 가집니다.
    • 페이지의 컨트롤 요소 중 단 하나만 이 속성을 가질 수 있습니다.

label

  • 대화형 컨트롤 요소에 설명을 붙일 때 사용하는 태그입니다.
  • 레이블 가능한 컨트롤 요소와 연결할 수 있습니다.
  • 레이블을 눌러서 컨트롤 요소에 초점을 맞출 수 있으므로 마우스나 터치스크린 사용자에게 도움이 됩니다.
  • 또한 컨트롤 요소와 설명이 명시적으로 연결되므로 보조기술 이용자의 웹 접근성이 향상됩니다.
  • for : 레이블 가능한 컨트롤 태그의 id를 값으로 가져 레이블과 컨트롤을 연결합니다.
    • 컨트롤과 레이블을 연결하는 방법 1 : 컨트롤의 id속성 값을 label의 for 속성값에 작성합니다.
    • ex) <label for=“name”> 이름</label> <input type=“text” id=“name”>
    • 1번 방법을 사용할 경우 <label>태그와 컨트롤 요소가 떨어져 있어도 된다는 장점이 있습니다.
    • id는 원칙적으로 문서내에 하나만 존재해야 하므로 제대로 작성했다면 문제 될 일이 없습니다. 하지만 같은 id를 가진 컨트롤 요소가 여러개 존재한다면 label은 가장 가까운 컨트롤 요소와 연결됩니다.
    • 컨트롤과 레이블을 연결하는 방법 2 : 컨트롤을 레이블 태그 안에 작성합니다. (for와 id 필요없습니다)
    • ex) <label> 이름 <input type=“text”> </label>
    • 2번 방법을 사용할 경우 <label> 태그 내부에 여러개의 컨트롤 요소가 있다면 제일 첫번째 컨트롤과 연결됩니다.
    • 1번과 2번 방법을 동시에 사용했을 경우 for,id 연결이 우선시 됩니다.
  • form : label태그가 form태그 밖에 있더라도 같이 묶여진 요소임을 알려주는 속성입니다. form태그의 id값을 값으로 가집니다.

meter

  • 스칼라 값 혹은 백분율을 시각적으로 보여줄 때 사용되는 태그입니다.
  • 그냥 어떠한 수치의 결과를 보려면 meter입니다. meter태그는 변함없이 그 수치를 볼 때 사용합니다.
  • label 태그처럼 대화형 컨트롤 요소와 연결하여 데이터를 시각화하는데 사용됩니다.
  • value : 현재 값. meter태그가 대화형 컨트롤 요소는 아니기 때문에 직접적으로 제출되는 값은 아닙니다.
    • min값과 max값을 지정한 경우 그 사이여야 합니다. 지정하지 않았거나 잘못된 값인 경우 0으로 간주합니다.
    • 지정했지만 min값과 max값 사이가 아닐 경우 값은 그대로지만 넘친 값은 잘려서 표현되지 않습니다.
  • min : 표현 가능한 최소값. max 값보다 작아야 합니다. 지정하지 않을 경우 기본값은 0입니다.
  • max : 표현 가능한 최대값. min 값보다 커야합니다. 지정하지 않을 경우 기본값은 1입니다.
  • low : 값이 작다고 할 수 있는 최대값. 값이 min ~ low 사이에 있을 경우 값이 작다고 표현합니다.
    • low의 값은 min값을 초과해야하며, max, high값 미만이어야 합니다.
    • 지정하지 않거나, min값보다 작을 경우 min값과 같은 값으로 취급됩니다.
    • 기본적으로 현재 값이 low 이하이면 바가 노랗게 표현됩니다.
  • high : 값이 크다고 할 수 있는 최소값. 값이 high ~ max 사이에 있을 경우 값이 크다고 표현합니다.
    • high의 값은 max값 미만이어야 하며, min, low값 초과여야 합니다.
    • 지정하지 않거나, max값보다 클 경우 max값과 같은 값으로 취급됩니다.
    • 기본저긍로 현재 값이 high 이상이면 바가 노랗게 표현됩니다.
  • optimum : 이상적인 값. low, high 속성과 함께 사용될 때 의미가 있습니다.
    • optimum 값이 min과 low 사이라면 값이 작은게 이상적이고, high와 max사이라면 값이 큰게 이상적입니다.
    • 설정하지 않았거나, optimum값이 low와 high 사이라면 중간값일 때 이상적입니다.
    • 기본적으로 값이 이상적인 범위에 있다면 바가 초록색으로 표시됩니다.

progress

  • 작업의 진행률을 시각적으로 보여줄 때 주로 사용하는 태그입니다.
  • 파일 업로드를 할 때 지금 당장의 진행도를 알고 싶으면 progress를 사용합니다.
  • meter 태그와 다르게 progress 태그의 값 범위는 항상 0 ~ max까지로 min값을 따로 설정할 수 없습니다.
  • label 태그처럼 대화형 컨트롤 요소와 연결하여 데이터를 시각화하는데 사용됩니다.
  • max : 작업이 완료되기 위해서 수행되어야 하는 총 작업량. 0을 초과하는 유효한 부동소수점 값을 가져야합니다.
    • 설정하지 않을 경우 기본값은 1입니다.
  • value : 현재까지 완료된 작업량. max값을 지정했을 경우 max 값 이하의 유효한 부동소수점 값이어야 합니다.
    • 값이 지정되지 않았을 경우 미결정 상태로 작업이 언제 완료 될지 알 수 없음을 나타냅니다.

textarea

  • 여러줄의 텍스트를 나타내거나 입력할 수 있는 공간을 나타내는 태그입니다.
  • cols : textarea의 넓이를 지정합니다. 값은 단위를 적지 않은 양의 정수여야 합니다. em단위로 지정됩니다.
  • rows : textarea의 높이를 지정합니다. 값은 단위를 적지 않은 양의 정수여야 합니다. em단위로 지정됩니다.
  • maxlength : 입력가능한 최대 문자 크기를 지정합니다. 지정할 경우 그 이상은 입력되지 않습니다.
  • minlength : 사용자가 입력해야하는 문자의 최소 개수를 지정합니다. 부족하면 제출되지 않습니다.

select

  • 드롭다운 목록을 만들때 사용하는 태그입니다.
  • 내부에 <option> 태그를 사용해서 선택지를 만듭니다.
  • multiple : 지정한 경우, 메뉴에서 다수의 옵션을 선택할 수 있습니다.
    • 이 속성이 있고 size 속성이 없을 경우 대부분의 브라우저가 드랍다운 목록이 아닌 선택 가능한 모든 옵션을 보여줍니다.
    • 컨트롤을 누르고 누르거나 드래그를 해야 여러 개가 선택됩니다.
  • size : multiple 속성등의 이유로 스크롤 가능한 목록 상자로 표현할 경우에 한번에 보여줄 옵션의 수를 나타냅니다.
  • em 단위로 목록 상자의 크기가 커지는 식으로 표현됩니다.
  • 스크롤 가능한 목록 상자로 바꾸지 않았어도 size값이 2 이상이면 스크롤 가능한 목록 상자가 됩니다.

datalist

  • input태그와 함께 사용되며 드랍다운 메뉴로 추천 입력값을 보여주는 태그입니다.
  • <input> 요소에 데이터를 입력할 때 미리 정의된 옵션을 드롭다운 리스트로 보여줌으로써 자동완성 기능을 제공합니다. <input> 요소의 list 속성값으로 <datalist> 요소의 id 속성값을 명시하면, 해당 <datalist> 요소에서 미리 정의한 옵션들을 <input> 요소에서 사용할 수 있습니다.
  • 그외는 select 태그와 거의 비슷합니다.

optgroup

  • <select>태그와 <datalist>태그의 선택지로 사용되는 <option>태그를 묶을 때 사용되는 구획 태그입니다.
  • 그룹의 이름을 나타내는 label 속성을 필수로 가져야합니다.
  • disabled 속성을 사용하면 하위 옵션을 선택 불가하게 만듭니다.

option

  • <select>태그와 <datalist>태그의 선택지로 사용되는 태그입니다.
  • label : 옵션의 텍스트를 나타내는 속성.
    • 지정하지 않을 경우 요소의 텍스트 콘텐츠로 지정됩니다. 지정했을 경우 요소의 텍스트 콘텐츠는 무시됩니다.
  • value : 서버에 보낼 실제 값을 나타내는 속성.
    • 지정하지 않을 경우 요소의 텍스트 콘텐츠로 지정됩니다. 텍스트 콘텐츠도 비어있을 경우 null값이 지정됩니다.
  • selected : 초기 값으로 이 옵션이 선택되어 있게 합니다. multiple 속성이 없을 경우 하나의 옵션값만 지정할 수 있습니다.

output

  • 웹 사이트나 앱에서 계산이나 사용자 행동의 결과를 삽입할 수 있는 컨테이너 요소입니다.

input

  • HTML의 대표적인 입력 컨트롤 태그입니다. 대화형 컨트롤을 만들 때 사용되는 태그입니다.
  • type값에 따라 매우 다양한 작동방식을 갖는다.
    • text, password, submit 등
  • type값을 지정하지 않을 경우의 기본값은 ‘text’입니다.
  • 같은 속성값도 타입에 따른 다른 작동 방식을 갖을 수 있으니 사용에 주의해야합니다.
  • input에 대한 내용은 너무 많기 때문에 별도의 글로 정리되어 있습니다.

button

  • 표준 버튼 컨트롤을 만드는 태그입니다.
  • <buttion>태그는 <input>태그보다 css디자인을 적용하기 훨씬 쉽습니다.
    • <input>태그는 value 속성에 텍스트값 밖에 지정할 수 없지만, <button>태그는 내부에 HTML 콘텐츠(<em>, <strong> 심지어 <img>)도 포함할 수 있습니다.
    • ‘::aftet’, ‘::before’ 가상 클래스까지 사용하는 복잡한 렌더링도 가능합니다.
  • type : 버튼의 행동 방식. ‘submit’, ‘reset’, ‘button’의 세가지 값을 가질 수 있습니다.
    • submit : 버튼을 누르면 양식의 데이터를 서버로 제출합니다. type속성의 기본값이다. <input type=submit> 태그에서 사용되는 속성과 동일하게 사용됩니다. (formaction, formenctype, formmethod, formnovalidate, formtarget)
    • reset : 버튼을 누르면 모든 컨트롤의 입력값을 초깃값으로 되돌립니다.
    • button : 기본 행동이 없는 버튼을 만듭니다.
  • menu : menu 타입은 실험적 기능으로 대부분의 브라우저에서 아직 지원하지 않습니다.
  • value : 버튼의 초깃값. 제출할 때 값/이름 쌍(value/name pair)으로 서버에 전송됩니다.
    • input태그에서는 value 값이 곧 버튼의 label이지만 button 태그에서는 내부의 텍스트 요소가 버튼의 label입니다.
  • name : 버튼의 이름. 제출할 때 값/이름 쌍(value/name pair)으로 서버에 전송됩니다.
  • form : 버튼과 연결할 form 태그의 id를 값으로 가집니다.
    • 조상 중에 form 태그가 있다면 그 값을 상속 받습니다.
  • disabled : 버튼의 활성화 여부를 나타냅니다. boolean 값입니다.

구조를 만드는 시멘틱 태그

  • 웹 표준인 HTML5가 제정되기 전까지는 문서 구조를 <div>태그로 잡고 id 속성으로 구분했습니다. 이 방식의 문제점은 다음과 같습니다.
      1. 문서 구조를 한눈에 파악하기 어려워서 이후에 유지보수 하기가 어렵스빈다.
      1. 웹 접근성 도구나 검색 엔진이 문서의 구조를 파악하기 어렵습니다.
  • 이러한 문제를 해결하기 위해서 HTML 표준안에서 웹 문서의 일반적인 구조를 표현하는 시멘틱 태그들이 추가되었습니다.
  • 시멘틱 태그들은 이런 표준화된 웹 문서 레이아웃을 표시하는데 도움을 줍니다.

header

  • 문서의 머릿말 부분을 나타내는 태그입니다.
  • 전체 페이지에 대한 소개나 탐색을 위한 내용이 포함됩니다.
  • <header>태그는 주로 <body>태그의 자식으로 사용되지만 꼭 그래야하는 건 아닙니다. 단, <header>태그는 <address>나 <footer>, <header>태그의 자손일 순 없습니다. 또한, <header>태그는 <footer>나 <header> 태그의 조상이 될 수 없습니다.
  • 구획 콘텐츠가 아니므로 자체적으로 구획을 생성하지 않습니다.
    • 개요에 표시되는 구획으로 나누려면 내부에 제목 태그 (h1~h6)나, <section>등의 구획 태그를 사용해야 합니다.

nav

  • 동일한 사이트 내의 다른 문서나 다른 사이트의 문서로 연결하는 링크 모음을 나타내는 태그입니다.
  • <nav>태그는 주로 <header>의 자손으로 사용되지만 꼭 그래야만 하는 것은 아닙니다.
  • 사이드바에서 메뉴 카테고리를 표시할 수도 있고, 푸터에서 사이트맵을 표시할 수도 있습니다.
  • 구획 콘텐츠 태그이므로 구획을 생성합니다.

footer

  • 문서의 꼬리말 부분을 나타내는 태그입니다.
  • 주로 구획의 작성자, 저작권 정보, 관련 문서 등의 내용이 포함됩니다.
  • <footer>태그는 주로 <body>태그의 자식으로 사용되지만 꼭 그래야하는 건 아닙니다. 단, <footer>태그는 <address>, <header>, <footer>태그의 자손일 순 없습니다. 또한, <footer>태그는 <header>와 <footer>의 조상이 될 순 없습니다.
  • 구획 콘텐츠가 아니므로 자체적으로 구획을 생성하지 않습니다.
  • 개요에 표시되는 구획으로 나누려면 내부에 제목 태그 (h1~h6)나, <section>등의 구획 태그를 사용해야 합니다.

address

  • 문서와 관련된 단체, 조직 등에 대한 연락처 정보를 나타내는 태그입니다.
  • 브라우저 기본 스타일로 기울임체가 적용됩니다.
  • 주로 <footer> 태그의 자식으로 사용되지만 <header>나 각각의 <article>에도 사용할 수 있습니다. 단, <address>태그는 <address>태그의 조상이나 자손이 될 수 없습니다. 또한, <address>태그 내부에는 제목 콘텐츠나 구획 콘텐츠, <header>나 <footer>태그는 사용할 수 없습니다.
  • 구획 콘텐츠가 아니며 구획을 나누는 태그를 가질 수 없으므로 개요에 표시되지 않습니다.

section

  • HTML 문서에서 독립적인 구획을 나타내며, 문서의 흐름 중 내용을 주제에 따라 묶을때 사용됩니다.
  • 주로 <header>와 <footer>, <aside> 부분을 제외한 본문 영역을 구분짓기 위해서 사용합니다.
  • 구획 태그이므로 개요에 표시되는 구획을 나타내지만 이를 식별한 수단으로 제목 태그를 사용하는 걸 추천합니다.
  • 필요하다면 <section>태그를 <header>안에 쓸 수도 있고, <header>안에 <section>태그를 넣을 수도 있습니다. 단, <section>태그를 <address>의 자손으로 쓰는건 허용되지 않습니다.
  • 주제에 따른 분류가 아니라 단순히 스타일링이 목적이라면
    를 쓰는 걸 추천합니다.

article

  • 문서 내에서 독립적으로 구분해서 배포하거나 재사용 가능한 구획을 나타냅니다.
  • 주로 본문 영역을 나타내는 <section>태그 내부에서 독립적인 내용들을 나타나는데 사용됩니다.
  • 구획 태그이므로 개요에 표시되는 구획을 나타내지만 이를 식별한 수단으로 제목 태그를 사용하는 걸 추천합니다.
  • <article>태그를 <section>태그 내부에 쓸 수도 있고, 그 반대도 가능합니다. 단, <article>태그를 <address>태그의 자손으로 쓰는건 허용되지 않습니다.
  • <article>태그를 중첩해서 사용할 경우 내부 <article>은 외부 <article>과 관련된 글을 나타냅니다.
    • ex) 글의 댓글을 나타내는 <article>은 글을 나타내는 <article>요소에 중첩한 <article>로 나타낼 수 있습니다.

aside

  • 문서의 주요 내용과 직접적인 연관이 없는 부분을 나타냅니다.
  • 디자인적으로는 주로 사이드바 혹은 콜아웃 박스로 표현합니다.
  • <aside>태그의 요소는 문서의 주요 내용과는 관련이 없으므로 문서의 주요 개요엔 포함되지 않습니다.

main

  • 문서 <body>의 주요 콘텐츠를 나타냅니다.
  • 주요 콘텐츠 영역은 문서의 핵심 주제나 앱의 핵심 기능에 직접적으로 연결됐거나 확장하는 콘텐츠로 이루어집니다.

요약문을 만드는 태그

details

  • “열림” 상태일 때만 내부 정보를 보여주는 정보 공개 위젯을 만듭니다.
  • “닫힘” 상태일 때 보여줄 요약이나 레이블은 <summary> 태그를 통해서 제공할 수 있습니다.
  • 열림, 닫힌 상태는 레이블 옆의 작은 삼각형이 돌아가면서 표시됩니다.
  • 이 마커는 css의 ::marker 가상 요소를 이용해서 스타일링 할 수 있습니다.
  • Boolean값인 open 속성을 사용하여 초기 상태를 열림 상태로 바꿀 수 있습니다.

summary

  • 디테일 태그 내부에 사용하여 “닫힘” 상태일 때 보여줄 요약이나 레이블을 표시합니다.
  • 사용하지 않을 경우 브라우저 기본값으로 자동 생성됩니다.

임베디드 요소

  • picture HiDPI 반응형 이미지 대응 요소입니다.
    • ( 사이즈 별로 이미지 설정 - )
  • source : 다중 미디어 리소스 지정 요소입니다.
  • video : 동영상 콘텐츠 요소입니다.
  • audio : 오디오 콘텐츠 요소입니다.
  • track : 트랙 요소입니다.(자막 요소)
    • WebVTT 자막 파일
    • Track 엘리먼트 기초
  • iframe : 인라인 프레임 요소입니다.
  • SVG: Scalable Vector Graphic
  • MathML: Mathematical Markup Language

인터렉티브 요소

  • details : 보다 자세한 추가 정보를 제공하는 위젯 요소입니다
  • summary : details 요소 내부에 추가되는 레이블(제목) 요소입니다.
  • dialog : 다이얼로그(대화상자) 요소입니다.

스크립팅 요소

  • script: 자바스크립트를 작성할 영역입니다.
  • noscript : 자바스크립트 지원 하지 않을 때 표현 할 요소입니다.
  • canvas : 캔버스 요소입니다.

사용자와 상호 작용 하는 속성

  • <input type=“hidden”>은 사용자에게는 보이지 않는 숨겨진 입력 필드를 정의합니다.
  • tabindex 전역 특성은 요소가 포커스 가능함을 나타내며, 이름에서도 알 수 있듯, 주로 Tab 키를 사용하는 연속적인 키보드 탐색에서 어느 순서에 위치할지 지정합니다.
    • 음의 정숫값(보통 tabindex=“-1”)은 연속 키보드 탐색으로 접근할 수는 없으나 JavaScript나 시각적으로는 포커스 가능함을 뜻합니다. 많은 경우, JavaScript를 사용한 위젯의 접근성 확보를 위해 사용합니다.
    • tabindex=“0”은 기본값으로, 요소에 연속 키보드 탐색으로 접근할 수 있으며 그 순서는 문서 소스 코드의 순서에 따른다는 것을 나타냅니다.
    • 양의 정숫값은 요소를 연속 키보드 탐색으로 접근할 수 있으며, 그 순서는 해당 값으로 지정하겠다는 것을 뜻합니다. 즉, tabindex=“4”인 요소는 tabindex=“5”인 요소 이전에, 그러나 tabindex=“3”인 요소 이후에 접근할 수 있습니다. 다수의 요소가 하나의 값을 공유할 경우 그 안에서 문서 소스 코드의 순서를 따릅니다. 최댓값은 32767입니다.
    • 0보다 큰 tabindex 값을 피하세요. 접근성 보조기술 사용자의 페이지 탐색과 조작에 방해될 수 있습니다. 대신, 문서의 요소 순서를 논리적인 순서대로 배치하세요.
    • 에 tabindex를 설정할 경우, 콘텐츠에도 tabindex를 지정하지 않는 한 화살표 키로 스크롤 할 수 없습니다. fiddle을 방문해 tabindex가 스크롤에 주는 영향을 확인하세요. 단축키를 활성화하는 방법은 브라우저와 플랫폼에 따라 다를 수 있습니다. mac chrom은 control + option + 단축키 입니다.
  • accesskey 전역 특성은 현재 요소에 대한 키보드 단축키를 생성할 때 사용할 힌트를 제공합니다. accesskey 속성의 값은 반드시 출력 가능한 단일 문자(키보드로 입력할 수 있는 글자)여야 합니다.
  • contenteditable 전역 특성은 사용자가 요소를 편집할 수 있는지 나타내는 열거형 특성입니다.
  • draggable 전역 특성은 요소의 드래그 가능 여부를 나타내는 열거형 특성으로, 네이티브 브라우저 동작 방식과 HTML Drag and Drop API 모두 통제합니다.
    • draggable 특성은 불리언이 아니고 열거형 특성이므로, true 또는 false의 지정 또한 필수입니다. 그러므로 <img draggable>처럼 사용할 수 없고, 올바른 사용법은 <img draggable=“false”>입니다.

marquee

  • marquee element는 스크롤 되는 영역을 지정합니다.
  • duplicate 된 것으로 보입니다.

a 태그 안에서는 a 태그를 사용할 수 없습니다.

a 태그의 다운로드 속성은 cross-origin requests를 지원하지 않습니다.

HTML5 API

API 설명
Drag and Drop HTML 요소 혹은 파일을 끌어서(드래그해서) 다른 HTML 요소에 놓을 때(드롭할 때) 데이터를 전달하는 기능을 제공합니다.
Blob 이진 데이터를 다루는 기능을 제공합니다.
File 로컬 파일 시스템을 읽고 쓸 수 있는 기능을 제공합니다.
Web Workers 프로그램 여러 개를 멀티스레드로 병렬 처리하는 기능을 제공합니다.
Web Stroage 대용량이며 저장 기간에 제한이 없는 데이터를 로컬에 저장하는 기능을 제공합니다.
Indexed Database 로컬에 키-값(key-value) 타입의 관계형 데이터베이스 기능을 제공합니다.
WebSockets 서버와의 양방향 통신 기능을 제공합니다.
Geolocation GPS 등의 위치 정보를 다루는 기능을 제공합니다.
Canvas 2차원, 3차원 그래픽스 기능을 제공합니다.

참고