일반 CSS와 XHTML을 사용한 효율적인 View 개발 전략

황제낙엽 2007.01.30 07:23 조회 수 : 1358 추천:129

sitelink1  
sitelink2  
sitelink3  
extra_vars6  
http://wiki.javajigi.net/pages/viewpage.action?pageId=722

CSS와 XHTML을 사용한 효율적인 View 개발 전략

Table of Contents

XHTML(Extensible HyperText Markup Language) 이란 ?

The Extensible HyperText Markup Language (XHTML™) is a family of current and future document types and modules that reproduce, subset, and extend HTML, reformulated in XML.
XHTML Family document types are all XML-based, and ultimately are designed to work in conjunction with XML-based user agents.
XHTML is the successor of HTML, and a series of specifications has been developed for XHTML

XHTML은 HTML을 상속받고, 재생성하고, 포함하여 XML 로 재정의한 현재와 미래의 문서타입,모듈의 한 형태이다.
XHTML Family 문서타입은 모두 XML 기반이고, 궁극적으로 XML기반의 사용자도구와 함께 결합되어 작업할수 있도록 디자인되었다.
XHTML은 HTML의 후속버전이다.
HTML 4.0.1 > XHTML 1.0 > XHTML 2.0
최신버전 : HTML 4.0.1(1999.12) , XHTML 2.0(2005.5)

XHTML이 왜 필요한가?

문서 개발자들과 사용도구 설계자들 계속적으로 그들의 생각을 새로운 마크업을 통하여 표현하는 새로운 방식들을 개발하고 있다.
XML의 장점을 가진 XHTML에서는 새로운 엘리먼트 추가 및 엘리먼트의 어트리뷰트들의 도입이 상대적으로 쉽다.
하위 및 상위 호환성이 좋다.
최대한 많은 웹 브라우저, 장치, 소프트웨어에서 읽을 수 있게 설계되었다.
마크업의 유효성 검증을 위해 엄격한 규칙을 따르며, 표준대로 작성된 페이지는 웹브라우저에서 올바르게 해석된다.

XHTML 1.0 표준정의

  • Strictly Conforming Documents
    • XHTML-1.0-Strict, XHTML-1.0-Transitional, XHTML-1.0-Frameset 의 DTD 중 하나의 규격에 맞아야한다.
    • 문서의 root element전에 DOCTYPE이 선언되어 있어야한다.
      아래의 선언중 하나를 사용한다.

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

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

      <!DOCTYPE html
      PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

    • 문서의 root element는 html 이어야한다.
    • XHTML의 namespace는 http://www.w3.org/1999/xhtml로 정의되어 있어야한다.

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" lang="ko">
      <head>
      <meta http-equiv="content-type" content="text/html; charset=euc-kr" />
      <title></title>
      </body>
      </html>

HTML 4.0과 XHTML1의 차이점

  • Documents must be well-formed
    • 모든 element는 시작과 종료태그가 있어야 한다.
    • 모든 element는 nest 되어야한다.
      ex) <p>here is an emphasized <em>paragraph</em>.</p>
  • Element and attribute name은 소문자여야 한다.
  • 비어있지 않은 elements도 종료태그가 있어야한다.
    ex)<p>here is a paragraph.</p><p>here is another paragraph.</p>
  • Attribute 는 따옴표가 들어가야한다.
    ex)<dl compact="compact">
  • Attribute값들이 짝으로 기술되어야한다.(compact , checked)
    ex)<dl compact="compact">
  • 빈 element는 종료 태그를 갖거나, 그 시작 태그가 />로 종료 되어야 한다.
    ex)<br/><hr/>
  • White Space handling in attribute values
    • 앞뒤 공백을 제거한다.
    • Map sequences of one or more white space characters (including line breaks) to a single inter-word space.
      연속된 공백문자를(줄바꿈 포함) 한개의 공간글자로 처리한다.
  • name attribute를 id attribute로 대체한다.

참고 : Alan Richmond 의 해석

