본문 바로가기

프로그램 이론/HTML

[HTML]견고한 웹을 위한 구조설계(XHTML) - 3

1. 문서 정보와 문자 코드 세트(meta)

  1-1. 문자 코드 세트 지정하기

    - 웹 브라우저에서 웹 페이지를 제작할 때 사용한 문자가 깨지지 않고 인코딩되도록 하려면

      meta요소를 이용하여 문자 코드 세트를 지정해야 합니다.

    - 이때 다국어 인코딩의 경우 utf-8을 지정할 수 있으며, 한글은 euc-kr을 선언합니다.


  1-2. 키워드 지정하기

    - 웹 페이지 홍보의 수단으로 meta 요소를 이용하여 검색 키워드를 지정할 수 있습니다.

    - 검색 키워드를 웹 페이지에 지정하면 검색할 때 웹 사이트가 상위에 노출되는 효과를 얻을 수 있다.

    - meta요소를 이용하여 검색 키워드를 지정할 때는 검색 키워드를 콤마(,)로 구분하여 선언합니다.


 1-3. 다양한 문서 정보 저장하기

   - 문자 코드 세트와 키워드 이외에도 subject를 이용하여 문서 제목 정보를 제공하고,

     description값으로 웹 페이지의 요약 정보, 제작자 정보, 저작권 정보 및 검색 로봇 제어 여부 등의

     문서 정보를 지정할 수 있습니다.

2. 문서의 제목(<title>)

  - title 요소는 웹문서의 제목을 선언할 때 사용하는 요소로, 문서마다 유일한 내용으로

    구성해야 합니다.

  - 시각장애인의 경우에는 음성 브라우저를 이용하여 콘텐츠를 탐색하기 때문에 title 요소는

    문서를 구별할 수 있는 첫 번째 관문이라고 할 수 있습니다.

  - 또한 title 요소는 즐겨찾기 및 북마크에 해당 웹 문서를 추가할 경우에 사용되는 북마크 이름으로도

    활용되므로 같은 title을 가진 웹 문서가 여러 개 있어서는 안됩니다.

  - title의 선언 형식은 다음과 같습니다.


3. 제목 <h1> ~ <h6>

  - 제목을 작성하고자 할 때는 <h1>과 같은 헤딩 요소를 이용합니다.

  - 제목은 대제목, 중제목, 소제목 등의 계층 구조를 가지게 되는데 <h1> 다음에 바로 <h3>이 나오지

    않게 주의해야만 논리적인 웹 문서를 제작할 수 있습니다.

  - 헤딩의 선언 형식은 다음과 같습니다.

4. 문단 <p>

  - p 요소는 텍스트를 문다으로 정의할 때 사용합니다.

  - 문단 요소 안에는 <a>, <img> 등과 같은 인라인 요소와 텍스트만 포함할 수 있으며

    블록 요소는 사용할 수 없습니다.

  - 문단 안에서 강제로 줄바꿈해야 하는 경우가 있을 때는 <br/> 요소를 사용할 수 있지만

    시각적 효과 등을 위해 함부로 사용하지 않아야합니다.

  - p요소의 선언 형식은 다음과 같습니다.


5. 줄바꿈 <br>

  - 문단에서 텍스트를 강제로 줄바꿈 할 때는 line break의 의미인 br 요소를 사용합니다.

  - br 요소는 빈 요소로 사용 형식은 다음과 같습니다.

6. 주소 <address>

  - address 요소를 이용하여 웹 문서의 아래쪽에 연락처 및 제작자, 저작권 정보 등을 표시할 수 있습니다.

  - address 안에는 인라인 요소와 텍스트를 포함할 수 있지만, 블록 요소는 포함할 수 없습니다.

  - address 요소의 사용 형식은 다음과 같습니다.

