<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>色胚子部落 &#187; library</title>
	<atom:link href="http://blog.colorbase.tw/tag/library/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.colorbase.tw</link>
	<description>訊息多變的時代裡，需要多學習多思考</description>
	<lastBuildDate>Sun, 20 Jun 2010 10:06:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>檢測訪客瀏覽器對 HTML5 與 CSS3 的支援程度</title>
		<link>http://blog.colorbase.tw/web-development/1099</link>
		<comments>http://blog.colorbase.tw/web-development/1099#comments</comments>
		<pubDate>Sun, 23 May 2010 02:26:00 +0000</pubDate>
		<dc:creator>阿育</dc:creator>
				<category><![CDATA[Web開發]]></category>
		<category><![CDATA[cross-browser]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[detecting]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[modernizr]]></category>
		<category><![CDATA[判斷]]></category>
		<category><![CDATA[檢測]]></category>
		<category><![CDATA[瀏覽器]]></category>
		<category><![CDATA[跨瀏覽器]]></category>

		<guid isPermaLink="false">http://blog.colorbase.tw/web-development/1099</guid>
		<description><![CDATA[由於各主流瀏覽器對於 HTML5 與 CSS3 中支援的程度不一，如果我們想要搶先嘗試使用它們的的新功能，卻又想要在各種瀏覽器中保持一定的可用性，那麼勢必要在 Javascript 中撰寫相關的判斷程式碼來進行判斷瀏覽器是否支援新特性，如果訪客的瀏覽器支援，則使用新功能，而反之則執行替代的程式碼或者提示使用者所使用的瀏覽器將會有部分進階功能無法使用。
 
關於目前各主流瀏覽器的支援情況可參考之前的文章 HTML5 與 CSS3 準備好了嗎？
自行撰寫 Javascript 進行 HTML5 與 CSS3 的檢測
如果我們使用到的 HTML5 與 CSS3 新特性並不多，則可以自行撰寫相關的檢測碼來進行判斷，至於該如何檢測，則可參考：    The All-In-One Almost-Alphabetical No-Bullshit Guide to Detecting Everything
文章中除了羅列一大堆 HTML5 等檢測的片段程式碼，也提到了一個很好用的函式庫 Modernizer。

Modernizr
 
Modernizr 是一個非常小巧的函式庫 (大約 8 KB，gzip壓縮後大約3.9 KB)，它用於檢測瀏覽器對於 HTML5 與 CSS3 支援程度，其首頁也提供了一份即時的檢測表，當使用不同的瀏覽器進入該網站時，將可看到不同的檢測結果，這個檢測表其實也可以當做一種瀏覽器支援參考，當安裝了新版本的瀏覽器時只要進入這個網站就可以即時知道瀏覽器是否有增加了什麼 HTML5 或 CSS3 的新功能。
先讓&#160; IE 支援 HTML5 的新標籤
由於 IE9 ...]]></description>
			<content:encoded><![CDATA[<p>由於各主流瀏覽器對於 HTML5 與 CSS3 中支援的程度不一，如果我們想要搶先嘗試使用它們的的新功能，卻又想要在各種瀏覽器中保持一定的可用性，那麼勢必要在 Javascript 中撰寫相關的判斷程式碼來進行判斷瀏覽器是否支援新特性，如果訪客的瀏覽器支援，則使用新功能，而反之則執行替代的程式碼或者提示使用者所使用的瀏覽器將會有部分進階功能無法使用。</p>
<p> <span id="more-1099"></span>
<p>關於目前各主流瀏覽器的支援情況可參考之前的文章 <a href="http://blog.colorbase.tw/web-development/1070" target="_blank">HTML5 與 CSS3 準備好了嗎？</a></p>
<h2>自行撰寫 Javascript 進行 HTML5 與 CSS3 的檢測</h2>
<p>如果我們使用到的 HTML5 與 CSS3 新特性並不多，則可以自行撰寫相關的檢測碼來進行判斷，至於該如何檢測，則可參考：    <br /><a href="http://diveintohtml5.org/everything.html" target="_blank">The All-In-One Almost-Alphabetical No-Bullshit Guide to Detecting Everything</a></p>
<p>文章中除了羅列一大堆 HTML5 等檢測的片段程式碼，也提到了一個很好用的函式庫 Modernizer。</p>
</p>
<h2>Modernizr</h2>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="modernizr" border="0" alt="modernizr" src="http://blog.colorbase.tw/wp-content/uploads/2010/05/modernizr.jpg" width="400" height="286" /> </p>
<p><a href="http://www.modernizr.com/" target="_blank">Modernizr</a> 是一個非常小巧的函式庫 (大約 8 KB，gzip壓縮後大約3.9 KB)，它用於檢測瀏覽器對於 <strong>HTML5</strong> 與 <strong>CSS3</strong> 支援程度，其首頁也提供了一份即時的檢測表，當使用不同的瀏覽器進入該網站時，將可看到不同的檢測結果，這個檢測表其實也可以當做一種瀏覽器支援參考，當安裝了新版本的瀏覽器時只要進入這個網站就可以即時知道瀏覽器是否有增加了什麼 HTML5 或 CSS3 的新功能。</p>
<h2>先讓&#160; IE 支援 HTML5 的新標籤</h2>
<p>由於 IE9 之後才認得 HTML5 的新標籤，因此若要讓舊版本的IE也認得 HTML5的新標籤，則可以使用<a href="http://code.google.com/p/html5shiv/" target="_blank">html5shiv</a>來讓 IE 支援 HTML5 的新標籤，使用方式為加入以下的語法於&lt;head&gt;之間。</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:df468869-4434-4e78-bfbb-73fdaa23c52c" class="wlWriterEditableSmartContent">
<pre name="code" class="xml:nogutter">&lt;!--[if IE]&gt;
&lt;script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"&gt;&lt;/script&gt;
&lt;![endif]--&gt;</pre>
</div>
<h2>使用 Modernizr </h2>
<p>Modernizr 的使用方式很簡單，只需於&lt;head&gt;之間使用&lt;script&gt;標籤引入這個函式庫即可：</p>
<p class="tip">&lt;script src=&quot;modernizr.min.js&quot;&gt;&lt;/script&gt;</p>
<p>接著我們就可以在 Javascript 或 CSS 中做相對應的判斷及處理。</p>
</p>
<h3>在 Modernizr 中使用 Javascript 判斷</h3>
</p>
<p>Modernizr 載入後，即可使用 Modernizr.特性名稱的方式來判斷瀏覽器的支援，例如以下為判斷瀏覽器是否支援 canvas。</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:6d8c5b01-69b5-4f9a-86bb-4873d0262736" class="wlWriterEditableSmartContent">
<pre name="code" class="js:nogutter">if (Modernizr.canvas) { //判斷瀏覽器是否支援 canvas
	alert("支援");
}else{
	alert("不支援");
}</pre>
</div>
<h3>在 Modernizr 中使用 CSS 判斷</h3>
<p>Modernizr 使用了一個非常聰明的方法來達成 CSS 判斷的功能，它在載入完成後將會自動檢測瀏覽器的支援情況並將其寫入 &lt;html&gt; 標籤的 class 屬性，其類別名稱的格式為：</p>
<p class="tip">支援：<strong>特性名稱</strong></p>
<p class="tip">不支援：<strong>no-特性名稱</strong></p>
</p>
<p><strong></strong></p>
<p>例如當瀏覽器支援支援 canvastext 時，&lt;html&gt;標籤的 class 屬性中將會有一個 <strong><font color="#800000">canvastext</font></strong> 值。</p>
<p>相反的當瀏覽器不支援 canvastext 時，&lt;html&gt;標籤的 class 屬性中將會有一個 <strong><font color="#800000">no-canvastext</font></strong>值。</p>
<p>如此一來我們就可以輕易的使用 CSS Selector 來做出相對應的判斷，例如，在 HTML 中：</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:e0726f3c-2d84-4eae-aa0c-ab7c662515c4" class="wlWriterEditableSmartContent">
<pre name="code" class="xml:nogutter">&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
	&lt;meta charset="utf-8"&gt;
	&lt;title&gt;Modernizr Test&lt;/title&gt;
	&lt;link rel="stylesheet" href="style.css" type="text/css" media="screen"&gt;
	&lt;!--[if IE]&gt;
	&lt;script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"&gt;&lt;/script&gt;
	&lt;![endif]--&gt;
	&lt;script src="modernizr.min.js"&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
	&lt;div id="canvasContainer"&gt;
		 &lt;canvas id="c"&gt;&lt;/canvas&gt;
		 &lt;p class="supported"&gt;瀏覽器支援 canvastext&lt;/p&gt;
		 &lt;p class="noSupported"&gt;瀏覽器不支援 canvastext！&lt;/p&gt;
	&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
</div>
<p>在 style.css 中，透過以下的 CSS，在支援 canvastext 中將顯示「<strong>瀏覽器支援 canvastext</strong>」，反之則顯示「<strong>瀏覽器不支援 canvastext！</strong>」。</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:41348c61-527e-4e53-a9ce-466db63c7a6c" class="wlWriterEditableSmartContent">
<pre name="code" class="css:nogutter">#canvasContainer p{
	display: none;
}

.canvastext #canvasContainer .supported {
	display: block;
}

