<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="http://rss.egloos.com/style/blog.xsl" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
	<title>seye2님의 이글루</title>
	<link>http://seye2.egloos.com</link>
	<description>항상 감사하며 겸손하자!!</description>
	<language>ko</language>
	<pubDate>Sun, 11 Oct 2009 15:04:27 GMT</pubDate>
	<generator>Egloos</generator>
	<image>
		<title>seye2님의 이글루</title>
		<url>http://pds5.egloos.com/logo/200705/25/38/e0015438.jpg</url>
		<link>http://seye2.egloos.com</link>
		<width>80</width>
		<height>53</height>
		<description>항상 감사하며 겸손하자!!</description>
	</image>
  	<item>
		<title><![CDATA[ HTML5의 소개 및 지원되는 않는 브라우져에서의 사용법 (7 - Geolocation)  ]]> </title>
		<link>http://seye2.egloos.com/2455021</link>
		<guid>http://seye2.egloos.com/2455021</guid>
		<description>
			<![CDATA[ 
  <p><strong>저자 : Mark Pilgrim</strong><br><br>Geolocaiton은 당신이 공유하고 있는 정보 또는 사람들에 대해서 믿을 수 있는지에 대해서 알 수 있다.<br>당신은 많은 방법으로 알 수 있다.(IP address, 연결된 무선 네트워크, 핸드폰 정보 또 GPS 하드웨어를 통해<br>위성으로 부터 위도, 경고 같은 정보들을 받을 수 있다.)<br></p><p><strong>궁금한 점이 생길 것이다.</strong><br>Q.geolocation이 HTML5의 일부분인가? 왜 이 기능에 대해서 설명하는 것인지?<br>Geolocation은 현재 브라우져에서 지원하고 있고, 그들은 HTML5 특징에 지원여부를 추가하고 있다.<br>엄밀히 말하면, geolocation은 <strong>Geolocation Working Group</strong>(<a href="http://www.w3.org/2008/geolocation/">http://www.w3.org/2008/geolocation/</a>)에 의해 표준화<br>되고 있고, 이것은 HTML Working Group과 분리되어 있다. 그러나 관련글 내에서는 geolocation에 대하여 얘기를 <br>할려고 한다.<br><br>웹의 진화에 있어서의 일부분이고 이런일이 현재 일어나고 있기 때문이다.</p><p><strong>geolocation API</strong>(<a href="http://www.w3.org/TR/geolocation-API/">http://www.w3.org/TR/geolocation-API/</a>)를 통해 믿을수 있는 웹사이트들과 함께 당신의 <br>위치정보를 공유할 수 있다.<br>윈도, 경도는 javascript를 통해 가능하고, 이것은 지도를 통한 당신의 위치를 보여주고, 지역 회사등을 찾는 일과 같은<br>위치인식등을 원격의 웹서버를 통해 전달받을 수 있다.<br></p><p><strong>궁금한 점이 생길 것이다.<br></strong><br>Q.Geolocation이라는 기능이 왠지 섬뜻하다. 끌수도 있는 것인가?<br>개인정보에 대해서는 당신이 원격의 웹서버에 당신의 물리적 위치에 대한 공유를 얘기했을때 관계가 있다.<br><strong>geolocation API explicitly states</strong>(<a href="http://www.w3.org/TR/geolocation-API/#security">http://www.w3.org/TR/geolocation-API/#security</a>)에서 사용자의 허락과 <br>관련된 표현없이 웹사이트들에서 위치 정보를 보내지 않는다. 다른말로 하면 당신의 위치정보를 공유하는것은 항상 <br>옵션이다. 당신이 원하지 않는다면 하지 않을 것이다.<br><br>원서 : <a href="http://diveintohtml5.org/detect.html">http://diveintohtml5.org/detect.html</a></p><br/><br/>tag : <a href="/tag/html5geolocation" rel="tag">html5geolocation</a>,&nbsp;<a href="/tag/geolocation" rel="tag">geolocation</a>			 ]]> 
		</description>
		<category>html5</category>
		<category>html5geolocation</category>
		<category>geolocation</category>

		<comments>http://seye2.egloos.com/2455021#comments</comments>
		<pubDate>Sun, 11 Oct 2009 15:03:46 GMT</pubDate>
		<dc:creator>seye2</dc:creator>
	</item>
	<item>
		<title><![CDATA[ HTML5의 소개 및 지원되는 않는 브라우져에서의 사용법 (6 - Offline Web Applications) ]]> </title>
		<link>http://seye2.egloos.com/2455018</link>
		<guid>http://seye2.egloos.com/2455018</guid>
		<description>
			<![CDATA[ 
  <p><strong>저자 : Mark Pilgrim<br></strong><br>오프라인된 웹페이지를 읽는것은 쉬운 일이다: 인터넷을 연결하거나, 웹페이지를 로딩하고, 인터넷으로부터 연결을 <br>끊거나, 왼딴곳에서 운영을하거나, 취미등으로서 웹페이지를 읽는등(시간을 절약할 수 있고, 아마 모아진 정보에 <br>대해서 내가 원하는 정보를 바로 보기를 원할것이다.)<br><br>그러나 Gmail이나 Google Docs와 같은 웹 어플리케이션이 그러한가? HTML5에서는 고맙게도 누구나 offline에서도 <br>웹어플리케이션을 만들 수 있다.<br></p><p>Offline web applications(<a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/offline.html#offline">http://www.whatwg.org/specs/web-apps/current-work/multipage/offline.html#offline</a>)는 <br>online 웹어플리케이션에서 벗어나기 시작했다.<br>첫째로, 당신은 offline에서 활성화된 웹페이지를 방문할 수 있고, offline에서 동작하기위해 필수적인 파일들을 <br>웹서버에서 브라우져에 알려준다.<br><br>이러한 파일들은 어떤것이든 될 수 있다.(HTML, Javascript, Images, video등)<br><br>당신의 브라우져는 필요한 모든 파일들을 다운로드할 것이고, 당신이 인터넷에 연결되어 있지 않을 때도 웹사이트들을 <br>재방문할 수 있다.<br>당신의 브라우져는 당신이 오프라인 되었을때 필요한 파일들을 다운로드하여 사용할 수 있다고 알려줄 것이다.<br>다시 온라인 되었을때, 당신은 원격에 있는 웹서버에 변경된 어떤것들도 업로드 할 수 있다.<br></p><p>브라우져가 offline web applications을 지원한다라면 전역 window객체의 속성인 applicationCach 속성을 <br>사용할 수 있다.<br>하지만 지원하지 않는다면 applicationCache속성은 정의되어 있지 않을 것이다.</p><p>function supports_offline() {<br>&nbsp; return (typeof window.applicationCache != 'undefined');<br>}<br></p><p><br><strong>Modernizr</strong>(<a href="http://www.modernizr.com/">http://www.modernizr.com/</a>)에서는 아직 지원하지 않고 있다.<br><br>원서 : <a href="http://diveintohtml5.org/detect.html">http://diveintohtml5.org/detect.html</a></p><br/><br/>tag : <a href="/tag/offlinewebapplication" rel="tag">offlinewebapplication</a>,&nbsp;<a href="/tag/html5offline" rel="tag">html5offline</a>			 ]]> 
		</description>
		<category>html5</category>
		<category>offlinewebapplication</category>
		<category>html5offline</category>

		<comments>http://seye2.egloos.com/2455018#comments</comments>
		<pubDate>Sun, 11 Oct 2009 15:00:37 GMT</pubDate>
		<dc:creator>seye2</dc:creator>
	</item>
	<item>
		<title><![CDATA[ HTML5의 소개 및 지원되는 않는 브라우져에서의 사용법 (5 - Local Storage(like cookie), Web Worker(Thread))  ]]> </title>
		<link>http://seye2.egloos.com/2451233</link>
		<guid>http://seye2.egloos.com/2451233</guid>
		<description>
			<![CDATA[ 
  <font size="4"><span style="font-weight: bold;">&nbsp;- Local Storage</span></font><br />
<br />
HTML5 storage(http://dev.w3.org/html5/webstorage/)는 컴퓨터에서 저장된 정보나 복구하여 웹사이트에사 사용하는 <br />
방법을 제공한다.<br />
이 개념과 비슷한 원리는 cookies이지만 거대한 양의 정보를 저장하기 위해서 디자인되었다.<br />
Cookies는 저장되는 사이즈가 저장되어 있고, 데이터를 전송할때마다 매시간 서버에 새로운 페이지를 요청한다.<br />
(이것은 추가적인 시간이나 brandwidth를 소비한다.)<br />
HTML5 storage는 서버에 요청하지 않게 하면서, 웹사이트는 페이지 로드 후에 자바스크립트등을 접근가능하게 해준다.<br />
<br style="font-weight: bold;"><span style="font-weight: bold;">Local Storage와 관련되어 HTML5 스펙에 포함이 되어 있는지 그렇다면 왜 따로 분리하여 명세서가 <br />
존재하는지에 대해서 </span><span style="font-weight: bold;">궁금할 것이다.</span><br />
그것에 대한 답변은 물론 Local Storage는 주요한 HTML5 명세서에 포함되어 있지만, 분리되어 명세서가 존재하는 <br />
이유는 "HTML5의 대한 내용이 방대하기 때문이다"라고 HTML5 Working Group에서 몇몇은 설명하고 있다.<br />
<br />
브라우져가 HTML5 storage를 지원한다면, 전역 window 객체인 localStorage 속성을 사용 할 수 있다. <br />
HTML5 storage를 지원하지 않는다면, localStorage 속성은 정의되어 있지 않을 것이다.<br />
<br />
function supports_local_storage() {<br />
&nbsp; return (typeof window.localStorage != 'undefined');<br />
}<br />
<br />
Modernizr(<a target="_blank" href="http://www.modernizr.com/">http://www.modernizr.com/</a>)는 아직 지원하지 않고 있다. 필요하다면 함수를 따로 만들어야 한다.<br />
<br />
<span style="font-weight: bold;">그렇다면 또 궁금한 점이 생길것이다. HTML5 storage database의 보안은 어떤지?<br />
누구나 볼 수 있는 것인지?</span><br />
사용자의 HTML5 storage database는 사용자의 컴퓨터를 사용할 수 있는 사람이라면 누구든지 물리적으로 접속 가능하다.<br />
사용자의 브라우져에서 웹사이트의 값을 읽고 수정할 수 있지만, 해당 사이트들은 다른 사이트에 의해서 저장되어진 값들을 확인할 수 없게 할 수 있다.<br />
이러한 방법을 same-origin restriction<br />
(<a target="_blank" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#origin-0">http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#origin-0</a>)이라고 부른다.<br />
<br />
<span style="font-weight: bold;">- Web Workers</span><br />
<br />
Web Workers는 브라우져에서 Javascript를 실행할때 background에서 실행되는 것을 표준적인 방법으로 제공한다.<br />
Web Workers를 더많이 혹은 적게 같은 시간에 모든것을 실행하는 방법인 <span style="font-weight: bold;">multiple "threads"</span>를 생성한다.<br />
(예를들면, 같은 시간에 당신의 컴퓨터에서 다양한 application을 실행할 수 있다라는 것이다.)<br />
이것은 "background threads"고 복잡한 수학적 계산을 가능하게 하면서, network requests를 만들고, local storage를 접속가능하게 주면서, 웹페이지의 scrolling, clicking, typing에 응답하게 해준다.<br />
<br />
브라우져가 Web Worker API를 지원한다면 전역 window객체의 worker 속성을 사용할 수 있다. Web Worker API를 지원하지 않는다라면 worker속성 또한 정의되어 있지 않을 것이다.<br />
<br />
function supports_web_workers() {<br />
&nbsp; return typeof window.Worker != 'undefined';<br />
}<br />
<br />
이 기능 또한 Modernizr에서 아직 지원하지 않고 있고, 필요하다면 함수를 따로 만들어야한다.<br />
<br />
원서 : <a target="_blank" href="http://diveintohtml5.org/detect.html">http://diveintohtml5.org/detect.html</a><br />
<br />
<br/><br/>tag : <a href="/tag/html5localstorage" rel="tag">html5localstorage</a>,&nbsp;<a href="/tag/html5webworkers" rel="tag">html5webworkers</a>			 ]]> 
		</description>
		<category>html5</category>
		<category>html5localstorage</category>
		<category>html5webworkers</category>

		<comments>http://seye2.egloos.com/2451233#comments</comments>
		<pubDate>Mon, 05 Oct 2009 16:41:08 GMT</pubDate>
		<dc:creator>seye2</dc:creator>
	</item>
	<item>
		<title><![CDATA[ CSS3를 지원하지 않는 브라우져에서 사용 방법 ]]> </title>
		<link>http://seye2.egloos.com/2449235</link>
		<guid>http://seye2.egloos.com/2449235</guid>
		<description>
			<![CDATA[ 
  <font style="font-weight: bold;" size="2">저자 : Alex Walker</font><br />
<br />
<span style="font-weight: bold;">- FF3.6에서 지원되는 CSS3 속성</span><br />
<br />
<span style="font-weight: bold;">1. multiple background images</span><br style="font-weight: bold;"><span style="font-weight: bold;">2. -moz-background-size 속성</span><br style="font-weight: bold;"><span style="font-weight: bold;">3. CSS gradients</span><br style="font-weight: bold;"><span style="font-weight: bold;">- 향상된 display:table rendering </span><br />
<br />
올해말에 배포되어지는 Firefox 3.6버전에서 위의 내용과 같은 CSS3의 특징들을 사용할 수 있을 것이다.<br />
<br style="font-weight: bold;"><span style="font-weight: bold;">1. Multiple Background Images</span><br style="font-weight: bold;"><br />
multiple background images라는 개념은 정말 훌륭한 방법이고, layout작성시 몇가지 trick을 사용하여<br />
의미없는 태그를 줄일 수 있다.<br />
<br />
기본적인 문법은 매우 쉽다. background-images속성에 하나의 이미지만 사용하는 것이 아니라 최대 4개까지 이미지를<br />
사용할 수 있다.<br />
<br />
또한 각각의 이미지에 background-repeat과 background-position속성을 줄 수 있다.<br />
<br />
#multi {<br />
&nbsp;&nbsp; &nbsp;background-image: url(old-paper2.jpg); /*FF,Opera, not support browser*/<br />
&nbsp;&nbsp; &nbsp;background-image: url(old-paper.png), url(old-paper2.jpg);<br />
&nbsp;&nbsp; &nbsp;background-repeat: no-repeat; /*FF,Opera, not support browser*/<br />
&nbsp;&nbsp; &nbsp;background-repeat: no-repeat, no-repeat;<br />
&nbsp;&nbsp; &nbsp;background-position: top left; /*FF,Opera, not support browser*/<br />
&nbsp;&nbsp; &nbsp;background-position: top left, bottom right;<br />
&nbsp;&nbsp; &nbsp;border:1px #963 solid; /*FF,Opera, not support browser*/<br />
&nbsp;&nbsp; &nbsp;border-color:#D8CCA7 #999 #633 #9A804E<br />
}<br />
<br />
<br />
두번째 정의한 이미지가 먼저 읽혀 지고 그 다음에 두번째 이미지가 읽혀지게 된다.<br />
현재 이 기능을 지원하는 브라우져는 Safari4.0, Chrome3.0, FF3.6 alpha이다.<br />
<br />
다음 URL로 확인해 볼 수 있다.<br />
<br />
<span style="font-weight: bold;">http://www.sitepoint.com/examples/css3/multi.html</span><br />
<br />
그렇다면 지원 안되는 브라우져에서는 어떻게 해결할 수 있을까?<br />
<br />
위의 코드에서 주석문과 같이 FF3.5이하, Opera와 지원되지 않는 브라우져에서는 comma를 사용하지 않는 single background를 사용하고<br />
IE에서는 위와 같은 방식으로 해결 되지 않기 때문에 핵을 사용하여 해결해주어야 한다.<br />
<br />
&lt;!--[if IE]&gt; <br />
&lt;style type="text/css"&gt; <br />
#multi { <br />
&nbsp;background-image: url(old-paper2.jpg); &nbsp;<br />
&nbsp;background-repeat: no-repeat; <br />
&nbsp;background-position: top left; <br />
} <br />
&lt;/style&gt; <br />
&lt;![endif]--&gt;<br />
<br />
이렇게 대체하는 방식으로 사용하는것은 유용하고 가치 있는 것이라고 생각하지만, 각각의 의도에 따라 달라 질 수 있다고 생각한다.<br />
지원되지 않는 이전 버전의 브라우져에서 기본적인 동작이 가능하고 새로운 브라우져에서는 다양하고 화려한 디자인을<br />
경험하게 한다라면 새로운 브라우져를 사용하는 사용층이 늘어날 것이라고 기대한다.<br />
<br />
<span style="font-weight: bold;">2. Background-size</span><br />
background-size는 css background image의 size를 변경시킬 수 있다.<br />
CSS3의 속성이고 지원하는 브라우져는 Chrome/Safari, Opera, FF3.6 alpha에서 지원하고 있다.<br />
background-size속성은 background-image의 이미지의 크기를 변경시킬 수 있다.<br />
<br />
코드는 다음과 같다.<br />
<br />
body { <br />
&nbsp;background-image: url(background_image.jpg); /*IE, not support browser*/<br />
&nbsp;background-size: 50% 50%; /* w3c spec */ <br />
&nbsp;&nbsp; -moz-background-size: 50% 50%; /* firefox css*/ <br />
&nbsp;&nbsp; -webkit-background-size: 50% 50%; /* safari/chrome */ <br />
&nbsp;&nbsp; -o-background-size: 50% 50%; /* opera css */ <br />
}<br />
<br />
다음 URL로 확인해 볼 수 있다.<br />
<br />
<span style="font-weight: bold;">http://www.sitepoint.com/examples/css3/css3-background-size.html</span><br />
<br />
background-size가 지원되지 않는 IE와 같은 브라우져에서는 가장 기본속성을 보여주게 하고<br />
background-size가 지원되는 브라우져에 맞게 브라우져 핵을 써서 적용시켰다.<br />
<br />
<span style="font-weight: bold;">3. CSS Grandients</span><br />
<br />
CSS background gradients는 FF3.6 alpha, safari4, chrome3버전에서만 지원하고 있다.<br />
background-image와 같이 사용된다.<br />
<br />
div#cssgradient2 { <br />
&nbsp;background-image: -moz-linear-gradient(top, bottom,from(#A1D004),to(#6B9A00)); <br />
&nbsp;background-image: -webkit-gradient(linear, left top, left bottom,color-stop(0.00, #A1D004),color-stop(1.00, #6B9A00)); <br />
}<br />
<br />
mozilla(FF), Webkit(Safari/Chrome)의 코드는 동일하지 않다. gradient를 설정하지 시작과 마지막 color값을 동일하게 요구한다.<br />
(위치값은 - top, left, right, bottom등으로 설정해주면 된다.)<br />
<br />
Webkit과 Mozilla는 방성형이나 직선형태의 gradients로 사용할 수 있다. 이 속성은 이러한 과장을 조금씩 변경되도록 다루고 있다.<br />
Mozilla는 두개의 속성값을 분리(-moz-linear grandient(), -molz-radial-gradient())하여 다루고 있고,<br />
Webkig은 하나의 속성값에서 parameter로 다루고 있다.(-webkig-grandient-(radial,...))<br />
<br />
여기에서 간단한 예를 볼 수 있다.<br />
<br />
<span style="font-weight: bold;">http://www.sitepoint.com/examples/css3/gradient.html</span><br />
<br />
CSS gradients는 최소 두개의 색깔을 요구한다. 두가지 method는 grandient를 변경시킬 여러개의 컬러값을 설정하는것을 허용한다.<br />
무지개 gradient를 표현하는 코드는 다음과 같다.<br />
<br />
/* fallback */ <br />
background: #F66 url(rainbow-gradient.jpg); <br />
<br />
/*mozilla gradient*/ <br />
background-image: -moz-linear-gradient(left, right, <br />
&nbsp;from(red), <br />
&nbsp;color-stop(16%, orange), <br />
&nbsp;color-stop(32%, yellow), <br />
&nbsp;color-stop(48%, green), <br />
&nbsp;color-stop(60%, blue), <br />
&nbsp;color-stop(76%, indigo), <br />
&nbsp;to(violet)); <br />
<br />
/* webkit gradient */ <br />
background-image: -webkit-gradient(linear, <br />
&nbsp;left top, left bottom, <br />
&nbsp;color-stop(0.00, red), <br />
&nbsp;color-stop(16%, orange), <br />
&nbsp;color-stop(32%, yellow), <br />
&nbsp;color-stop(48%, green), <br />
&nbsp;color-stop(60%, blue), <br />
&nbsp;color-stop(76%, indigo), <br />
&nbsp;color-stop(1.00, violet));<br />
<br />
<br />
흥미롭게도, IE는 무지개는 표한할 수 없지만 간단한 gradients를 filter속성을 사용하여 IE5부터 표현할 수 있다.<br />
filter: progid:DXImageTransform.Microsoft.gradient( <br />
&nbsp;enabled='true', <br />
&nbsp;startColorstr=#A1D004, <br />
&nbsp;endColorstr=#6B9A00, <br />
&nbsp;GradientType=0 <br />
); <br />
<br />
위의 코드에서 두가지를 아는 것이 필요하다.<br />
첫째, 이 코드가 깔끔하지는 않지만 시작과 마지막 컬러값을 설정한 것을 볼 수 있다.<br />
둘째, GradientType parameter는 gradient의 방향을 설정하다. 0으로 설정하면&nbsp; 수직 gradient이고 1은 수평이다.<br />
대신 비스듬한 gradient는 ie에서 설정이 불가능하다.<br />
<br />
<span style="font-weight: bold;">CSS gradient를 사용함으로서 매력적인 3가지 이유이다.</span><br />
1. 이미지를 사용하지 않고, contents의 양에따라 적절하게 표현하고, 비율에 맞춰 표현할 수 있다.<br />
2. CSS gradients는 매율 효율적이고, 크고, 유연하고, 코드로 라인의 tone등을 설정 할 수 있고, 유저가 느끼는 페이지 로딩시간을<br />
더 빠르게 느끼게 할 수 있다.<br />
3. CSS gradients는 복잡한 tone이나 image가 할 수 없는 여러가지 표현들을 쉽고 빠르게 보여줄 수 있다.<br />
<br />
FF, Chrome, Safari는 gradient의 지원을 완벽하게 하고 있다. IE는 간단한 표현이 가능한 gradient를 지원하고 있다.<br />
<br />
<br />
원문 : http://articles.sitepoint.com/article/css3-infinity-beyond<br />
<br />
<br/><br/>tag : <a href="/tag/css3ff3.6" rel="tag">css3ff3.6</a>			 ]]> 
		</description>
		<category>css3</category>
		<category>css3ff3.6</category>

		<comments>http://seye2.egloos.com/2449235#comments</comments>
		<pubDate>Fri, 02 Oct 2009 07:16:37 GMT</pubDate>
		<dc:creator>seye2</dc:creator>
	</item>
	<item>
		<title><![CDATA[ HTML5의 소개 및 지원되는 않는 브라우져에서의 사용법 (4 - Video Formats)  ]]> </title>
		<link>http://seye2.egloos.com/2448983</link>
		<guid>http://seye2.egloos.com/2448983</guid>
		<description>
			<![CDATA[ 
  <p><span style="FONT-SIZE: 130%"><strong>저자 : Mark Pilgrim<br></strong></span><br></p><p>Video format은 언어로 쓰는 것과 같다. 영어신문과 스페인 신문은 같은 정보를 전달하지만, 당신이 영어만 읽을 수 있다면<br>여러 언어의 신문중 영어신문만 읽을 수 있을 것이다. video를 play하기 위하여 브라우져들은 언어(video로 쓰여진)를 이해하는 것이 필수적이다.<br></p><p><br>위에서 언어라고 말한것은 video에서는 codec으로 불리어 진다. vidoe의 stream을 해석하기 위한 알고리즘을 사용한다.<br>불행하게도 HTML5 Video Tag에서는 코덱을 사용할 수 없다. 브라우져들은 두개정도의 동영상을 볼 수 있게 제공한다.<br>(라이센스 비용 때문이다.)<br><br>HTML5의 Video태그는 safari와 iphone에서는 잘동작한다.(Adobe Flash도 지원한다. 이것에 대한 해결 방법은 Video for Everybody! - <a href="http://camendesign.com/code/video_for_everybody">http://camendesign.com/code/video_for_everybody</a> 여기서 확인하면 된다.)<br><br>또 Chromium(<a href="http://code.google.com/intl/ko/chromium/">http://code.google.com/intl/ko/chromium/</a>)과 Mozilla Firefox(<a href="http://www.mozilla.or.kr/ko/">http://www.mozilla.or.kr/ko/</a>)와 같은 <br>오픈 소스 브라우져도 동작한다.<br></p><p>브라우져가 HTML5 Video를 지원한다면 DOM 객체는 &lt;video&gt;태그의 canPlayTYpe() method를 사용할 수 있다.<br>이 method는 브라우져에서 지원하는 video format에 대해서 확인해준다.</p><p>또, 이 기능은 Macs과 iPhones에서 지원하는 포맷을 확인 시켜준다.<br><br>function supports_h264_baseline_video() {<br>&nbsp; if (!supports_video()) { return false; }<br>&nbsp; var v = document.createElement("video");<br>&nbsp; return v.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"');<br>}<br></p><p>supports_video()함수의 사용은 이전 내용에서 다루고 있다. 브라우져가 HTML5 video를 지원하지 않는다면 어떠한 video format도 볼 수 없다.<br></p><p><br>if (!supports_video()) { return false; }<br></p><p><br>그리고 이 함수는 비어있는 video태그를 생성해주고(이 기능은 페이지에서 확인할 수도, 볼 수 도 없다.), <br>canPlayType() method를 호출한다.<br><br>이 method는 supports_video()함수로 존재여부를 체크해주기 때문에 video태그의 존재여부를 보장해준다.<br></p><p><br>var v = document.createElement("video");<br></p><p><br>"video format"은 여러종류의 일을 수행하는 조합이다. 기술적으로 보면 video태그가 H.264 Baseline video와 MPEG-4의 <br>AAC LC audio를 실행할 수 있는지 아닌지를 확인할 수 있다.<br>(다음의 글을 읽으면 이런 비디오 종류에 대한 것을 이해할 수 있다. - <a href="http://diveintomark.org/tag/give">http://diveintomark.org/tag/give</a>)<br></p><p>return v.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"');<br></p><p><br>canPlayType()함수는 Boolean값을 return하지 않는다. 복잡한 video format과 관련된 string값을 return 시켜 준다.<br></p><p><br>"probably" 브라우져가 현재 format을 실행시킬 수 있다는 확신이 있다면<br>"maybe" 브라우져가 현재 format을 실행시킬 수 있다는 판단이 되면<br>""(비어있는 값)브라우져가 현재 format을 실행시킬 수 없을때<br></p><p><br>여기서 설명하는 함수는 Mozilla Firefox 또는 다른 open source 브라우져들이 video format을 지원하는지를 확인한다.<br>위의 내용과 다른 이 함수의&nbsp;차이점은 canPlayType()함수가 string값을 던져주는 것이다. 기술적으로 얘기하면<br>브라우져가 Theora video와 Vorbis audio(ogg)를 실행할 수 있는지 아닌지를 요청한다.<br></p><p>function supports_ogg_theora_video() {<br>&nbsp; if (!supports_video()) { return false; }<br>&nbsp; var v = document.createElement("video");<br>&nbsp; return v.canPlayType('video/ogg; codecs="theora, vorbis"');<br>}<br></p><p><br>Modernizr에서는 각각의 video format을 확인해줄 수 없다. 그렇기 때문에 video태그를 사용할때 여기에 적혀진 함수를 <br>사용해야 할 것이다.</p><p><br>원서 : <a href="http://diveintohtml5.org/detect.html">http://diveintohtml5.org/detect.html</a></p><br/><br/>tag : <a href="/tag/html5videoformat" rel="tag">html5videoformat</a>			 ]]> 
		</description>
		<category>html5</category>
		<category>html5videoformat</category>

		<comments>http://seye2.egloos.com/2448983#comments</comments>
		<pubDate>Thu, 01 Oct 2009 17:08:01 GMT</pubDate>
		<dc:creator>seye2</dc:creator>
	</item>
	<item>
		<title><![CDATA[ HTML5의 소개 및 지원되는 않는 브라우져에서의 사용법 (3 - Video) ]]> </title>
		<link>http://seye2.egloos.com/2447515</link>
		<guid>http://seye2.egloos.com/2447515</guid>
		<description>
			<![CDATA[ 
  <span style="font-weight: bold;">저자 : Mark Pilgrim</span><br />
<br />
HTML5는 브라우져에서 지원하는 <span style="font-weight: bold;">&lt;video&gt;</span>라는 새로운 태그를 선보였다. 내장된 Video는 QuickTime, Flash등 <br />
third-party plugin없이 사용이 가능하다.<br />
<br />
또한 &lt;video&gt;태그는 스크립트의 사용없이도 사용할 수 있다. 다양한 Video Files을 사용할 수 있고, 브라우져들은<br />
HTML5에서 &lt;video&gt;태그를 지원함으로써 자체에서 지원되어지는 video format들을 기본으로 선택할 수 있게 될 것이다.<br />
다음에서 관련 내용들을 볼 수 있다. <br />
<br />
part 1: <span style="font-weight: bold;">포함하고 있는 포맷</span> (http://diveintomark.org/archives/2008/12/18/give-part-1-container-formats)<br />
part 2: <span style="font-weight: bold;">video codec의 불필요</span> (http://diveintomark.org/archives/2008/12/19/give-part-2-lossy-video-codecs)<br />
<br />
HTML5 &lt;video&gt;태그를 지원하지 않는 브라우져들은 &lt;video&gt;를 앞으로도 지원하지 않을 것 같다. 그러나 third-party plugin <br />
대신에 기본적으로 제공하는 이점에 대해서 알려야한다.<br />
<br />
Kroc Camen은 <span style="font-weight: bold;">Video for Everybody!(http://camendesign.com/code/video_for_everybody)</span>로 볼려지는 <br />
해결방법을 제시했다.<br />
HTML5 &lt;video&gt;태그를 사용할 수 있다면 사용하고, 아니라면 QuickTime, flash등 third-party plugin으로 이전 브라우져와의 <br />
호환성을 해결했다.<br />
이러한 해결 방법에서 Javascript를 사용하지 않았다. 또한 어떤 브라우져에서도 잘 실행되었다.(모바일브라우져를 포함하고 있다.)<br />
<br />
이 방법 말고도 더 많은 해결방법을 얘기해보고자 한다.<br />
&lt;video&gt;태그를 사용한 페이지에서 play와 같은 기능들보다 더 많은 기능을 사용하고 싶다면, Javascript를 사용하여야 한다.<br />
현재 브라우져가 HTML5 &lt;video&gt;태그를 지원한다라면, DOM 객체는 &lt;video&gt;태그를 만들고 canPlayType() 함수를 가지고 <br />
있을 것이다.<br />
지원하지 않는다라면 &lt;video&gt;태그를 생성하여, 모든 태그에서 쓰이는 일반적인 속성으로 설정할 수 있다.<br />
<br />
<span style="font-weight: bold;">function supports_video() {</span><br style="font-weight: bold;"><span style="font-weight: bold;">&nbsp; return !!document.createElement('video').canPlayType;</span><br style="font-weight: bold;"><span style="font-weight: bold;">}</span><br />
<br />
기능을 직접 작성하는 대신에 Modernizr로 &lt;video&gt; 태그를 지원받을 수 있다.<br />
<br style="font-weight: bold;"><span style="font-weight: bold;">if (Modernizr.video) {</span><br style="font-weight: bold;"><span style="font-weight: bold;">&nbsp; // let's play some video!</span><br style="font-weight: bold;"><span style="font-weight: bold;">} else {</span><br style="font-weight: bold;"><span style="font-weight: bold;">&nbsp; // no native video support available :(</span><br style="font-weight: bold;"><span style="font-weight: bold;">&nbsp; // maybe check for QuickTime® or Flash® instead</span><br style="font-weight: bold;"><span style="font-weight: bold;">}</span><br />
<br />
다음으로는 현재 브라우져에서 실행되어 질 수 있는 video format을 찾는 테스트를 해볼려고 한다.<br />
<br />
원서 : <a href="http://diveintohtml5.org/detect.html">http://diveintohtml5.org/detect.html</a><br />
<br/><br/>tag : <a href="/tag/html5video" rel="tag">html5video</a>			 ]]> 
		</description>
		<category>html5</category>
		<category>html5video</category>

		<comments>http://seye2.egloos.com/2447515#comments</comments>
		<pubDate>Tue, 29 Sep 2009 13:33:53 GMT</pubDate>
		<dc:creator>seye2</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 배경 이미지 100% 방법 ]]> </title>
		<link>http://seye2.egloos.com/2447279</link>
		<guid>http://seye2.egloos.com/2447279</guid>
		<description>
			<![CDATA[ 
  원본 사이트(mootools사용)<br />
http://www.pizzaza.ca/restaurant/bar_a_vin.php<br />
<br />
<span role="treeitem" aria-expanded="true" class="nodeLabelBox repTarget">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;<br />
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /&gt;<br />
<br />
&lt;title&gt;배경100%&lt;/title&gt;<br />
&lt;style type="text/css"&gt;<br />
#background_container {<br />
&nbsp;&nbsp;&nbsp; left:0;<br />
&nbsp;&nbsp;&nbsp; position:absolute;<br />
&nbsp;&nbsp;&nbsp; top:0;<br />
}<br />
#background {<br />
&nbsp;&nbsp;&nbsp; left:0;<br />
&nbsp;&nbsp;&nbsp; overflow:hidden;<br />
&nbsp;&nbsp;&nbsp; position:fixed;<br />
&nbsp;&nbsp;&nbsp; top:0;<br />
}<br />
<br />
* html #background {position:absolute;}<br />
<br />
img { -ms-interpolation-mode: bicubic; }<br />
&lt;/style&gt;<br />
<br />
&lt;script type="text/javascript"&gt;<br />
window.onload = function () {<br />
&nbsp;&nbsp;&nbsp; resize_background_image_now();<br />
}<br />
window.onresize = function () {<br />
&nbsp;&nbsp;&nbsp; resize_background_image_now();<br />
}<br />
<br />
function resize_background_image_now()<br />
{<br />
&nbsp;var bg = document.getElementById('background').getElementsByTagName('img')[0];<br />
<br />
&nbsp;var ratio = 12/8;<br />
&nbsp;bg.style.width = windowWidth()+'px';<br />
&nbsp;bg.style.height = (windowWidth() / ratio)+'px';<br />
<br />
&nbsp;if (parseInt(bg.style.height) &lt; windowHeight()) {<br />
&nbsp;bg.style.height = windowHeight()+'px';<br />
&nbsp;bg.style.width = (windowHeight() * ratio) +'px';<br />
&nbsp;}<br />
}<br />
<br />
function windowHeight () {<br />
&nbsp;&nbsp;&nbsp; var de = document.documentElement;<br />
&nbsp;&nbsp;&nbsp; return self.innerHeight ||<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ( de &amp;&amp; de.clientHeight ) || <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; document.body.clientHeight;<br />
}<br />
function windowWidth () {<br />
&nbsp;&nbsp;&nbsp; var de = document.documentElement;<br />
&nbsp;&nbsp;&nbsp; return self.innerWidth ||<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ( de &amp;&amp; de.clientWidth ) || <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; document.body.clientWidth;<br />
}<br />
&lt;/script&gt;<br />
&lt;!--[if lt IE 7]&gt;<br />
&lt;script defer type="text/javascript" src="http://www.pizzaza.ca/_java/fixed.js"&gt;&lt;/script&gt;<br />
&lt;![endif]--&gt;<br />
&lt;/head&gt;<br />
&lt;body style="margin:0; padding:0;"&gt;<br />
&lt;div id="background_container"&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;div id="background"&gt;&lt;!-- InstanceBeginEditable name="background" --&gt;&lt;img src="http://www.pizzaza.ca/_images/bg_julie.jpg" width="1200" height="800" alt=" " /&gt;&lt;!-- InstanceEndEditable --&gt;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</span><br />
<br/><br/>tag : <a href="/tag/html꽉찬배경" rel="tag">html꽉찬배경</a>			 ]]> 
		</description>
		<category>html/css</category>
		<category>html꽉찬배경</category>

		<comments>http://seye2.egloos.com/2447279#comments</comments>
		<pubDate>Tue, 29 Sep 2009 05:19:10 GMT</pubDate>
		<dc:creator>seye2</dc:creator>
	</item>
	<item>
		<title><![CDATA[ HTML5의 소개 및 지원되는 않는 브라우져에서의 사용법 (2 - canvas Text API) ]]> </title>
		<link>http://seye2.egloos.com/2446208</link>
		<guid>http://seye2.egloos.com/2446208</guid>
		<description>
			<![CDATA[ 
  저자 : Mark Pilgrim<br />
<br />
<font style="font-weight: bold;" size="4">&nbsp;- canvas text API</font><br />
<br />
사용하고 있는 브라우져가 canvas API를 지원한다면 canvas text API는 지원하지 않을것이다. canvas API는 시간이 <br />
지나면서 점점 늘어나고 있지만, text기능은 늦게 지원될 것이다. 몇몇 브라우져는 text API를 지원하기 전에 canvas를 <br />
먼저 지원하고 있다.<br />
<br />
사용하는 브라우져가 canvas API를 지원한다면 DOM객체는 getContext() method로 &lt;canvas&gt;태그를 확인할 수 있도록 <br />
해준다.<br />
사용하고 있는 브라우져가 canvas API를 지원하지 않는다면 DOM객체는 일반적인 method로 &lt;canvas&gt;태그를 만들 수 <br />
있도록 해준다.<br />
<br />
<span style="font-weight: bold;">function supports_canvas_text() {</span><br style="font-weight: bold;"><span style="font-weight: bold;">&nbsp; if (!supports_canvas()) { return false; }</span><br style="font-weight: bold;"><span style="font-weight: bold;">&nbsp; var dummy_canvas = document.createElement('canvas');</span><br style="font-weight: bold;"><span style="font-weight: bold;">&nbsp; var context = dummy_canvas.getContext('2d');</span><br style="font-weight: bold;"><span style="font-weight: bold;">&nbsp; return (typeof context.fillText == 'function');</span><br style="font-weight: bold;"><span style="font-weight: bold;">}</span><br />
<br />
canvas를 사용하기 위해서는 canvas가 지원되는지에 대한 확이부터 시작한다. support_canvas()함수에 대해 이전 섹션에서 확인할 수 있다.<br />
사용하는 브라우져가 canvas API를 지원하지 않다는다면 text API지원도 안될 것이다.<br />
<br style="font-weight: bold;"><span style="font-weight: bold;">if (!supports_canvas()) { return false; }</span><br />
<br />
다음은 &lt;canvas&gt;태그와 context에 그릴 객체를 만든다. support_canvas()에서 이미 getContext method가 모든 canvas객체에 존재하는지에 대해 확인했기 때문에 사용이 가능하다.<br />
<br />
<span style="font-weight: bold;">var dummy_canvas = document.createElement('canvas');</span><br style="font-weight: bold;"><span style="font-weight: bold;">var context = dummy_canvas.getContext('2d');</span><br />
<br />
마지막으로 drawing context가 fillText()함수를 사용할 수 있는지에 대한 확인을 해야한다. 가능하다면 canvas text API의 사용이 가능하다.<br />
<br style="font-weight: bold;"><span style="font-weight: bold;">return (typeof context.fillText == 'function');</span><br />
<br />
이 기능을 쓰기전에 Modernizr를 사용하여 canvas text API의 지원을 받을 수 있다.<br />
<br />
<span style="font-weight: bold;">if (Modernizr.canvastext) {</span><br style="font-weight: bold;"><span style="font-weight: bold;">&nbsp; // let's draw some text!</span><br style="font-weight: bold;"><span style="font-weight: bold;">} else {</span><br style="font-weight: bold;"><span style="font-weight: bold;">&nbsp; // no native canvas text support available :(</span><br style="font-weight: bold;"><span style="font-weight: bold;">}</span><br />
<br />
원서 : <a href="http://diveintohtml5.org/detect.html">http://diveintohtml5.org/detect.html</a><br />
<br/><br/>tag : <a href="/tag/html5canvastextapi" rel="tag">html5canvastextapi</a>			 ]]> 
		</description>
		<category>html5</category>
		<category>html5canvastextapi</category>

		<comments>http://seye2.egloos.com/2446208#comments</comments>
		<pubDate>Sun, 27 Sep 2009 14:13:35 GMT</pubDate>
		<dc:creator>seye2</dc:creator>
	</item>
	<item>
		<title><![CDATA[ HTML5의 소개 및 지원되는 않는 브라우져에서의 사용법 (1 - canvas API) ]]> </title>
		<link>http://seye2.egloos.com/2443773</link>
		<guid>http://seye2.egloos.com/2443773</guid>
		<description>
			<![CDATA[ 
  <p><strong><span style="font-size: 130%;">저자 : </span></strong><a href="http://diveintohtml5.org/about.html"><span style="font-size: 130%; color: rgb(178, 34, 34);">Mark Pilgrim</span></a><br />
<br />
<strong><span style="font-size: 130%;">&nbsp;- 들어가기 전에<br />
</span></strong><br />
HTML5를 사용하는데 예전 브라우져들이 지원하지 않으면 어떻게 하나요? 라는 의문이 생길 것이다.<br />
그러나 질문 자체가 잘못되었다. HTML5자체가 아닌 , 개별적인 특징의 모임이다. 브라우져들이 개별적인 특징들을 <br />
지원하는 것을 발견할 수 있을것이다. (canvas, video, geolocation)<br />
<br />
</p><p><span style="font-size: 130%;"><strong>&nbsp;- 기술들의 발견<br />
</strong></span><br />
브라우져가 객체들의 모임인 웹페이지를 렌더링할때는(DOM을 생성한다.) HTML태그로 표현한다.<br />
모든 태그(&lt;p&gt;,&lt;div&gt;,&lt;span&gt;)는 다양한 객체들에 의해 DOM을 표현한다. (전역객체(window, document)들은 특수하게 <br />
일반객체와는 다르다.)<br />
</p><p>모든 DOM객체들은 일반적인 속성들을 공유한다. 하지만 몇몇 객체들은 더 많은 속성을 가지고 있다.<br />
HTML5특징을 지원하는 브라우져에서, 특정한 객체들은 특별한 속성을 가지고 있다.<br />
DOM에서 이러한 속성들을 지원하는 특징들에 대해서 얘기를 해볼려고 한다.</p><p>발견한 4개의 기술들에 대해서 브라우져별 지원내용에 대해서 알아볼려고 한다.<br />
<br />
<span style="font-size: 170%;"><strong>&nbsp;- Modernizr, HTML5 Library<br />
<br />
</strong></span>Modernizr는 오픈소스이다. MIT-lincesed Javascript library이고 HTML5 &amp; CSS3특징들을 지원한다.<br />
Modernizr를 사용하기 위해서는 다음과 같은 &lt;script&gt;태그를 페이지 상단에 적용한다.<br />
</p><p>&lt;!DOCTYPE html&gt;<br />
&lt;html&gt;<br />
&lt;head&gt;<br />
&nbsp; &lt;meta charset="utf-8"&gt;<br />
&nbsp; &lt;title&gt;Dive Into HTML5&lt;/title&gt;<br />
&nbsp; &lt;script src="modernizr.min.js"&gt;&lt;/script&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&nbsp; ...<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
</p><p>Modernizr는 자동으로 실행되며, modernizr_init()같은 함수를 사용하여 구동시킬 필요가 없다.<br />
<br />
이 라이브러리를 실행할때 Modernizr에 의해 호출된 전역객체들이 생성된다. 전역객체는 각각의 특징에 Boolean <br />
속성들을 포함하고 있다.<br />
예를 들어 사용하고 있는 브라우져가 canvas API(<a href="http://diveintohtml5.org/canvas.html">http://diveintohtml5.org/canvas.html</a>)를 지원한다라면 <br />
Modernizr.canvas속성을 true값을 가지게 될 것이다.<br />
<br />
canvas API를 지원하지 않는 브라우져라면 Modernizr.canvas속성은 false값을 가질 것이다.<br />
</p><p>if (Modernizr.canvas) {<br />
&nbsp; // let's draw some shapes!<br />
} else {<br />
&nbsp; // no native canvas support available :(<br />
}<br />
<br />
원서 : <a href="http://diveintohtml5.org/detect.html">http://diveintohtml5.org/detect.html</a></p><br/><br/>tag : <a href="/tag/HTML5Features" rel="tag">HTML5Features</a>			 ]]> 
		</description>
		<category>html5</category>
		<category>HTML5Features</category>

		<comments>http://seye2.egloos.com/2443773#comments</comments>
		<pubDate>Wed, 23 Sep 2009 15:08:11 GMT</pubDate>
		<dc:creator>seye2</dc:creator>
	</item>
	<item>
		<title><![CDATA[ Blog templates:HTML5의 layout관련 elements ]]> </title>
		<link>http://seye2.egloos.com/2443168</link>
		<guid>http://seye2.egloos.com/2443168</guid>
		<description>
			<![CDATA[ 
  <p><strong>저자 : Edward O'Connor</strong><br></p><p>HTML5 spec은 layout과 관련된 새로운 sectioning elements를 소개하고 있다. - &lt;article&gt;, &lt;section&gt;, &lt;header&gt;, &lt;footer&gt;, &lt;nav&gt;, &lt;aside&gt;, &lt;hgroup&gt;<br><br>이런 태그들을 사용할때에 대한 혼란이 늘어나고 있다. 이러한 태그들을 사용할때 더 적절하게 사용하는 방법과 예제를 통하여 blog template을 만들어 보고자 한다.</p><br /><br /><p><span style="FONT-SIZE: 130%"><strong>- 기본적인 페이지 template<br><br></strong></span></p><p>처음 시작은 블로그의 기본적인 페이지 template부터 시작하고자 한다. 여기서는 사이트의 header, footer, sidebar, contents는 <br>제외하고 sub-templates과 관련되게 제공하고자 한다.<br></p><p>&lt;!DOCTYPE html&gt;<br>&lt;html lang="en-US-x-Hixie"&gt;<br>&nbsp; &lt;head&gt;<br>&nbsp;&nbsp;&nbsp; &lt;title&gt;My Blog: Adventures in cat pictures&lt;/title&gt;<br>&nbsp; &lt;/head&gt;<br>&nbsp; &lt;body&gt;</p><p>&nbsp;&nbsp;&nbsp; &lt;header&gt; &lt;!-- site header --&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;hgroup&gt; &lt;!-- squashes subtitle in doc outline --&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h1&gt;My Blog&lt;/h1&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h2&gt;Adventures in cat pictures&lt;/h2&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/hgroup&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;nav&gt; &lt;!-- main blog navigation links --&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ul&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="…"&gt;Front page&lt;/a&gt;&lt;/li&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="…"&gt;About My Blog&lt;/a&gt;&lt;/li&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; … other navigation links …<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/ul&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/nav&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/header&gt;</p><p>&nbsp;&nbsp;&nbsp; … main content goes here …</p><p>&nbsp;&nbsp;&nbsp; &lt;aside&gt; &lt;!-- sidebar --&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;section&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h1&gt;Search My Blog&lt;/h1&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;form action="…"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input name="q" type="search"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; placeholder="To search, type and hit enter" /&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/form&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/section&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;section&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h1&gt;Blogroll&lt;/h1&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ul&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="…"&gt;My other blog&lt;/a&gt;&lt;/li&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="…"&gt;Your blog&lt;/a&gt;&lt;/li&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="…"&gt;Your friend’s blog&lt;/a&gt;&lt;/li&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/ul&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/section&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/aside&gt;</p><p>&nbsp;&nbsp;&nbsp; &lt;footer&gt; &lt;!-- site footer --&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;Copyright ⓒ 2009 You. All rights reserved.&lt;/p&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;address&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;a href="<a href="http://www.egloos.com/egloo/content/'mailto:you@example.orgmailto:you@example.org" ?>you@example.org</a'>you@example.orgmailto:you@example.org"&gt;you@example.org&lt;/a</a>&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/address&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/footer&gt;<br>&nbsp; &lt;/body&gt;<br>&lt;/html&gt;<br></p><p>위의 마크업은 쉽게 이해가 될것이다. 그래도 잠깐 짚고 넘어가보고자 한다.</p><p><strong>첫째, page header</strong></p><p>&lt;header&gt; &lt;!-- site header --&gt;<br>&nbsp; &lt;hgroup&gt; &lt;!-- squashes subtitle in doc outline --&gt;<br>&nbsp;&nbsp;&nbsp; &lt;h1&gt;My Blog&lt;/h1&gt;<br>&nbsp;&nbsp;&nbsp; &lt;h2&gt;Adventures in cat pictures&lt;/h2&gt;<br>&nbsp; &lt;/hgroup&gt;<br>&nbsp; &lt;nav&gt; &lt;!-- main blog navigation links --&gt;<br>&nbsp;&nbsp;&nbsp; &lt;ul&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="…"&gt;Front page&lt;/a&gt;&lt;/li&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="…"&gt;About My Blog&lt;/a&gt;&lt;/li&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; … other navigation links …<br>&nbsp;&nbsp;&nbsp; &lt;/ul&gt;<br>&nbsp; &lt;/nav&gt;<br>&lt;/header&gt;<br></p><p>이 사이트의 header에는 새로운 세개의 태그가 사용되어 졌다. - &lt;header&gt;,&lt;hgroup&gt;,&lt;nav&gt;</p><p>&lt;header&gt;태그는 모든 sectioning 태그에서 사용되어 질 수 있다. <br><br>이러한 조건에서는 &lt;body&gt;의 header로서 사용되어졌고, &lt;article&gt;태그만큼 새로운 sectioning elements이다.</p><p>페이지에서 사이트 heading과 page- 또는 section-specific headings의 차이를 구분할려고 한다면<br>CSS styling으로 가능하다.<br></p><p>&lt;hgroup&gt;태그에서는 h1-h6태그를 사용하고 subheading, 대체제목, line으로 구분할때 사용되어 진다. <br>위의 코드에서 처럼 header에서, blog의 제목과 &amp; 서브제목을 마크업할때 사용하고, 서브제목이 문서의 바깥으로 <br>나타나지 않게한다.</p><p><br>&lt;nav&gt;태그는 페이지내에서 다른 페이지 혹은 섹션 링크를 나타내는 섹션이다. &lt;nav&gt;태그는 header내용을 포함할 수 있다.<br><br></p><p><strong>다음은 sidebar이다.</strong></p><p>&lt;aside&gt; &lt;!-- blog sidebar --&gt;<br>&nbsp; &lt;section&gt;<br>&nbsp;&nbsp;&nbsp; &lt;h1&gt;Search My Blog&lt;/h1&gt;<br>&nbsp;&nbsp;&nbsp; &lt;form action="…"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input name="q" type="search"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; placeholder="To search, type and hit enter" /&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/form&gt;<br>&nbsp; &lt;/section&gt;<br>&nbsp; &lt;section&gt;<br>&nbsp;&nbsp;&nbsp; &lt;h1&gt;Blogroll&lt;/h1&gt;<br>&nbsp;&nbsp;&nbsp; &lt;ul&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="…"&gt;My other blog&lt;/a&gt;&lt;/li&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="…"&gt;Your blog&lt;/a&gt;&lt;/li&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="…"&gt;your friend’s blog&lt;/a&gt;&lt;/li&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/ul&gt;<br>&nbsp; &lt;/section&gt;<br>&lt;/aside&gt;<br></p><p>sidebar에서는 몇가지 새로운 태그와 속성이 사용되었다. - &lt;aside&gt;,&lt;section&gt;,&lt;input type="search"&gt;,<br>placeholder attribute.&nbsp; sidebar는 &lt;aside&gt;태그로 표현할 수 있다. <br>sidebar의 각 섹션은 &lt;section&gt;태그가 포함되어 있다.<br></p><p>HTML5는 application section 또는 문서내에서 &lt;section&gt;태그를 정의할 수 있다. section은 컨텐츠의 주제별 그룹이고, <br>heading, footer에서도 사용 가능하다.<br><br></p><p>&lt;section&gt;태그는 문서를 부분적으로 나누는것이다. 각 sidebar의 sections은 heading을 가지고 있고, 경계를 나타내준다.</p><p>&lt;h1&gt;태그를 headings으로 사용하고 &lt;h2&gt;~&lt;h6&gt;을 사용하지 않았다. sectioning태그는 heading태그를 <br>중복시키지 않는 역활을 한다. <br><br><strong>예제를 보면</strong><br>&lt;body&gt;<br>&nbsp; &lt;h1&gt;Heading 1&lt;/h1&gt;<br>&nbsp; &lt;h2&gt;Heading 1.1&lt;/h2&gt;<br>&nbsp; &lt;h3&gt;Heading 1.1.1&lt;/h3&gt;<br>&nbsp; &lt;h2&gt;Heading 1.2&lt;/h2&gt;<br>&lt;/body&gt;</p><p>&nbsp;</p><p><strong>또 다른 예제</strong><br>&lt;body&gt;<br>&nbsp; &lt;h1&gt;Heading 1&lt;/h1&gt;<br>&nbsp; &lt;section&gt;<br>&nbsp;&nbsp;&nbsp; &lt;h1&gt;Heading 1.1&lt;/h1&gt;<br>&nbsp;&nbsp;&nbsp; &lt;section&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h1&gt;Heading 1.1.1&lt;/h1&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/section&gt;<br>&nbsp; &lt;/section&gt;<br>&nbsp; &lt;section&gt;<br>&nbsp;&nbsp;&nbsp; &lt;h1&gt;Heading 1.2&lt;/h1&gt;<br>&nbsp; &lt;/section&gt;<br>&lt;/body&gt;<br></p><p>CSS를 사용하여 body&gt;h1 style이 section&gt;h1보다 rendering되는 크기가 더 크다.<br>중복되는 최상위 heading과 하위 heading를 &lt;section&gt;태그로 구분할 수 있을 것이다.<br><br>search form은 HTML5의 내용중 부분적으로 사용을 하였다. &lt;input type="search"&gt;는 type="text"와 같은동작을 하지만 <br>분명한 차이점이 있다.<br></p><p>이러한 속성들은 Webkit엔진을 가진 브라우져(safari)에서는 몇년전부터 실행이 되어졌고, HTML5에서는 채택이 되어 졌다.<br>placeholder 속성은 input내용이 비어 있을때 또는 focus가 가지 않았을때 입력 예를 보여주고, 사용자가 <br>click(또는 tab)으로 해당input field를 이동했을때는 텍스트가 사라지게 한다.<br></p><p>&lt;footer&gt;태그는 site의 metadata( copyright, contact information) 것들을 포함하고 있다.</p><p>&lt;footer&gt; &lt;!-- site footer --&gt;<br>&nbsp; &lt;p&gt;Copyright ⓒ 2009 You. All rights reserved.&lt;/p&gt;<br>&nbsp; &lt;address&gt;<br>&nbsp;&nbsp;&nbsp; &lt;a href="<a href="http://www.egloos.com/egloo/content/'mailto:you@example.orgmailto:you@example.org" ?>you@example.org</a'>you@example.orgmailto:you@example.org"&gt;you@example.org&lt;/a</a>&gt;<br>&nbsp; &lt;/address&gt;<br>&lt;/footer&gt;<br></p><p><span style="FONT-SIZE: 130%"><strong>- 개별 blog posts</strong></span><br>블로그를 보는 두가지 방법이 있다. 하나는 페이지 내에서 한가지 블로그 포스트만 보는 것이고, 하나는 전체적으로 <br>모아놓은 블로그 포스트들을 보는 것이다. <br></p><p>&lt;article&gt;<br>&nbsp; &lt;header&gt; &lt;!-- blog post header --&gt;<br>&nbsp;&nbsp;&nbsp; &lt;h1&gt;My Blog Post&lt;/h1&gt;<br>&nbsp;&nbsp;&nbsp; &lt;p&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; posted by You at &lt;time<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; datetime="2009-09-04T16:13:40-07:00"&gt;1:40 PM<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; on September 4th, 2009&lt;/time&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/p&gt;<br>&nbsp; &lt;/header&gt;<br>&nbsp;&nbsp;&nbsp; … body of blog post …<br>&nbsp; &lt;footer&gt; &lt;!-- blog post footer --&gt;<br>&nbsp;&nbsp;&nbsp; &lt;p&gt;Comments are closed at this time.&lt;/p&gt;<br>&nbsp; &lt;/footer&gt;<br>&lt;/article&gt;<br></p><p>감싸고 있는 article 태그와 time 태그를 사용하고 있다.</p><p>&lt;article&gt;태그는 블로그 포스트를 사용하는 가장 좋은 sectioning 태그이다.<br></p><p>&nbsp;* &lt;article&gt;태그는 개별적인 문서의 부분, 페이지, 어플리케이션 또는 사이트등의 폼들을 구성하는 <br>페이지 섹션을 나타낸다. &lt;article&gt;태그는 "독립적이다" 컨텐츠로 따로 사용할 수 있고, 어느 부분에서든 섹션별로 <br>구분지어질 수 있다.<br></p><p>예를들어, 블로그 컨텐츠가 길고, 여러 부분으로 쪼개져 있고, 각각 subheading을 가지고 있다라면, 이러한 조건에서 <br>&lt;section&gt;태그를 사용하면 된다.<br></p><p>&lt;article&gt;<br>&nbsp; &lt;header&gt;…&lt;/header&gt;<br>&nbsp; &lt;section&gt;<br>&nbsp;&nbsp;&nbsp; &lt;h1&gt;Part the first&lt;/h1&gt;<br>&nbsp;&nbsp;&nbsp; … first part of blog post …<br>&nbsp; &lt;/section&gt;<br>&nbsp; &lt;section&gt;<br>&nbsp;&nbsp;&nbsp; &lt;h1&gt;Part the second&lt;/h1&gt;<br>&nbsp;&nbsp;&nbsp; … second part of blog post …<br>&nbsp; &lt;/section&gt;<br>&nbsp; … more sections …<br>&nbsp; &lt;footer&gt;…&lt;/footer&gt;<br>&lt;/article&gt;<br></p><p>&lt;article&gt;태그는 포스트의 내용을 포함하고 있고, 또한 &lt;header&gt;와 &lt;footer&gt;도 포함하고 있다.<br>&lt;section&gt;태그는 각각의 subsection을 포함하고 있다. 만약 세부적으로 styling또는 scripting을 적용시키고자 <br>한다라면 &lt;div&gt;태그를 사용하는게 맞는 의미일 것이다.<br></p><p>&nbsp;*&nbsp; &lt;section&gt;태그는 일반적인 container태그는 아니다. styling 또는 scripting을 하기위함이라면 section대신 div를 <br>사용하기를 권장한다.<br></p><p>&lt;div&gt;태그를 사용하는 것은 다음과 같이 짧은 블로그 포스트를 작성했을때이다.</p><p>&lt;article&gt;<br>&nbsp; &lt;header&gt;…&lt;/header&gt;<br>&nbsp; &lt;div&gt;<br>&nbsp;&nbsp;&nbsp; … body of blog post …<br>&nbsp; &lt;/div&gt;<br>&nbsp; &lt;footer&gt;…&lt;/footer&gt;<br>&lt;/article&gt;<br></p><p><strong>포스트가 길어지고 나누어야할때는</strong><br></p><p>&lt;article&gt;<br>&nbsp; &lt;header&gt;…&lt;/header&gt;<br>&nbsp; &lt;div&gt;<br>&nbsp;&nbsp;&nbsp; &lt;section&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h1&gt;Part the first&lt;/h1&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; … first part of blog post …<br>&nbsp;&nbsp;&nbsp; &lt;/section&gt;<br>&nbsp;&nbsp;&nbsp; &lt;section&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h1&gt;Part the second&lt;/h1&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; … second part of blog post …<br>&nbsp;&nbsp;&nbsp; &lt;/section&gt;<br>&nbsp;&nbsp;&nbsp; … more sections …<br>&nbsp; &lt;/div&gt;<br>&nbsp; &lt;footer&gt;…&lt;/footer&gt;<br>&lt;/article&gt;<br></p><p><strong><span style="FONT-SIZE: 130%">- comment</span></strong><br>comment에 대한 태그 사용은 &lt;article&gt;을 사용하길 권장한다.</p><p>&lt;article&gt;태그로 감싸게 된다면, 내부의 &lt;article&gt;태그는 바깥쪽 &lt;article&gt; contents와 관련되어 있다.<br></p><p>&lt;article&gt;<br>&nbsp; … header and such …<br>&nbsp; … body of blog post …<br>&nbsp; &lt;article&gt; &lt;!-- comment 1 --&gt;<br>&nbsp;&nbsp;&nbsp; … body of comment …<br>&nbsp;&nbsp;&nbsp; &lt;footer&gt; &lt;!-- comment footer --&gt;<br>&nbsp;&nbsp;&nbsp; … who wrote the comment, etc. …<br>&nbsp;&nbsp;&nbsp; &lt;/footer&gt;<br>&nbsp; &lt;/article&gt;<br>&nbsp; … more comments …<br>&nbsp; … blog post footer …<br>&lt;/article&gt;<br></p><p>그러나 comment추가 form은 어떻게 할 것인지에 대해서 생각해봐야한다. comment추가 form은 comments가 <br>존해하는 곳 다음에 나타난다.</p><p>comment와 form을 유지하는 container역확을 사용하는 태그를 사용하길 원한다. 내가 생각하는 가장 최적의 방법은 <br>&lt;section&gt;태그이다. <br></p><p>&lt;article&gt;<br>&nbsp; … header and such …<br>&nbsp; … body of blog post …<br>&nbsp; &lt;section&gt;<br>&nbsp;&nbsp;&nbsp; &lt;h1&gt;Comments&lt;/h1&gt;<br>&nbsp;&nbsp;&nbsp; &lt;article&gt; &lt;!-- comment 1 --&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; …<br>&nbsp;&nbsp;&nbsp; &lt;/article&gt;<br>&nbsp;&nbsp;&nbsp; … more comments …<br>&nbsp;&nbsp;&nbsp; &lt;form&gt; &lt;!-- add comment form --&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; …<br>&nbsp;&nbsp;&nbsp; &lt;/form&gt;<br>&nbsp; &lt;/section&gt;<br>&nbsp; … blog post footer …<br>&lt;/article&gt;<br></p><p><strong><span style="FONT-SIZE: 130%">- Archive pages</span></strong><br>Archive pages는 multiple blog posts를 가지고 있다. 페이지의 각 부분을 표시하기 위한 명확한 방법은 &lt;article&gt;태그를 <br>사용하는 것이다.<br></p><p>&lt;body&gt;<br>&nbsp; &lt;header&gt;…&lt;/header&gt;<br>&nbsp; &lt;article&gt;… blog post 1 …&lt;/article&gt;<br>&nbsp; &lt;article&gt;… blog post 2 …&lt;/article&gt;<br>&nbsp; … more blog posts …<br>&nbsp; &lt;aside&gt;…&lt;/aside&gt;<br>&nbsp; &lt;footer&gt;…&lt;/footer&gt;<br>&lt;/body&gt;<br></p><p>이전에 하던 방식은 &lt;div&gt;태그를 사용하던 것이다.<br></p><p>&lt;body&gt;<br>&nbsp; &lt;header&gt;…&lt;/header&gt;<br>&nbsp; &lt;div&gt;<br>&nbsp;&nbsp;&nbsp; &lt;article&gt;… blog post 1 …&lt;/article&gt;<br>&nbsp;&nbsp;&nbsp; &lt;article&gt;… blog post 2 …&lt;/article&gt;<br>&nbsp;&nbsp;&nbsp; … more blog posts …<br>&nbsp; &lt;/div&gt;<br>&nbsp; &lt;aside&gt;…&lt;/aside&gt;<br>&nbsp; &lt;footer&gt;…&lt;/footer&gt;<br>&lt;/body&gt;<br></p><p>원서 : <a href="http://edward.oconnor.cx/2009/09/using-the-html5-sectioning-elements">http://edward.oconnor.cx/2009/09/using-the-html5-sectioning-elements</a><a href="http://edward.oconnor.cx/2008/01/html-versioning"></a><br></p><br/><br/>tag : <a href="/tag/html5blog" rel="tag">html5blog</a>			 ]]> 
		</description>
		<category>html5</category>
		<category>html5blog</category>

		<comments>http://seye2.egloos.com/2443168#comments</comments>
		<pubDate>Tue, 22 Sep 2009 15:33:29 GMT</pubDate>
		<dc:creator>seye2</dc:creator>
	</item>
</channel>
</rss>