7. 구분선 <hr/>

  - hr 요소는 수평선으로 표현되어 구분선 역활을 하고, 빈 요소이며,

    <hr />로 종료 태그 없이 사용합니다.

  - 논리적인 의미의 구분이라기보다는 콘텐츠의 전후의 내용을 구분할 수 있도록 선으로 나타내는 것입니다.

  - hr 요소는 텍스트 브라우저나 CSS가 제공되지 않는 환경에서 콘텐츠의 구조적 구분을 표현할 수 있기 때문에

    사용자에게 유용합니다.

  - hr 요소는 빈 요소로 사용 형식은 다음과 같습니다.

8. 하이퍼링크 <a>

  - a 요소는 텍스트나 이미지 콘텐츠에 링크를 설정할 때 사용합니다.

  - 사용 가능한 속성에는 href 속성, target 속성,title 속성 등이 있으며,

    Transitional DTD일 경우에만 target 속성을 지정할 수 있습니다.

  - a 요소의 사용 형식은 다음과 같습니다.

9. 이미지 <img/>

  - 웹 문서에 텍스트가 아닌 이미지 개체를 삽입할 때는 빈 요소인 img요소를 이용해야 하며

    img 요소의 경우 scr 속성과 alt 속성은 필수 속성입니다.

  - 특히 alt 속성은 이미지가 보이지 않는 환경에서 대체 텍스트를 제공하기 위한 목적으로 사용하며

    이미지와 동등한 정보를 제공해야 합니다.

  - 만약 alt 속성으로 대체 텍스트를 지정하기 어려운 경우에는 longdesc 속성을 이용하여 이미지에 대한

    대체 정보로 연결할 수 있습니다.

  - img 요소는 빈 요소로 사용 형식은 다음과 같습니다.

10. 비순서형 목록 <ul>

  - ul 요소는 순서가 중요하지 않은 콘텐츠에 사용하기에 적절합니다.

  - ul 요소의 사용 형식은 다음과 같습니다.

11. 순서형 목록 <ol>

  - ol 요소는 순서가 중요한 콘텐츠에 사용하기에 적절합니다.

  - ol 요소의 사용 형식은 다음과 같습니다.

12. 정의형 목록 <dl>

  - dl 요소는 Definition List의 약자로, 용어 정의 리스트를 생성할 때 사용합니다.

  - dl 요소의 경우 단순히 정의형 목록만이 아니라 주종 관계가 성립되는 콘텐츠에 광범위하게

    사용할 수 있습니다.

  - dl 요소의 사용 형식은 다음과 같습니다.

13. 강조 <strong> & <em>

  - 문단의 내용 중에서 강조하려는 콘텐츠를 마크업할 때는 strong와 em을 사용할 수 있다.

  - strong은 강한 강조를, em은 강조의 의미를 갖습니다.

  - 일부 음성 브라우저의 경우 강조 관련 요소로 마크업한 콘텐츠는 좀 더 크게 읽어 주거나

    두번 반복하여 읽어 주기도 합니다.

  - 강조 관련 요소의 사용 형식은 다음과 같습니다.

14. 인용문 <blockquote> & <q>

  - 블록 단위의 인용문이나 문장 형태의 짧은 인용문의 경우 blockquote와 q 요소를 이용할 수 있습니다.

  - blockquote 요소는 블록 요소만 포함할 수 있고, q는 인라인 요소와 텍스트를 포함할 수 있습니다.

  - 인용문의 경우 출처를 명시하려고 할 때 cite 속성으로 인용한 곳을 지정해야만 합니다.

15. 축약어 및 두문자어 <abbr> & <acronym>

  - abbr과 acronym 요소는 축약어(abbreviation) 및 두문자어(initialetter)를 마크업할 때 사용하는 요소입니다.

  - 두문자어인 acronym 요소는 축약어인 abbr 요소와 비슷하지만, 여러개의 단어들로 이루어진 문장 또는

    복합 단어의 앞글자만 따서 줄여 사용하는 것을 말합니다.

  - 축약어 및 두문자어 관련 요소의 사용 형식은 다음과 같습니다.