XHTML1과 XHTML2의 차이점

  • Linking : 모든 elements에 하이퍼링크가 가능하다.
  • Events : XML Events 를 사용한다.
  • Forms : XForms 를 사용한다.
  • Frames and Framesets : XFrames를 사용한다.
  • 조금더 구조화가 가능하게 되었다.
    • Sections and headings : heading elements(h1~h6 elements)는 h elements로 대체되었다.
      XHTML2에서는 section element로 명백하게 문서구조를 markup할수 있다.
    • Separators : hr element가 separator element로 rename 되었다.
    • Line breaks : br elements가 l element로 대체되었다.
    • Paragraph structure : p elements는 <p>...</p>로 나타낸다.


  • Navigation lists : navigation list element인 nl element가 추가되었다.


  • Images : img,applent element는 여러가지 타입의 object(image,text,audio,appelet등)를 나타낼수 있는 object elements로 대체되었다.


  • type : 사용자가 접근할수 있는 자원에 type element를 표기할수 있다.


  • Bi-directional text : dir attribute 추가

CSS(Cascading Style Sheets)란?

Cascading Style Sheets (CSS) is a simple mechanism for adding style (e.g. fonts, colors, spacing) to Web documents.

  • CSS 참조하기

    <!doctype html public '-//W3C//DTD HTML 4.01//EN'
    'http://www.w3.org/TR/html4/strict.dtd'>
    <html>
    <head>
    <title>Document title</title>
    <link rel="stylesheet" href="http://www.w3.org/StyleSheets/Core/Modernist" type="text/css">
    </head>
    ...
    or in XHTML 1.0:

    <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
    'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
    <html>
    <head>
    <title>Document title</title>
    <link rel="stylesheet" href="http://www.w3.org/StyleSheets/Core/Modernist" type="text/css" />
    </head>

최신버전 : CSS3 (2005.9)

실용예제로 배우는 웹표준

chapter1 - 리스트

  • 순서가 없는 리스트 목록 - <ul/>
  • 순서가 있는 리스트 목록 - <li/>

chapter2 - 머리글

  • 머리글 태그인 <h1/>~<h6/>까지 사용하자.
    • 각종 브라우저에서 머리글 태그를 인식하고, 표기하거나 읽을수 있다.
    • 검색엔진의 색인이 빠르다.
    • CSS적용이 쉽고, 유지보수가 편하다.

chapter3 - 테이블

  • 표형태의 데이타(달력,스프레드시트,차트,스케쥴등)에 테이블을 쓰자.
    • 테이블 요약정보 - <table>태그에 <caption/>속성추가
    • 테이블 타이틀 - <caption/>태그추가
      ex)<table><caption/><tr>..
    • 테이블 헤더 - <td>태그대신 <th> 태그를 사용하라.
    • 헤더와 데이타의 관계 (스크린리더사용시 유용) - 헤더에 id속성과, 데이타에 heading속성 추가로 데이타간에 관계를 맺어준다. abbr속성은 데이타를 짧게 줄인글로 읽을때 사용한다.
      ex) <tr><th id="year" abbr="연도">경기연도</th></tr>
      <tr heading="year"><td></td></tr>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" lang="ko">
<head>
	<meta http-equiv="content-type" content="text/html; charset=euc-kr" />
	<title>3장 - 테이블</title>
	<style type="text/css" media="screen">
	
	div {
		margin-bottom: 30px;
		}

	#fig3_10 table {
		border-top: 1px solid #999;
		border-left: 1px solid #999;
		border-collapse: collapse;
		}
	
	#fig3_10 caption {
		font-family: Arial, sans-serif;
		color: #993333;
		padding-bottom: 6px;
		}
	
	#fig3_10 th, #fig3_10 td {
		padding: 10px;
		border-right: 1px solid #999;
		border-bottom: 1px solid #999;
		}	
	
	#fig3_10 th {
		font-family: Verdana, sans-serif;
		}
	
	#fig3_10 #year {
		padding-left: 26px;
		background: #ccc url(img/icon_year.gif) no-repeat 10px 50%;
		}
	
	#fig3_10 #opponent {
		padding-left: 26px;
		background: #ccc url(img/icon_opp.gif) no-repeat 10px 50%;
		}
	
	#fig3_10 #record {
		padding-left: 26px;
		background: #ccc url(img/icon_rec.gif) no-repeat 10px 50%;
		}
	
	</style>