.no-canvastext #canvasContainer .noSupported {
   display: block;
}</pre>
</div>
<p><a href="http://blog.colorbase.tw/html5/modernizr/" target="_blank">點我觀看 Modernizr CSS Selector 檢測範例</a></p>
<p>同理，若要利用 CSS 判斷瀏覽器是否支援 video 則可使用「.video / .no-video」兩個 CSS 類別。</p>
<p>更多 Modernizr 支援的 HTML5 與 CSS3 特性檢測，請參閱其<a href="http://www.modernizr.com/docs/" target="_blank">使用手冊</a>。</p>
<h2>需注意的事情</h2>
<ol>
<li>Modernizr 只能提供檢測而不能替瀏覽器增加新功能以達成兼容。 </li>
<li>若要兼容 video 可使用 <a href="http://code.google.com/p/video4all/">video4all</a>來達成，更多詳情可參考 <a href="http://blog.colorbase.tw/web-development/947" target="_blank">開始HTML5 – Video</a>。 </li>
<li>若要讓 IE 6, 7, 8 支援 CSS3 可使用<a href="http://www.fetchak.com/ie-css3/" target="_blank">CSS3 support for IE</a>來達成。 </li>
</ol>
<h2>相關連結與參考文章</h2>
<ul>
<li><a href="http://www.modernizr.com/" target="_blank">Modernizr</a> </li>
<li><a href="http://diveintohtml5.org/everything.html" target="_blank">The All-In-One Almost-Alphabetical No-Bullshit Guide to Detecting Everything</a> </li>
<li><a href="http://diveintohtml5.org/detect.html" target="_blank">Detecting HTML5 Features</a> </li>
<li><a href="http://code.google.com/p/video4all/">video4all</a> </li>
<li><a href="http://www.fetchak.com/ie-css3/" target="_blank">CSS3 support for IE</a> </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.colorbase.tw/web-development/1099/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>兩款用於開發 iPhone Web 應用的 UI Framework</title>
		<link>http://blog.colorbase.tw/web-development/1010</link>
		<comments>http://blog.colorbase.tw/web-development/1010#comments</comments>
		<pubDate>Wed, 05 May 2010 10:42:04 +0000</pubDate>
		<dc:creator>阿育</dc:creator>
				<category><![CDATA[Web開發]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.colorbase.tw/web-development/1010</guid>
		<description><![CDATA[最近在雜誌上看到了關於手機平台開發的專欄，裡面提到了手機平台Web上很難做出如同本機應用程式所能做出的使用者體驗(User experience)，雖然這是事實，但透過Framework的輔助多少可降低難度及開發成本。
 

iUI: iPhone User Interface Framework

為iPhone Web UI提供完整的解決方案，只需利用Javascript與標準的HTML就能開發出長得很像iPhone應用程式的Web應用。
網址：http://code.google.com/p/iui/
概觀：http://www.k10design.net/articles/iui/
範例：http://www.k10design.net/articles/iui/demo/
jQTouch

這是一個jQuery Plugin，如果熟悉jQuery的話是個不錯的選擇。
網址：http://www.jqtouch.com/
範例：http://www.jqtouch.com/preview/demos/main/
]]></description>
			<content:encoded><![CDATA[<p>最近在雜誌上看到了關於手機平台開發的專欄，裡面提到了手機平台Web上很難做出如同本機應用程式所能做出的使用者體驗(User experience)，雖然這是事實，但透過Framework的輔助多少可降低難度及開發成本。</p>
<p> <span id="more-1010"></span>
</p>
<h2>iUI: iPhone User Interface Framework</h2>
<p><a href="http://blog.colorbase.tw/wp-content/uploads/2010/05/image.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.colorbase.tw/wp-content/uploads/2010/05/image_thumb.png" width="400" height="319" /></a></p>
<p>為iPhone Web UI提供完整的解決方案，只需利用Javascript與標準的HTML就能開發出長得很像iPhone應用程式的Web應用。</p>
<p>網址：<a title="http://code.google.com/p/iui/" href="http://code.google.com/p/iui/">http://code.google.com/p/iui/</a></p>
<p>概觀：<a title="http://www.k10design.net/articles/iui/" href="http://www.k10design.net/articles/iui/">http://www.k10design.net/articles/iui/</a></p>
<p>範例：<a title="http://www.k10design.net/articles/iui/demo/" href="http://www.k10design.net/articles/iui/demo/">http://www.k10design.net/articles/iui/demo/</a></p>
<h2>jQTouch</h2>
<p><a href="http://blog.colorbase.tw/wp-content/uploads/2010/05/image1.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.colorbase.tw/wp-content/uploads/2010/05/image_thumb1.png" width="400" height="234" /></a></p>
<p>這是一個jQuery Plugin，如果熟悉jQuery的話是個不錯的選擇。</p>
<p>網址：<a title="http://www.jqtouch.com/" href="http://www.jqtouch.com/">http://www.jqtouch.com/</a></p>
<p>範例：<a title="http://www.jqtouch.com/preview/demos/main/" href="http://www.jqtouch.com/preview/demos/main/">http://www.jqtouch.com/preview/demos/main/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.colorbase.tw/web-development/1010/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Framework 與 Library 的概念與不同</title>
		<link>http://blog.colorbase.tw/programming/660</link>
		<comments>http://blog.colorbase.tw/programming/660#comments</comments>
		<pubDate>Thu, 25 Feb 2010 12:29:20 +0000</pubDate>
		<dc:creator>阿育</dc:creator>
				<category><![CDATA[程式設計]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[library]]></category>

		<guid isPermaLink="false">http://blog.colorbase.tw/?p=657</guid>
		<description><![CDATA[Framework 中文常譯為「框架」、「架構」而 Library 中文常譯為「庫」。
很多 Framework 因為結構上的需求而帶有大量的 Library 所以很容易讓人對於這兩者的概念混淆不清。

Framework 在字義上帶有結構的意義。
它具備引導的作用，並透過預先規劃好的結構或機制以協助改善開發上的問題，例如：結構性、彈性、可維護性等等；為了引導到正確的開發方向 Framrework 甚至有時會做出適度或大量的限制開發方向、方法，在限制上來說意義就吻合了中文字義「框架」；對於結構而言，Framrewok 某些地方沒有顯著的以限制的方式引導，而是提供了某些機制，例如：.Net Framework 中提供了事件機制；Framework 中可能會包含大量類別或函數，這其中有一部是所謂的Library，另一部分則是因應 Framework 結構或機制而存在，例如：事件經常也是一個類別。
而 Library 在字義上帶有收藏或集合的意義。
因此 Library 很單純的收集常用或通用程式庫，若內容物為函數則常被稱之為「函式庫」，若內容物為類別則常被稱之為「類別庫」。Library完全不理會程式結構如何開發，它很單純的只是為了完成某些較為獨立的事，也完全不會限制或引導開發邏輯或流程。
個人觀點，僅供參考
2010/02/26 補充、 修改
]]></description>
			<content:encoded><![CDATA[<p>Framework 中文常譯為「框架」、「架構」而 Library 中文常譯為「庫」。</p>
<p>很多 Framework 因為結構上的需求而帶有大量的 Library 所以很容易讓人對於這兩者的概念混淆不清。</p>
<p><span id="more-660"></span></p>
<h2><span style="color: #008080;">Framework 在字義上帶有結構的意義。</span></h2>
<p>它具備引導的作用，並透過預先規劃好的結構或機制以協助改善開發上的問題，例如：結構性、彈性、可維護性等等；為了引導到正確的開發方向 Framrework 甚至有時會做出適度或大量的限制開發方向、方法，在限制上來說意義就吻合了中文字義「框架」；對於結構而言，Framrewok 某些地方沒有顯著的以限制的方式引導，而是提供了某些機制，例如：.Net Framework 中提供了事件機制；Framework 中可能會包含大量類別或函數，這其中有一部是所謂的Library，另一部分則是因應 Framework 結構或機制而存在，例如：事件經常也是一個類別。</p>
<h2><span style="color: #008080;">而 Library 在字義上帶有收藏或集合的意義。</span></h2>
<p>因此 Library 很單純的收集常用或通用程式庫，若內容物為函數則常被稱之為「函式庫」，若內容物為類別則常被稱之為「類別庫」。Library完全不理會程式結構如何開發，它很單純的只是為了完成某些較為獨立的事，也完全不會限制或引導開發邏輯或流程。</p>
<p>個人觀點，僅供參考</p>
<p>2010/02/26 補充、 修改</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.colorbase.tw/programming/660/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