16. 추가글 및 삭제글 <ins> & <del>

  - 추가글이나 삭제글의 변경된 콘텐츠를 마크업할 때 사용하는 요소로 ins요소와 del요소를 사용할 수 있습니다.

  - ins와 del 요소를 사용할 수 있습니다.

  - 추가글 및 삭제글 관련 요소의 사용 형식은 다음과 같습니다.

17. 첨자 <sup> & <sub>

  - 윗첨자나 아랫첨자 형식으로 콘텐츠를 표현해야 할 경우 sup요소와 sub 요소를 사용할 수 있습니다.

  - 첨자 관련 요소의 사용 형식은 다음과 같습니다.

18. 테이블 요소 <table>,<tr>,<th>,<td>

  - 2차원의 격자 형태로 구성된 표를 생성할 때는 XHTML의 테이블 관력 요소를 이용할 수 있습니다.

  - 테이블(table)은 크게 열(column)과 행(row), 그리고 셀(cell)로 구성되며, 기본적인 형식은 다음과 같습니다.

19. 셀병합 (colspan, rowspan 속성)

  - 제목 셀(th)이나 내용 셀(td)은 colspan 속성이나 rowspan을 이용하여 원하는 방향으로 셀을

    병합 할 수 있습니다.

  - 열이 서로 다른 셀을 병합할 때는 colspan 속성을, 행이 서로 다른 셀을 병합할 때는 rowspan을 사용하며

    형식은 다음과 같습니다.

20. 테이블 제목 및 요약문 <caption>요소와 summary속성

  - 접근성 높은 테이블 데이터를 마크업할 때 테이블의 제목 및 테이블 데이터의 내용을 요약해서

    알려줄 수 있는 caption요소와 summary 속성을 사용하는 것이 좋습니다.

  - caption요소에는 테이블의 내용을 대표할 수 있는 제목을 삽입하고 summary속성에는 간단한 제목보다

    테이블의 내용이 무엇인지를 설명해서 시각적으로 테이블 접근이 쉽지 않은 사용자가 summary의

    내용을 듣고 해당 테이블의 콘텐츠를 파악한 후 건너뛸 것인지, 탐색할 것인지를 선택할 수 있도록 해야 합니다.

  - cation 요소와 summary 속성의 사용 형식은 다음과 같습니다.

21. 제목 셀과 내용 셀의 연관성(scope, id, headers 속성)

  - 시각장애가 있는 사용자나 음성 브라우저의 경우 테이블을 탐색할 때 왼쪽에서 오른쪽으로 셀의 내용만 듣고

    판단하기 때문에 열과 행을 파악하고 내용 셀의 연관성을 유추하는 것이 쉽지 않습니다.

  - 이러한 경우에는 테이블의 열과 행의 제목 셀에 해당하는 th요소에 scope 속성을 사용하는 것을 권장합니다.

  - th 요소에 scope 속성을 지정하고 해당 값으로 col이나 row,rowgroup,colgroup를 할당하면 해당 셀이

    열의 제목인지, 행의 제목인지 등을 알 수 있습니다.

  - 좀 더 복잡하게 병합된 셀의 경우, th 요소는 id 속성으로 네이밍을 할당하고 해당 제목 셀과 연관성이 있는

    내용 셀에 headers 속성과 id 값을 연결하여 제목 셀과 내용 셀의 관계를 지정할 수 있습니다.

-- scope 속성의 사용형식

-- id, headers 속성의 사용 형식

22. 열 그룹 요소 <colgroup>, <col>

  - 테이블의 열끼리 논리적으로 그룹화하려면 colgroup, col 요소를 사용할 수 있습니다.

    이때 그룹화하는 열이 하나 이상일 경우 span속성을 사용하여 그룹화하려는 열을 지정합니다.

  - colgroup은 논리적인 그룹화를 위해 사용하는 요소이고, col은 스타일을 지정할 목적으로 사용한다는 점이

    다릅니다.

  - colgroup 및 col 요소의 사용 형식은 다음과 같습니다.