</head>
<body>
<div id="fig3_10">
<table summary="이 표는 보스턴 레드삭스 월드시리즈 성적 차트입니다.">
	<caption>보스턴 레드삭스 월드 시리즈 챔피언쉽</caption>
	<tr>
		<th id="year">연도</th>
		<th id="opponent">상대팀</th>
		<th id="record" abbr="성적">시즌 성적 (승-패)</th>
	</tr>
	<tr>
		<td headers="year">1918</td>
		<td headers="opponent">시카고 컵스</td>
		<td headers="record">75-51</td>
	</tr>
	<tr>
		<td headers="year">1916</td>
		<td headers="opponent">브룩클린 로빈스</td>
		<td headers="record">91-63</td>
	</tr>
	<tr>
		<td headers="year">1915</td>
		<td headers="opponent">필라델피아 필리스</td>
		<td headers="record">101-50</td>
	</tr>
	<tr>
		<td headers="year">1912</td>
		<td headers="opponent">뉴욕 자이언츠</td>
		<td headers="record">105-47</td>
	</tr>
</table>
</div>
</body>
</html>

chapter4 - 인용문

  • 블록레벨의 인용문 - <blockquote/> 태그사용
    • 인용문의 원본출처표기 - cite 속성추가
    • 따옴표문자표기 - <q/> (겹쳐쓰기가능)
    • 구문강조 - <strong/>
      ex) <blockquote cite="http://www.javjigi.net">
      아버지는 말하셨지 <q><strong>인생</strong>을 즐겨라~</q>
      </blockquote>
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" lang="ko">
      <head>
      	<meta http-equiv="content-type" content="text/html; charset=euc-kr" />
      	<title>4장 - 인용문</title>
      	<style type="text/css" media="screen">
      	
      	div {
      		margin-bottom: 30px;
      		}	
      	
      	#fig4_2 blockquote {
      		width: 270px;
      		text-align: center;
      		margin: 0;
      		padding: 0;
      		font-family: georgia, serif;
      		font-size: 150%;
      		letter-spacing: -1px;
      		line-height: 1em;
      		color: #555;
      		background: #eee url(img/fi_top.gif) no-repeat top left;
      		}
      	
      	#fig4_2 #quote {
      		margin: 0 10px 0 0; 
      		padding: 20px 20px 10px 20px;
      		background: url(img/fi_bottom.gif) no-repeat right bottom;
      		}
      	
      	#fig4_2 #author {
      		margin: 0;
      		padding: 0 0 10px 0;
      		color: #999;
      		font-size: 60%;
      		background: url(img/hpquote_bottom.gif) no-repeat bottom;
      		}
      	
      	#fig4_3 blockquote {
      		width: 270px;
      		text-align: center;
      		margin: 0;
      		padding: 0;
      		font-family: georgia, serif;
      		font-size: 150%;
      		letter-spacing: -1px;
      		line-height: 1em;
      		color: #555;
      		background: #eee url(img/fi_top.gif) no-repeat top left;
      		}
      	
      	#fig4_3 #quote strong {
      		color: #000;
      		font-weight: normal;
      		}
      	
      	#fig4_3 #quote {
      		margin: 0 10px 0 0;
      		padding: 20px 10px 10px 20px;
      		background: url(img/fi_bottom.gif) no-repeat right bottom;
      		}
      	
      	#fig4_3 #author {
      		margin: 0;
      		padding: 0 0 10px 0;
      		color: #999;
      		font-size: 60%;
      		background: url(img/hpquote_bottom.gif) no-repeat bottom;
      		}
      		
      	</style>
      </head>
      
      <body>
      
      <div id="fig4_2">
      	<blockquote cite="http://www.somewebsites.com/path/to/page.html">
      		<p id="quote">부적절한 인용이란 한번도 인용되지 않은 문장을 인용하는 것이다.</p>
      		<p id="author">&#8212;헤스키스 피어슨</p>
      	</blockquote>
      </div>
      
      <div id="fig4_3">
      	<blockquote cite="http://www.somewebsites.com/path/to/page.html">
      		<p id="quote"><strong>부적절한 인용</strong>이란 한번도 <strong>인용되지 않은 문장</strong>을 인용하는 것이다.</p>
      		<p id="author">&#8212;헤스키스 피어슨</p>
      	</blockquote>
      	
      </div>
      </body>
      </html>

