카테고리 없음2012. 4. 24. 10:24


기존 <html> 로 시작하던 html 문서와는 달리 웹표준에 맞춘 XHTML 언어로 웹페이지를 제작하기 위해서는 상단에 DOCTYPE 선언(이하 DTD선언) 을 해주어야 한다.
이 선언을 해주는 이유는 브라우저에게 어떤 언어로 제작되었는지를 알려주는 것이기 때문에 매우 중요하며 브라우저는 선언을 통해서 해당 웹페이지를 어떤 식으로 표현해주어야 하는지 판단하게 된다.

만약 XHTML 1.1 로 제작된 웹페이지라고 DTD선언을 해놓고 사실은 HTML 언어로 웹페이지를 제작했다면 브라우저는 자동적으로 해당 웹페에지가 XHTML 1.1 로 제작되지 않은 웹페이지임을 인식하게 됨으로 출력상으로 큰 문제는 없을지 모르겠지만 웹표준에 맞지 않는 웹페이지가 되므로 비교적 관대한 IE와는 달리 다른 브라우저에서는 사이트가 제대로 출력되지 않는 문제가 발생할 수 있음을 분명히 알아야한다. 

기존의 문법을 살펴보자면

<html> - 시작
<head>
<title>브라우저 제목</title>
</head> 

<body> 
</body>
</html>

의 형식이지만 웹표준에 맞추어서 제작된 페이지의 경우에는


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset="utf-8">
<title>  </title>
</head>

<body>
</body>


위의 처럼 상단에 DTD선언을 하고 (위의 경우에는 "엄격한" 버젼이다.) 
사용된 xml 언어가 무엇인지를 html 속성을 사용하여 지정해주었음을 볼 수 있다.
<head> 태그 아래에는 <meta> 태그가 들어가며 그 다음이 <title> 그리고 <style> 태그가 각각 자리잡는다.
meta 태그를 명시하는 이유는 컨텐트 타입을 명시하기 위해서 명시해주는 것이며, 이 태그를 통하여 웹페이지의 컨텐트 타입을 브라우저에게 알려줄 수 있으며, charset 을 통해 문자 인코딩을 알려줄 수 있다.
 xml 속성을 선택해주는 이유는 많은 사람들이 xml언어를 생성할 수 있으므로 우리가 사용하는 언어가 무엇인지 결정하는 유일한 식별지를 제공하고, 우리가 사용하는 식별지가 바로 http://www.w3.org/1999/xhtml 이다. 


아래에는 각각의 DTD선언에 대해서 나열한 것이니 사이트 제작시 참고하면 유용하다.
특히 기존에 아무런 문제없이 출력되던 레이아웃이 DTD선언 이후 갑자기 깨져서 보인다면 레이아웃에 맞지 않는 DTD선언을 했을 수도 있으므로 자신이 사용하는 레이아웃에 맞는 형태의 DTD선언을 하는 것이 좋다.

  • HTML 4.01 Transitional - HTML 4.01 버젼의 DTD선언
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
  • HTML 4.01 Strict - HTML 4.01 버젼의 엄격한 DTD선언
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
  • XHTML 1.0 Transitional - 기존 HTML의 장점을 사용할 때 그리고 Lynx등 CSS를 이해못하는 브라우저에서의 호환성을 고려할때 사용합니다.
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  • XHTML 1.0 Frameset - HTML Frame(프레임)을 문서내에서 사용코자 할때에는 Frameset DTD을 사용합니다. HTML 엘레멘트의 컨텐트(content) 모델을 제외하고는 HTML 4.01 과도기적(transitional) DTD와 같은데, 프레임세트(frameset) 문서에서는 "BODY"  엘레멘트 자리에 "FRAMESET" 엘레멘트를 사용합니다.
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> 
  • XHTML 1.0 Strict - 완벽한 XML호환의 XHTML문서 (v1.0)를 작성할시 가장 엄격한 문서 정의(Strict DTD)를 지정합니다. CSS를 사용할 수 있습니다.
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
  • XHTML 1.1
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

대개 기존의 사용하던 레이아웃을 그대로 사용하되, 웹표준에 맞추어서 제작을 하고 싶은 경우에는 우선은 Transitional 로 사용함이 좋지만,
처음부터 웹표준에 맞추어서 제작할 경우에는 Strict(엄격한) 에서 제작하는 것이 올바른 선택이라고 추천하고 싶다.



HTML 4.01 호환모드
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

: 가장 최근 css규격따름. 엘리먼트 배치 자유로움. 스크롤링 레이어 사용 불가능. psition,display속성 구현방법 차이 상이. frame사용 불가능

HTML 4.01 엄격모드
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

: 1999년 12월 24일 확정 규격. 권장하지 않는 element, attribute, frame 사용불가, 엘리먼트 배치 엄격함. 일부 태그 사용 안됨. 
가장 이상적인 문서작성시에 사용

XHTML 1.0 호환모드
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

: 1999년 12월 24일 확정된 프레임문서. frameset이 사용가능. but 넷스케이프, 파폭 작동안됨.

XHTML 1.0 엄격모드
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

※ Strict : 권장 표준안, Transitional : Stric 보단 완화된 표준안

Posted by 다오나무