23. 행 그룹 요소 <thead>, <tfoot>, <tbody>

  - 테이블의 행을 논리적으로 구성할 때 헤더 행은 thead 요소로부터, 행은 tfoot 요소로, 본문 행은 tbody를

    사용할 수 있습니다.

  - 행 그룹화 요소의 선언 순서는 thead, tfoot, tbody 순이고 thead요소와 tfoot요소는 테이블에서

    한번만 사용할 수 있습니다.

  - 제목 행으로 지정된 thead 요소에는 반드시 제목 셀(th 요소)을 이용해서 해당 영역이 테이블의 헤더 영역임을

    지정해야만 합니다.

  - thead, tfoot, tbody 요소의 사용 형식은 다음과 같습니다.

24. 폼 <form>

  - 폼 요소는 웹 문서가 서로 상호작용을 할 수 있도록 하는 역활을 담당합니다.

  - 사용자가 자료를 검색하기 위한 검색어 입력 상자나 여러 가지 항목에서 원하는 값을 선택할 수 있도록

    제공하는 라디오 버튼 또는 체크박스, 목록 형태로 펼쳐지는 목록 상자(combo box), 서버로 자료를 전송하기

    위한 전송 버튼 등이 이에 해당됩니다.

  - form 요소의 사용 형식은 다음과 같습니다.

25. 폼 요소 그룹화 및 제목 <fieldset>, <legend>

  - 여러 개의 폼 요소를 그룹화하여 좀 더 구조적으로 만들려면 fieldset요소를 사용해야 합니다.

  - legend 요소로 fieldset의 컨트롤들이 어떠한 성격의 콘텐츠인지 제목 형식으로 알려줄 수 있으며,

    fieldset 요소의 바로 뒤에 한 번만 작성할 수 있습니다.

  - fieldset과 legend 요소의 사용 형식은 다음과 같습니다.

26. 레이블 <label>

  - 폼을 구조화하고 접근성을 높일 수 있는 요소 중에는 label이 있습니다.

  - label 요소는 각 폼 컨트롤의 연관 관계와 설명을 추가하는 역활을 담당합니다.

  - 웹 표준을 지원하는 대부부의 최신 브라우저의 경우 label만 선택해도 폼 컨트롤을 선택할 수 있으며

    음성 브라우저의 폼 컨트롤이 label과 인접하여 있지 않는 경우에도 인식할 수 있도록 지원합니다.

  - 접근성을 높이기 위해 모든 폼 컨트롤 등에 label 요소를 사용하는 것이 좋습니다.


27. 명시적 레이블

28. 암묵적인 레이블

29. <input> 요소

  - 폼 요소 안에 한 줄 글상자, 라디오 버튼, 체크 박스 등의 포 컨트롤을 생성할 때는 input 요소를 사용합니다.

  - input 요소의 경우 type 속성값에 따라 폼의 종류가 결정되며, 컨트롤의 종류는 다음과 값습니다.

  - type = "컨트롤값"

  - type 속성에 사용할 수 있는 컨트롤 값은 text, password, radio, checkbox, file, image, submit, reset, button

    hidden의 10가지 값이 있습니다.

  - input 요소의 사용 형식은 다음과 같습니다.

30. 목록상자 <select>, <option>

  - select와 option 요소를 이용하여 목록 상자를 생성할 수 있습니다.

  - 목록 상자는 드룹다운 메뉴와 리스트 박스로 나눌 수 있고, size 속성으로 목록 상자의 형태를 정할 수 있습니다.

  - select, option 요소의 사용 형식은 다음과 같습니다.

31. 여러 줄 글상자 <textarea>

  - 여러 줄로 된 텍스트를 입력받을 때는 textarea 요소를 이용합니다.

  - input 요소를 이용한 한 줄 글상자와 달리 textarea 요소 안에서 입력한 텍스트의 내용이 임이의 줄로

    바뀝니다. 이때 입력받을 수 있는 텍스트 수는 제한이 없습니다.

  - textarea 요소의 사용 형식은 다음과 같습니다.