chapter5 - 폼

  • 접근성을 높이자
    • 폼 컨트롤에대한 텍스트 레이블에 <label>태그사용
    • <label>태그의 for 속성에 연결되는 폼 컨트롤의 id값과 일치하는 값을 지정
    • 장점 : 스크린 리더 프로그램이 각폼 컨트롤에 해당하는 레이블을 올바로 읽는다.
      라디오버튼, 체크박스의 경우, 사용자가 클릭할 수 있는 영역이 넓어진다.
  • 탭키를 이용해 탭컨트롤을 이동 - tabindex 속성추가
  • 액세스키를 이용해 포커스이동 - accesskey 속성추가 (Window = Alt+key , MAC = Command+key)
  • 폼 요소 묶기 - <fieldset/>태그로 그룹핑한다. <legend/>태그로 테두리선을 표시한다.
<div id="fig5_14">
<form action="/path/to/script" id="thisform" method="post">
  <fieldset>
    <legend>로그인하기</legend>
    <p><label for="name" accesskey="9" >이름 :</label><br />
    <input type="text" id="name" name="name" tabindex="1" accesskey="9"/></p>
    <p><label for="email">이메일 :</label><br />
    <input type="text" id="email" name="email" tabindex="2" /></p>
    <p><input type="checkbox" id="remember" name="remember" tabindex="3" /> 
    <label for="remember">내 정보 기억하기</label></p>
    <p><input type="submit" value="확인" tabindex="4" /></p>
  </fieldset>
</form>
</div>

chapter6 - 구문표현 엘리먼트

  • 시각적인 효과를 위한 태그
    • <b> : bold 체
    • <i> : italic 체
  • 의미와 구조전달을 위한 태그 , 시각적으로는 강조표현, 스크린리더 프로그램사용시 볼륨,높이,속도등의 음성합성 파라미터를 다르게 적용한다.
    • <em> : bold 체 (강조)
    • <strong> : italic체 (강한강조)
    • <cite> : 인용문이나 참조한 문서의 출처
    • <abbr> : 약자 (스크린리더 프로그램사용시 철자를 하나씩 읽는다.)
      ex) <abbr title="Extensible HyperText Markup Language">XTML</abbr>
    • <acronym> : 두문자어 (스크린리더 프로그램사용시 한단어로 읽는다.)
      ex) <acronym title="North Atlantic Treaty Organization">NATO</abbr>
    • <dfn> : 용어묶음에 대한 정의
    • <code> : 컴퓨터 프로그래밍 코드
    • <samp> : 프로그램이나 스크립트의 결과 샘플
    • <kbd> : 사용자가 입력한 텍스트
    • <var> : 프로그램의 변수(variable)나 인수(argument)

chapter7 - 앵커(웹페이지내 특정위치로 이동)

  • id속성 사용하기(구버전 브라우저 지원 안함)
    <p><a href="#pooh">곰돌이 푸에 대해</a></p>
    ...
    
    <h2 id="pooh">곰돌이 푸와 친구들</h2>
    ...
  • id, name 속성 동시 사용
    <p><a href="#pooh">곰돌이 푸에 대해</a></p>
    ...
    
    <h2><a id="pooh" name="pooh">곰돌이 푸와 친구들</a></h2>
    ...
  • title 속성사용 : 화면에 툴팁으로 표시되어 내용을 볼수 있다. 스크린리더 사용시 텍스트를 읽어준다.
  • 링크 꾸미기
    • a:link : 화면에 걸려있는 링크
    • a:visited : 사용자가 이미 방문한 링크
    • a:haver : 마우스 커서가 링크위로 올라왔을때 효과
    • a:active : 마우스 버튼이 클릭될때의 상태를 처리

chapter8 - 리스트의 고급기능

  • 번호가 매겨진 리스트
    • 자동으로 번호를 매겨주는 <ol/>태그 사용하기
      <ol>
          <li>양파를 고른다.</li>
          <li>양파를 3분간 기름에 살짝 튀긴다.</li>
          <li>마늘 3쪽을 넣는다. 이때 양파와 마늘이 달라붙지 않도록 자주 저어 준다.</li>
          <li>3분간 더 요리한다.</li>
          <li>맛있게 먹는다.</li>
        </ol>

CSS의 list-style-type속성을 사용하여, 다양한 스타일을 지정할수 있다.
ol li{
list-style-type : upper-roman;
}

  • decimal : 1,2,3,4,5등 숫자
  • upper-alpha : A,B,c등 알파벳 대문자
  • lower-alpha : a,b,c등 알파벳 소문자
  • upper-roman : Ⅰ,Ⅱ,Ⅲ,Ⅳ등 로마 대문자
  • lower-roman : ⅰ,ⅱ,ⅲ,ⅳ등 로마 소문자
  • none : 숫자를 붙이지 않음
  • 용어와 설명묶음을 나타내는 리스트
    • 정의 리스트 <dl/> 태그 사용 , 용어와 설명을 분리하여, 의미있는 구조로 바뀌었고, CSS나 아이콘 추가등 스타일 입히기가 쉬워졌다. <dt/>태그는 용어를 나타내고, <dd/>태그는 설명을 나타낸다.
dt {
   font-weight: bold;
}
dd {
    margin-left: 15px;
    padding-left: 15px;
    color: #999;
    background: url(img/dd_arrow.gif) no-repeat 0 2px;
}

....

<dl>
  <dt>CSS</dt>
  <dd>웹 문서에 글꼴, 색상, 여백 등 스타일을 입힐 수 있는 쉬운 방법.</dd>
  <dt>XHTML</dt>
  <dd>HTML을 확장하기 위해 XML을 변환하여 만든 문서 형식.</dd>
  <dt>XML</dt>
  <dd>SGML에서 파생된 단순하고 매우 유연한 텍스트 형식.</dd>
</dl>


chapter9 - 마크업용량줄이기

  • id 속성을 부여한 하위 선택자를 사용하여 불필요한 class 사용을 줄인다. CSS를 이용하여, 각 레벨별 독립적인 스타일을 지정하고, 변경을 쉽게한다.
  • 불필요한 <div>태그를 없앤다.
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" lang="ko">
    <head>
    	<meta http-equiv="content-type" content="text/html; charset=euc-kr" />
    	<title>8장 - 마크업 용량 줄이기</title>
    	<style type="text/css" media="screen">
    	
    	body {
    		font-family: verdana, sans-serif;
    		font-size: 12px;
    		}
    	
    	div {
    		margin-bottom: 30px;
    		}	
    		
    	#fig9_5 #sitemap {
    	  font-size: 140%;
    	  font-weight: bold;
    	  color: #f63;
    	  }
    	
    	#fig9_5 #sitemap li {
    	  list-style: none; /* 기본 불릿 표시 안함 */
    	  }
    			
    	#fig9_5 #sitemap li ul {
    	  margin: 6px 15px;
    	  padding: 0 15px;
    	  font-size: 90%;
    	  color: #000;
    	  border-left: 1px dotted #999;
    	  }
    	
    	/* 세 번째 레벨의 리스트 항목 스타일 */
    	
    	#fig9_5 #sitemap li ul li ul {
    	  border: none;
    	  }
    	
    	#fig9_5 #sitemap li ul li ul li {
    	  font-weight: normal;
    	  padding-left: 16px;
    	  background: url(img/li_bull.gif) no-repeat 0 50%;
    	  }
    	
    	</style>
    </head>
    <body>
    <div id="fig9_5">
    	<ul id="sitemap">
    	  <li>블로그</li>
    	  <li>기사 모음
    		<ul>
    		  <li>레드 삭스 공략 방법</li>
    		  <li>7회말 투구 내용
    			<ul>
    			  <li>제I부</li>
    			  <li>제II부</li>
    			</ul>
    		  </li>
    		  <li>결코 짧지 않은 85년 세월을 돌아보며</li>
    		</ul>
    	  </li>
    	  <li>이 블로그에 대해</li>
    	  <li>포토갤러리
    	    <ul>
    		  <li>풍경 사진</li>
    		  <li>정물 사진</li>
    		</ul>
    	  </li>
    	  <li>서비스
    		<ul>
    		  <li>디자인
    			<ul>
    			  <li></li>
    			  <li>인쇄물</li>
    			</ul>
    		  </li>
    		</ul>
    	  </li>
    	</ul> 
    </div>
    </body>
    </html>

chapter10 - CSS적용하기

  • CSS적용방법
    • <style/>엘리먼트에 넣기
      단점 : style 변경시 모든 파일을 열어 수정해야 한다. 캐쉬되지 않는다.
    • 외부 스타일시트 사용
      장점 : 스타일공유가 가능하다. style변경시 스타일 파일만 수정하면 된다. 캐쉬에 저장된다.
    • @import 사용하기
    • 인라인 스타일 : 태그안에 스타일 속성을 직접 적어준다.
      단점 : 코드량이 많아진다. 중복코드가 발생한다. 유지보수가어렵다.등등