32. 버튼 요소 <button>

  - button 요소를 이용하여 생성할 수 있는 경우는 input 요소의 submit, reset, button 등의 type과 같지만

    좀 더 유연한 디자인이 가능하다는 장점이 있습니다.

  - button 요소의 사용 형식은 다음과 같습니다.

33. 인라인 프레임 <iframe>

  - 인라인 프레임을 이용하여 콘텐츠를 삽입할 경우에는 iframe 요소를 사용합니다.

  - 인라인 프레임은 인터넷 익스플로러의 독자적인 요소였으나 HTML4.0과 HTML 4.01 이후에 정식으로

    지원하고 있습니다.

  - 인라인 프레임은 XHTML 1.0 strict와 XHTML 1.1에서는 사용할 수 없으며, Transitional DTD에서만

    사용할 수 있습니다.

  - 인라인 프레임을 사용할 경우에는 접근성을 고려하여 iframe에 title 속성을 함께 제공하는 것이 바람직합니다.

  - iframe 요소의 사용 형식은 다음과 같습니다.

34. 개체 삽입 <object>

  - object 요소는 이미지를 포함한 플래시 개체나 동영상, 사운드 등의 플러그인 개체를 의미합니다.

  - 이러한 형식의 개체를 웹 문서에 삽입할 때는 object 요소를 사용해야 하지만

    인터넷 익스플로러와 비인터넷 익스플로러 계열의 웹 브라우저가 서로 개체를 참조하는 방식이 다르다는

    문제가 있습니다.

  - object 요소의 사용 형식은 다음과 같습니다.

35. 내부 스타일 적용 <style>

  - XHTML 요소 중에서 style 요소는 css를 XHTML 문서에 적용할 때 사용하고 XHTML 요소 중 대부분은 구조를

    정의하는 용도로 사용합니다.

  - 각 요소마다 기본적인 스타일만 적용되어 있기 때문에 가독성이 높은 디자인을 위해서나 시각적으로 화려하게

    표현하려면 CSS(Cascading Style Sheet)의 도움을 받아야만 합니다.

  - style 요소의 사용 형식은 다음과 같습니다.

36. 스크립트 삽입 <script>

  - 웹 문서에 스크립트를 삽입할 때는 script 요소를 사용하며 head 요소와 body 요소에 여러 개의 script를

    삽입할 수 있습니다.

  - 스크립트를 삽입할 때는 XHTML에서 script 요소의 내용 모델이 #PCDATA(Parsed CDATA)이기 때문에

    "<",">","&"등의 기호를 문자 참조로 변화해야합니다.

  - script 요소의 사용 형식은 다음과 같습니다.

37. <div> 요소

  - div(division) 요소는 분할, 나누기의 의미를 가지며, 그룹핑(grouping)의 역활을 수행합니다.

  - 주로 블록 요소를 그룹화하기 위해 사용하며, id와 class 속성으로 해당 그룹의 의미를 부여할 수 있습니다.

  - div 요소는 레이아웃을 구현할 때도 사용할 수 있으며, 논리적인 구조를 고려하여 서로 연관성 있는

    콘텐츠를 그룹핑하는 것이 좋습니다.

  - div 요소의 사용 형식은 다음과 같습니다.

38. <span> 요소

  - 블록 요소를 그룹화하기 위해 주로 div 요소를 사용한다면, 인라인 요소를 그룹화 할때는 span요소를 사용

  - div 요소와 마찬가지로 id와 class 속성을 이용하여 그룹화한 요소에 적절한 네이밍을 통해 의미를 부여

  - span요소는 인라인 요소이므로 p와 ul 요소와 같은 블록 요소를 포함할 수 없습니다.

  - span요소의 사용 형식은 다음과 같습니다.