//<style/>엘리먼트에 넣기 
<head>
  <style> 
    body{ 
      bgcolor="red"; 
    } 
  </style>
</head>

//외부 스타일시트 사용
<head>
  <link rel="stylesheet" type="text/css" href="style.css"/>
</head>


//@import 사용
<head>
  <style> @import="style.css" </style> 
</head>

//인라인 스타일
<html>
  <body style="background:red;">
  </body>
</html>
  • CSS 활용
    • 외부스타일시트와 @import를 적절히 사용
      기본 스타일은 외부스타일 시트를 사용하고, 고급 스타일은 @import 를 사용한다. 낮은 버전의 브라우저는 자신이 지원하는 스타일 명령만 인식하고, 최근 브라우저들은 모든 스타일정보를 다 가져오게 되어, 화면이 올바르게 나타나지 않는 현상을 줄일수 있다.
  • CSS의 우선순위
    인라인스타일 > 지정한 순서대로 (동일한 항목을 선언한 다른 스타일을 입힌 파일 1, 2가 있다면 마지막에 적은 스타일에 우선순위가 있다.)

chapter11 - 인쇄를 위한 스타일

  • 인쇄대상 지정하기
    • media 속성
    • @media 또는 @import
// media 속성
<link rel="stylesheet" type="text/css" media="screen,print" href="style.css">

<link rel="stylesheet" type="text/css" media="screen" href="style.css">
<link rel="stylesheet" type="text/css" media="print" href="print.css">


//@import 사용
<style type="text/css">
	@import utl("style.css") screen;
	@media print{
	}
</style>

chapter12 - CSS로 레이아웃 잡기

CSS를 이용해 레이아웃을 잡는다.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" lang="ko">
<head>
	<meta http-equiv="content-type" content="text/html; charset=euc-kr" />
	<title>12장 - CSS 레이아웃 (방법  D)</title>
	<style type="text/css" media="screen">
	
	body {
		margin: 0;
		padding: 0;
		font-family: verdana, sans-serif;
		font-size: 12px;
		}
	
	#header {
	  	height: 40px;
	  	background: #ccc;
	  	}
	
	#content {
	  	margin-right: 24%;
	  	margin-left: 24%;
	  	}
	
	#leftbar {
	 	position: absolute;
	  	top: 40px;
	  	left: 0;
	  	width: 20%;
	  	background: #999;
	  	}
	
	#sidebar {
	  	position: absolute;
	  	top: 40px;
	  	right: 0;
	  	width: 20%;
	  	background: #999;
	  	}
	
	#footer {
	  	margin-right: 24%;
	  	margin-left: 24%;
	  	padding: 20px;
	 	background: #eee;
	  	}
	
	</style>
</head>

<body>

<div id="header">
<strong>헤더</strong>
</div>

<div id="content">
<p><strong>컨텐트</strong> XHTML과 CSS 같은 웹 표준은 이제 많이 알려진 기술입니다. 웹 관련 직종에 있다면 웹 표준에 대해서 들어보았을 것입니다. 하지만 비록 웹 표준을 지원하는 웹 브라우저가 점차 늘어가고 있고, 웹 디자이너와 웹 개발자가 웹 표준이 주는 실질적인 잇점을 이해하고 이를 준수하려고 하는 움직임이 많아지고는 있지만, 웹 표준으로 사이트를 구축하는 것은 아직까지 쉬운 일은 아닙니다. 웹 표준이 주는 혜택을 완벽하게 이해하고 웹 표준을 이용하여 효율적으로 구현하는 데에 웹 표준의 진수가 있다고 할 수 있습니다.간단한 예를 들자면 테이블을 겹쳐서 쓰는 대신에 CSS를 사용하여 페이지의 레이아웃을 조정할 수 있습니다. 이를 통해 파일 용량은 줄어들고, 페이지 로딩 시간이 짧아집니다. 또한 모든 웹 브라우저, 장치에서 접근할 수 있게 됩니다.</p>

<p>웹 표준 가이드는 16장으로 구성되어 있습니다. 각 장에서는 여러 가지 웹 표준 개념의 이론과 실습을 다루게 되며, 쉽게 이해할 수 있도록 주어진 문제에 대해 여러가지 다른 해결방법을 보여줍니다. 이 책을 통해 다단 레이아웃, 이미지 바꿔치기, 테이블과 리스트를 잘 사용하기 등의 방법을 배울 수 있습니다. 이렇게 잘 구성된 접근방법을 통해서 웹 표준의 핵심사항을 빠르게 이해하고 소화하여 잘 활용할 수 있을 것입니다.</p>
</div>

<div id="leftbar">
<p><strong>왼쪽 사이드바</strong></p>
<ul>
<li><a href="#">링크 항목 1</a></li>
<li><a href="#">링크 항목 2</a></li>
<li><a href="#">링크 항목 3</a></li>
<li><a href="#">링크 항목 4</a></li>
</ul>
</div>

<div id="sidebar">
<p><strong>사이드바</strong></p>
<ul>
<li><a href="#">링크 항목 1</a></li>
<li><a href="#">링크 항목 2</a></li>
<li><a href="#">링크 항목 3</a></li>
<li><a href="#">링크 항목 4</a></li>
</ul>
<p><strong>추가 사이드바 1</strong></p>
<ul>
<li><a href="#">링크 항목 1</a></li>
<li><a href="#">링크 항목 2</a></li>
<li><a href="#">링크 항목 3</a></li>
<li><a href="#">링크 항목 4</a></li>
</ul>
<p><strong>추가 사이드바 2</strong></p>
<ul>
<li><a href="#">링크 항목 1</a></li>
<li><a href="#">링크 항목 2</a></li>
<li><a href="#">링크 항목 3</a></li>
<li><a href="#">링크 항목 4</a></li>
</ul>
</div>

<div id="footer">
<strong>푸터</strong>
</div>
</body>
</html>

번호 제목 글쓴이 날짜 조회 수
공지 [작성중/인프런] 스프링부트 시큐리티 & JWT 강의 황제낙엽 2023.12.20 4436
45 Spring 2.0의 XML확장기능 (1) 황제낙엽 2007.08.15 1392
» CSS와 XHTML을 사용한 효율적인 View 개발 전략 황제낙엽 2007.01.30 1358
43 스프링의 구조별 기능 설명 황제낙엽 2007.06.26 1510
42 실습 STEP2 - 기초편 (데이터 베이스 접속) file 황제낙엽 2007.06.21 1542
41 java.util.MissingResourceException: Can't find bundle for base name xxx, locale ko_KR 황제낙엽 2007.06.21 3814
40 자바지기 스프링 프레임웍 아티클 황제낙엽 2007.06.04 1384
39 AOP(Aspect Oriented Programming) 황제낙엽 2007.06.03 1302
38 Spring MVC 어플리케이션 개발 <12> 간단한 조회 구현 방안 비교 황제낙엽 2007.05.27 1516
37 Spring MVC 어플리케이션 개발 <11> 간단한 조회 구현 방안 비교 황제낙엽 2007.05.27 1693
36 Spring MVC 어플리케이션 개발 <10> 도메인 객체 수정시 변경 사항 황제낙엽 2007.05.27 1611
35 Spring MVC 어플리케이션 개발 <9> JSP 화면 작성 황제낙엽 2007.05.27 1081
34 Spring MVC 어플리케이션 개발 <8> Spring기반 iBatis DAO 작성 황제낙엽 2007.05.27 1040
33 Spring MVC 어플리케이션 개발 <7> Spring과 iBatis 연동을 위한 준비 황제낙엽 2007.05.26 984
32 Spring MVC 어플리케이션 개발 <5> MVC 컨트롤러 작성 황제낙엽 2007.05.26 1117
31 Spring MVC 어플리케이션 개발 <4> 화면 요구 작성 황제낙엽 2007.05.26 1032
30 Spring MVC 어플리케이션 개발 <3> Web Application Context 파일 작성 황제낙엽 2007.05.26 943
29 Spring MVC 어플리케이션 개발 <2> Spring MVC 구동을 위한 web.xml 작성 황제낙엽 2007.05.26 1135
28 Spring MVC 어플리케이션 개발 <1> 프로젝트 디렉토리 생성 황제낙엽 2007.05.26 883
27 Struts에서 Spring으로의 이주 가이드 - Spring (java/j2ee Application Framework) 황제낙엽 2006.02.27 862
26 실습 STEP1 - 기초편 (Hello Spring 출력) file 황제낙엽 2007.04.27 1491