<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/main.xsl"?>
<b:blog xmlns="http://www.w3.org/1999/xhtml" xmlns:b="http://blog.othree.net"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://blog.othree.net http://blog.othree.net/blooog.xsd">
	<b:blogTitle>O3noBLOG</b:blogTitle>
	<b:blogDescription></b:blogDescription>
	<b:entries>
		<b:entriesMeta>
			<b:listType>c</b:listType>
			<b:listData listID="css-html">css-html</b:listData>
		</b:entriesMeta>

		<b:entry entryID="000622" baseName="tossug-html5-talk">
			<b:author>
				<b:authorName>othree</b:authorName>
				<b:authorEmail>othree@gmail.com</b:authorEmail>
				<b:authorUrl></b:authorUrl>
			</b:author>
			<b:datetime>
				<b:date>2010-07-24</b:date>
				<b:time>22:47:05</b:time>
			</b:datetime>
			<b:category>css-html</b:category>
			<b:title>TOSSUG HTML5 分享補充</b:title>
			<b:content>
				<b:summary>這週二我去 TOSSUG 講了 HTML 5 的新標籤和 Web Forms 2.0 ，講的當下感覺是還好，不過回來後回想才發現不少東西忘了講，大概整理一下，結果那些東西要再另外還蠻有難度的，一是量不夠，二是主題有點分散，所以當天就決定寫一篇 blog 來補充，先放上當天投影片： TOSSUG HTML5 讀書會 新標籤與表單View more presentations from othree....</b:summary>
				<b:mainContent><p>這週二我去 <span class="caps">TOSSUG </span>講了 <span class="caps">HTML</span> 5 的新標籤和 Web Forms 2.0 ，講的當下感覺是還好，不過回來後回想才發現不少東西忘了講，大概整理一下，結果那些東西要再另外還蠻有難度的，一是量不夠，二是主題有點分散，所以當天就決定寫一篇 blog 來補充，先放上當天投影片：</p>

<p>
<div style="width:425px" id="__ss_4797338"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/othree/tossug-html5" title="TOSSUG HTML5 讀書會 新標籤與表單"><span class="caps">TOSSUG HTML5 </span>讀書會 新標籤與表單</a></strong><object id="__sse4797338" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=tossughtml5-100720105527-phpapp02&amp;stripped_title=tossug-html5" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse4797338" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=tossughtml5-100720105527-phpapp02&amp;stripped_title=tossug-html5" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object><div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/othree">othree</a>.</div></div>
</p></b:mainContent>
				<b:extendContent><h4>目前語意網的兩個方向</h4>

<p>這部份算是個人見解，實際情形我比較沒相關資訊查證。語意網最早的想法是擺現有網際網路上的資料轉換成有語意的格式，也就是 <span class="caps">XHTML</span> 2.0 的方向，不過實際上遇到的問題就是沒人想花這種人力成本來跟做這種事情，那時候 Web 2.0 的概念也還沒起來，結果就變成 <span class="caps">W3C </span>制定他們的，實際上在提供服務的、用網路的自己開發自己的，當然最後的結果就是產生了 <span class="caps">WHATWG </span>和 <span class="caps">HTML5 </span>，總之現有網際網路上的資料這方向失敗了，但是同時在發展的 Web Service 卻開出了另一條新的路，也就是 Tim Berners Lee 目前主要的推動目標，公開本來不在網路上的各種領域的資料，如果有在看 <a href="http://www.ted.com"><span class="caps">TED</span></a> 的可能有看過他的兩場 Talk。</p>

<p>
<!--copy and paste--><object width="446" height="326"><param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"></param><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always"/><param name="wmode" value="transparent"></param><param name="bgColor" value="#ffffff"></param> <param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/TimBerners-Lee_2009-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/TimBerners-Lee-2009.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=484&amp;introDuration=15330&amp;adDuration=4000&amp;postAdDuration=830&amp;adKeys=talk=tim_berners_lee_on_the_next_web;year=2009;theme=what_s_next_in_tech;event=TED2009;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /><embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="446" height="326" allowFullScreen="true" allowScriptAccess="always" flashvars="vu=http://video.ted.com/talks/dynamic/TimBerners-Lee_2009-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/TimBerners-Lee-2009.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=484&amp;introDuration=15330&amp;adDuration=4000&amp;postAdDuration=830&amp;adKeys=talk=tim_berners_lee_on_the_next_web;year=2009;theme=what_s_next_in_tech;event=TED2009;"></embed></object><br />
</p>

<p>
<!--copy and paste--><object width="446" height="326"><param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"></param><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always"/><param name="wmode" value="transparent"></param><param name="bgColor" value="#ffffff"></param> <param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/TimBerners-Lee_2010U-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/TimBerners-Lee-2010U.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=788&amp;introDuration=15330&amp;adDuration=4000&amp;postAdDuration=830&amp;adKeys=talk=tim_berners_lee_the_year_open_data_went_worldwide;year=2010;theme=what_s_next_in_tech;theme=the_rise_of_collaboration;theme=a_taste_of_ted2010;event=TED2010;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /><embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="446" height="326" allowFullScreen="true" allowScriptAccess="always" flashvars="vu=http://video.ted.com/talks/dynamic/TimBerners-Lee_2010U-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/TimBerners-Lee-2010U.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=788&amp;introDuration=15330&amp;adDuration=4000&amp;postAdDuration=830&amp;adKeys=talk=tim_berners_lee_the_year_open_data_went_worldwide;year=2010;theme=what_s_next_in_tech;theme=the_rise_of_collaboration;theme=a_taste_of_ted2010;event=TED2010;"></embed></object><br />
</p>

<p>這兩場 Talk 就闡述他這幾年在做的事，到處推動、遊說個政府、組織、企業公開他們手中的資料，我覺得他來做這件事真的是很有說服力，因為早在網路地圖風行的年代前，他家的  <a href="http://www.w3.org/People/Berners-Lee/#Address">經緯度</a> 就已經公開在網路上了（顯然都還沒遭到導彈攻擊）。</p>

<h4><span class="caps">W3C </span>接納 <span class="caps">HTML5 </span>背後的意義</h4>

<p><a href="http://findbook.tw/book/9789570516333/basic">一千零一網</a> 書中有提到 Tim Berners Lee 對於網際網路的願景是對所有人都是自由免費的，而且不應該由任何一個企業、團體所操控把持，包括 <span class="caps">W3C </span>自己，這個想法讓我真是很佩服 Tim Berners Lee ，說我成為他的粉絲也不為過，當然現實世界不會這麼美好，大陸的 Great Wall 就是一個例子，之前微軟 IE 過高的市佔率也造成很多負面影響，像是讓整個網路發展停滯了好幾年。回到重點，W3C 接納 <span class="caps">HTML5 </span>這件事本身就是這個理念的實踐，證明了他們不是說假話。</p>

<h4><span class="caps">HTML </span>砍掉重練、 <span class="caps">ECMAS</span>cript 也砍掉過、那 <span class="caps">CSS</span>?</h4>

<p>這幾年主流的文件結構、行為、表現三種分開的網頁編寫方式，其各自的代表技術其實就是 <span class="caps">HTML</span>、ECMAScript、CSS，不過其中兩者已經砍掉重練過了，分別是 <span class="caps">XHTML</span> 2.0 廢棄，改發展 <span class="caps">HTML5</span>，ECMAScript 4 (JavaScript 2.0) 廢棄改發展 <span class="caps">ECMAS</span>cript Harmony，而且兩者都是因為過度發展的情形下，功能加太多，太理想化等，才被砍掉重練的，現在 <span class="caps">CSS3 </span>又有點肆無忌憚的一直加新東西，其實我還蠻擔心哪一天會不會也被砍掉重練的，大概變成像是某種必經之路的吧。</p>

<h4>&lt;article&gt; 對搜尋引擎的影響</h4>

<p>&lt;article&gt; 就我腦袋所想到的，其實對於搜尋的正確性應該會有很大的幫助，回憶看看你是不是有這樣的經驗，丟入兩三個關鍵字後，打開的結果網頁是個部落格索引頁，每篇文章都有摘要，然後卻發現你輸入的兩三個關鍵字分散在不同的文章中，當然每篇文章都不是你想要的，&lt;article&gt; 的出現就可以解決這樣的問題。</p>

<h4>&lt;p&gt; 不只是段落</h4>

<p>簡單說你的一段文字找不到適當語意的區塊標籤來包的話，都可以用 &lt;p&gt; ，詳細請參考 <a href="http://dev.w3.org/html5/spec/content-models.html#paragraph"><span class="caps">HTML5</span> Spec</a> ，這以前對於過度的語意正確要求者來說也是不小的困擾～</p>

<h4>Web Forms 2.0 支援度</h4>

<p>那天我忘了提到 mobile device 像是 iPhone 就有支援了，不同的 input type 它會給你不一樣的螢幕小鍵盤，其他的平台我就沒看過測試，所以比較不清楚這樣，不過手機平台某方面來說因為沒有 IE 的包袱，所以開發起來比較可以開心的使用新東西，雖然有人擔心 iPhone 會變成下一個 IE 就是。</p>

<h4><span class="caps">CSS3 </span>的那一堆 - 開頭的屬性是哪來的</h4>

<p>這只是順便提的，CSS 2.1 時就已經有規範 <a href="http://www.w3.org/TR/CSS21/syndata.html#vendor-keywords">Vendor-specific extensions</a> ，就是各家瀏覽器可以自己定樣式，當然是不建議使用，而目前想要用 <span class="caps">CSS3 </span>的話幾乎都要用這種寫法，原因之一是標準還沒完全定案，所以各家都先用這種方法來實作，等到哪一天定案了，在把對應的字串改過來就好了，當然這些自定樣式也會慢慢移除掉，所以別忘了最後還是要加一個非 Vendor-specific extension 的寫法，免得以後還要修改，當然如果最後定案的語法和你現在寫的不一樣，還是免不了，所以現階段我有用的話會盡量寫簡單一點，像是圓角框就盡量四個角一樣。</p>

<h4>不願意提的，HTML5 何時定案？</h4>

<p>最後一次聽到消息是 2022，不過不表示那時候才能用，HTML5 比較特別是可能 2012 年就會把功能都定好，剩下10年是推廣實作修改階段，到 2022 要成為正式標準時，應該是直接可以用的狀況，不過這是兩年以前的消息了，我覺得比較可信的版本是，沒有定期限。</p>

<p>當然還有更不願意提的問題， <span class="caps">CSS3 </span>何時定案？答案是完全沒消息，甚至我想還會繼續冒出新東西，雖然 3D Transform 就已經很令人驚嚇了。之前甚至還有 Safari 先說他們做了什麼新東西，測試版也出了可以用，但是過了一陣子 <span class="caps">W3C </span>那邊才看的到那東西初版 Working Draft 的情形。</p>

<h4>參考網站</h4>

<p>最後放上一些參考網站：</p>


<ul>
<li><a href="http://dev.w3.org/html5/spec/"><span class="caps">HTML5</span> Spec</a> ，新的 <span class="caps">HTML </span>標準在標籤語意上比以前詳細很多</li>
<li><a href="http://html5doctor.com/article-archive/"><span class="caps">HTML5</span> Doctor</a> ，有一系列和新標籤及語意相關的文章</li>
<li><a href="http://diveintohtml5.org/">Dive Into <span class="caps">HTML</span> 5</a> ，內容很棒的電子書</li>
<li><a href="http://www.w3.org/TR/2010/WD-html-markup-20100624/"><span class="caps">HTML</span>: The Markup Language</a> ，新的 <span class="caps">W3C </span>working draft，裡面有定標籤的預設樣式</li>
<li><a href="http://code.google.com/p/html5shiv/">html5shiv</a> ，讓 IE 也可以給新標籤套上樣式的小 script</li>
</ul>



<p>另外新出的 <a href="http://books.alistapart.com/product/html5-for-web-designers"><span class="caps">HTML5</span> For Web Designers</a> 內容似乎剛好就是我這次分享的主題（感謝 <a href="http://evendesign.tw/">even</a> 情報）。</p></b:extendContent>
			</b:content>

			<b:comments commentCount="0"></b:comments>


			<b:trackbacks trackbackCount="0"></b:trackbacks>

		</b:entry>

		<b:entry entryID="000613" baseName="why-do-we-have-an-img-element">
			<b:author>
				<b:authorName>othree</b:authorName>
				<b:authorEmail>othree@gmail.com</b:authorEmail>
				<b:authorUrl></b:authorUrl>
			</b:author>
			<b:datetime>
				<b:date>2010-01-17</b:date>
				<b:time>09:29:38</b:time>
			</b:datetime>
			<b:category>css-html</b:category>
			<b:title>為什麼有 &lt;img&gt; 這個標籤</b:title>
			<b:content>
				<b:summary>dive into mark 在去年11月有一篇文章 Why do we have an IMG element? ，裡面翻出了很多當初 HTML 剛起步時的討論，當時就在針對網頁上的媒體內容要怎樣放進去作了不少爭論，過程有興趣的可以自己去看，結果還是先下手為強，先做出來的贏， mark 歸納出的幾點結論中有一點蠻有趣的：「HTML一直都是瀏覽器製造者、標準制定者、網頁製造者和其他想參與其中的人所討論而得的，而多數成功的標準都是 retro-specs （實作、制定標準同時，甚至先實作），有些人認為標準應該保持純潔，不要受到瀏覽器製造者或網頁製造者的影響，這完全是錯誤的。」HTML 5 也是一個 retro-specs ，新功能都是跟著網路的變化所產生，像是 拖拉 API 、 近端儲存系統 等，最近還多了 device 標籤 和 stream API ，這些都是現在大家需要的功能，而目前只能用其他方法弄起來，像是拖拉要去算位置、範圍，近端儲存要裝像 Google Gears 的外掛，要抓 webcam 畫面或是撥影片則要用 Flash 或是...</b:summary>
				<b:mainContent><p><a href="http://diveintomark.org/">dive into mark</a> 在去年11月有一篇文章 <a href="http://diveintomark.org/archives/2009/11/02/why-do-we-have-an-img-element">Why do we have an <span class="caps">IMG </span>element?</a> ，裡面翻出了很多當初 <span class="caps">HTML </span>剛起步時的討論，當時就在針對網頁上的媒體內容要怎樣放進去作了不少爭論，過程有興趣的可以自己去看，結果還是先下手為強，先做出來的贏， mark 歸納出的幾點結論中有一點蠻有趣的：「HTML一直都是瀏覽器製造者、標準制定者、網頁製造者和其他想參與其中的人所討論而得的，而多數成功的標準都是 <strong>retro-specs</strong> （實作、制定標準同時，甚至先實作），有些人認為標準應該保持純潔，不要受到瀏覽器製造者或網頁製造者的影響，這完全是錯誤的。」HTML 5 也是一個 retro-specs ，新功能都是跟著網路的變化所產生，像是 <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#dnd">拖拉 <span class="caps">API</span></a>  、 <a href="http://dev.w3.org/html5/webstorage/">近端儲存系統</a> 等，最近還多了 <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/commands.html#devices">device 標籤</a> 和 <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/commands.html#stream">stream <span class="caps">API</span></a> ，這些都是現在大家需要的功能，而目前只能用其他方法弄起來，像是拖拉要去算位置、範圍，近端儲存要裝像 Google Gears 的外掛，要抓 webcam 畫面或是撥影片則要用 Flash 或是 Java，未來這些功能都會變成瀏覽器原生支援，甚至用顯示卡 <a href="http://www.khronos.org/webgl/">加速畫 3D 圖形</a> 都不是問題。</p>

<p>另外可以拿來作反例的我覺得是 <a href="http://www.w3.org/XML/Schema"><span class="caps">XML</span> Schema</a> ，整個複雜過頭，還有難解的用詞，據之前修課時的老師說是語言學家制定的，結果造成沒有工具很難寫，就算寫了沒驗證過我看也不敢拿來用。</p></b:mainContent>
				<b:extendContent></b:extendContent>
			</b:content>

			<b:comments commentCount="1"></b:comments>


			<b:trackbacks trackbackCount="0"></b:trackbacks>

		</b:entry>

		<b:entry entryID="000580" baseName="handle-ie">
			<b:author>
				<b:authorName>othree</b:authorName>
				<b:authorEmail>othree@gmail.com</b:authorEmail>
				<b:authorUrl></b:authorUrl>
			</b:author>
			<b:datetime>
				<b:date>2009-04-27</b:date>
				<b:time>10:13:03</b:time>
			</b:datetime>
			<b:category>css-html</b:category>
			<b:title>Handle IE</b:title>
			<b:content>
				<b:summary>暫時站本來用下面的語法來阻擋IE使用者： &lt;!--[if IE]&gt;&lt;style type=&quot;text/css&quot;&gt;* {display: none; !importanat}&lt;/style&gt;&lt;![endif]--&gt; 不過用IE還是看的到 title，不太愉悅，今天 EvenWu 推薦我另一個弄法： &lt;!DOCTYPE html&gt; &lt;!--[if !IE]&gt;--&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;blah...&lt;/title&gt; &lt;/head&gt; &lt;body&gt; blah blah... &lt;/body&gt; &lt;/html&gt; &lt;!--&lt;![endif]--&gt; 現在用 IE 來看感覺真是棒XD...</b:summary>
				<b:mainContent><p><a href="http://othree.github.com">暫時站</a>本來用下面的語法來阻擋IE使用者：</p>
<pre class="brush:xml">
&lt;!--[if IE]&gt;&lt;style type=&quot;text/css&quot;&gt;* {display: none; !importanat}&lt;/style&gt;&lt;![endif]--&gt;
</pre>
<p>不過用IE還是看的到 title，不太愉悅，今天 <a href="http://evendesign.tw/">EvenWu</a> 推薦我另一個弄法：</p>
<pre class="brush:xml">
&lt;!DOCTYPE html&gt;
&lt;!--[if !IE]&gt;--&gt;
&lt;html&gt;
    &lt;head&gt;
        &lt;title&gt;blah...&lt;/title&gt;
    &lt;/head&gt;
    &lt;body&gt;
        blah blah...
    &lt;/body&gt;
&lt;/html&gt;
&lt;!--&lt;![endif]--&gt; 
</pre>
<p>現在用 IE 來看感覺真是棒XD</p>
</b:mainContent>
				<b:extendContent></b:extendContent>
			</b:content>

			<b:comments commentCount="0"></b:comments>


			<b:trackbacks trackbackCount="0"></b:trackbacks>

		</b:entry>

		<b:entry entryID="000572" baseName="cross-browser-inline-block">
			<b:author>
				<b:authorName>othree</b:authorName>
				<b:authorEmail>othree@gmail.com</b:authorEmail>
				<b:authorUrl></b:authorUrl>
			</b:author>
			<b:datetime>
				<b:date>2009-03-04</b:date>
				<b:time>01:40:38</b:time>
			</b:datetime>
			<b:category>css-html</b:category>
			<b:title>Cross-Browser Inline Block</b:title>
			<b:content>
				<b:summary>大約兩週前在 Mozilla Webdev Blog 上有一篇 Cross-Browser Inline-Block ，介紹如何用 inline block 代替 float 排列，好解決方塊高度不同時，float 排列會造成的問題，當然，這麼新(?)的 display 屬性，必定會有瀏覽器不支援，加上其實目前各家瀏覽器的行為表現都還不是很一致，所以整篇文章大部分的篇幅是在處理 cross browser 的問題。那時候 DK 長輩說我要是有什麼想法的話可以發一篇，那時候雖然覺得好像有什麼可以講的，不過直到昨天看了 flickr 的原始碼時才知道我想講的是什麼。首先，其實這篇文章介紹的方法我覺得做的很好了，CSS hack的部份也還算乾淨，不過我很龜毛，覺得用到 inline 來做這種像是 block 的東西就是覺得怪怪的，昨天在看 flickr 時突然就在想：「他們是用什麼方法來排照片的？」打開原始碼一看，是 table，flickr 是用 table 來排照片的，我才回憶起之前買的 Everything You Know About CSS is...</b:summary>
				<b:mainContent><p>大約兩週前在 Mozilla Webdev Blog 上有一篇 <a target="_blank" href="http://blog.mozilla.com/webdev/2009/02/20/cross-browser-inline-block/">Cross-Browser Inline-Block</a> ，介紹如何用 inline block 代替 float 排列，好解決方塊高度不同時，float 排列會造成的問題，當然，這麼新(?)的 display 屬性，必定會有<span title="IE">瀏覽器</span>不支援，加上其實目前各家瀏覽器的行為表現都還不是很一致，所以整篇文章大部分的篇幅是在處理 cross browser 的問題。那時候 DK 長輩說我要是有什麼想法的話可以發一篇，那時候雖然覺得好像有什麼可以講的，不過直到昨天看了 flickr 的原始碼時才知道我想講的是什麼。</p><p>首先，其實這篇文章介紹的方法我覺得做的很好了，CSS hack的部份也還算乾淨，不過我很龜毛，覺得用到 inline 來做這種像是 block 的東西就是覺得怪怪的，昨天在看 flickr 時突然就在想：「他們是用什麼方法來排照片的？」打開原始碼一看，是 table，flickr 是用 table 來排照片的，我才回憶起之前買的 <a target="_blank" href="http://blog.othree.net/log/2008/12/18/csswrong/">Everything You Know About <span>CSS </span>is Wrong</a> 這本書，裡面主要介紹到的東西是 table-cell, table-row, ... 等表格元件的 display 屬性，又稱為 css-table，簡單說就是可以拿其他標籤來做 table，這些 display 屬性值可以讓 <span>HTML </span>文件保持它比較適合的語意，但是顯示上又能夠和 table 一樣排列，雖然我在 Everything You Know About <span>CSS </span>is Wrong 的書評中寫到我覺得拿 css-table 來排版還是怪怪的，但是如果是拿來排照片、商品目錄這種，我就突然覺得還不錯，不過 css-table 很理所當然的和 table 一樣，一列要幾個 cell 在寫 <span>HTML </span>markup 階段時就要決定了，不像 float 或是 inline-block 可以透過控制長度來調整，真的達到文件結構和顯示分開的理想。</p>

<p>用 css-table 來排還是有它的好處，最明顯的就是同一列的 cell 高度都會一樣。想要元件高度會自動調整，然後同排的還會一樣高，目前只有用 table 的解法，不論是真的用 table 還是用 css-table，當然，盡量避免非表格資料的東西使用 table 標籤，所以比較好的處理方法還是 css-table。</p>

<p>兩種方法各有他的優缺點，還很難說哪種方法比較好，先不考慮 css-table 方法在舊瀏覽器的支援度問題的話，我是覺得可以用整個版面的 layout 是固定寬度還是自動寬度來決定用那個方法比較好，如果版面是固定寬度的話比較適合用 css-table，反之則是用 inline block。</p></b:mainContent>
				<b:extendContent></b:extendContent>
			</b:content>

			<b:comments commentCount="0"></b:comments>


			<b:trackbacks trackbackCount="0"></b:trackbacks>

		</b:entry>

		<b:entry entryID="000555" baseName="html-5-slide">
			<b:author>
				<b:authorName>othree</b:authorName>
				<b:authorEmail>othree@gmail.com</b:authorEmail>
				<b:authorUrl></b:authorUrl>
			</b:author>
			<b:datetime>
				<b:date>2008-11-22</b:date>
				<b:time>16:12:08</b:time>
			</b:datetime>
			<b:category>css-html</b:category>
			<b:title>HTML 5 投影片</b:title>
			<b:content>
				<b:summary>第五世代型超越式文本標記語言 在 HappyDesigner Meetup 4 和摩茲連續聚 第三集用的投影片，由於是用 HTML + JavaScript 寫的，背景圖有點大，暫時還沒有 PDF 版，處理完之後會有比較小的 PDF，也會丟到 slideshare 上。另外有些我沒介紹到的東西應該會在之後發文章介紹吧～～...</b:summary>
				<b:mainContent><p><a href="http://othree.net/projects/slides/html5/">第五世代型超越式文本標記語言</a></p>

<p>在 <a href="http://meetup.happydesigner.org/happydesigner-meetup-no-4">HappyDesigner Meetup 4</a> 和<a href="http://wiki.moztw.org/index.php/摩茲連續聚第3集">摩茲連續聚 第三集</a>用的投影片，由於是用 <span class="caps">HTML </span>+ JavaScript 寫的，背景圖有點大，暫時還沒有 <span class="caps">PDF </span>版，處理完之後會有比較小的 <span class="caps">PDF</span>，也會丟到 <a href="http://www.slideshare.net/">slideshare</a> 上。另外有些我沒介紹到的東西應該會在之後發文章介紹吧～～</p></b:mainContent>
				<b:extendContent></b:extendContent>
			</b:content>

			<b:comments commentCount="0"></b:comments>


			<b:trackbacks trackbackCount="0"></b:trackbacks>

		</b:entry>

		<b:entry entryID="000547" baseName="ie8-dont-support-css-expression">
			<b:author>
				<b:authorName>othree</b:authorName>
				<b:authorEmail>othree@gmail.com</b:authorEmail>
				<b:authorUrl></b:authorUrl>
			</b:author>
			<b:datetime>
				<b:date>2008-10-22</b:date>
				<b:time>01:22:50</b:time>
			</b:datetime>
			<b:category>css-html</b:category>
			<b:title>IE8標準模式將不支援CSS expression</b:title>
			<b:content>
				<b:summary>IEBlog的消息，CSS expression就是可以在CSS value裡面進行一些簡單運算，像是「10%+4px」這樣的長度設定，雖然記憶中W3C也曾經有過草稿，不過總之這就是不太有人使用的東西，所以一直以來也只有IE支援，然後這次IE Team終於決定要把它拿掉了，不過Ajaxian上的第一篇回文很XD： I can't believe they're doing such big changes and don't want to rename their XMLHttpRequest object... pff......</b:summary>
				<b:mainContent><p><span class="caps">IEB</span>log的<a href="http://blogs.msdn.com/ie/archive/2008/10/16/ending-expressions.aspx">消息</a>，CSS expression就是可以在CSS value裡面進行一些簡單運算，像是「10%+4px」這樣的長度設定，雖然記憶中W3C也曾經有過草稿，不過總之這就是不太有人使用的東西，所以一直以來也只有IE支援，然後這次IE Team終於決定要把它拿掉了，不過Ajaxian上的<a href="http://ajaxian.com/archives/css-expressions-are-no-more-in-ie-8">第一篇回文</a>很XD：</p>

<blockquote cite="http://ajaxian.com/archives/css-expressions-are-no-more-in-ie-8"><p>I can't believe they're doing such big changes and don't want to rename their <span class="caps">XMLH</span>ttpRequest object... pff...</p></blockquote></b:mainContent>
				<b:extendContent></b:extendContent>
			</b:content>

			<b:comments commentCount="0"></b:comments>


			<b:trackbacks trackbackCount="0"></b:trackbacks>

		</b:entry>

		<b:entry entryID="000542" baseName="yuicompressor">
			<b:author>
				<b:authorName>othree</b:authorName>
				<b:authorEmail>othree@gmail.com</b:authorEmail>
				<b:authorUrl></b:authorUrl>
			</b:author>
			<b:datetime>
				<b:date>2008-10-11</b:date>
				<b:time>20:45:47</b:time>
			</b:datetime>
			<b:category>script</b:category>
			<b:title>YUI Compressor</b:title>
			<b:content>
				<b:summary>這東西好像很久以前有看過一次，那時不知道為什麼沒深入接觸（或許是看到java就逃跑了），期間還有試過perl的javascript compressor，不過用起來都不是很方便，直到前陣子看到DK示範了一下才又提起興趣，可惜我的blog剛搬離研究室的電腦，而且linux上也不像FreeBSD上有port好的，所以就變成需要在windows下使用，用命令列操控是還算方便，不過因為是包成jar檔，檔名又蠻長的，打命令的時候還蠻辛苦的，所以就寫了個batch檔案來處理： SET PP=D:\tools\yuicompressor\ java -jar %PP%yuicompressor.jar --charset utf-8 %1 %2 %3 %4 %5 %6 %7 %8 %9 確定檔案路徑和基本的選項之後，把這個batch檔丟到path下的目錄，以後就可以用這個指令來壓縮js和css檔了，不過在我自己的電腦上還有遇到別的問題，就是.bat檔不會真的執行，不知道做了什麼事才變成這樣，總之又去找了bat2exec把bat檔轉成com檔，不過這個小程式出處不明，希望沒有什麼木馬在裡面@@。 事後感想是windows的命令列能不能好用一點啊Q_Q。...</b:summary>
				<b:mainContent><p><a href="http://developer.yahoo.com/yui/compressor/">這東西</a>好像很久以前有看過一次，那時不知道為什麼沒深入接觸（或許是看到java就逃跑了），期間還有試過<a href="http://dean.edwards.name/packer/">perl的javascript compressor</a>，不過用起來都不是很方便，直到前陣子看到<a href="http://blog.gslin.org/archives/2008/09/22/1705/">DK示範了一下</a>才又提起興趣，可惜我的blog剛搬離研究室的電腦，而且linux上也不像FreeBSD上有port好的，所以就變成需要在windows下使用，用命令列操控是還算方便，不過因為是包成jar檔，檔名又蠻長的，打命令的時候還蠻辛苦的，所以就寫了個batch檔案來處理：</p>



<pre><code>SET PP=D:\tools\yuicompressor\
java -jar %PP%yuicompressor.jar --charset utf-8 %1 %2 %3 %4 %5 %6 %7 %8 %9</code></pre>



<p>確定檔案路徑和基本的選項之後，把這個batch檔丟到path下的目錄，以後就可以用這個指令來壓縮js和css檔了，不過在我自己的電腦上還有遇到別的問題，就是.bat檔不會真的執行，不知道做了什麼事才變成這樣，總之又去找了<a href="http://www.programmersheaven.com/download/14524/download.aspx">bat2exec</a>把bat檔轉成com檔，不過這個小程式出處不明，希望沒有什麼木馬在裡面@@。</p>

<p>事後感想是windows的命令列能不能好用一點啊Q_Q。</p></b:mainContent>
				<b:extendContent></b:extendContent>
			</b:content>

			<b:comments commentCount="2"></b:comments>


			<b:trackbacks trackbackCount="0"></b:trackbacks>

		</b:entry>

		<b:entry entryID="000538" baseName="css-indent-and-middle-text">
			<b:author>
				<b:authorName>othree</b:authorName>
				<b:authorEmail>othree@gmail.com</b:authorEmail>
				<b:authorUrl></b:authorUrl>
			</b:author>
			<b:datetime>
				<b:date>2008-09-13</b:date>
				<b:time>09:39:17</b:time>
			</b:datetime>
			<b:category>css-html</b:category>
			<b:title>CSS TIP - 縮排和文字垂直置中</b:title>
			<b:content>
				<b:summary>今天要來介紹的這個CSS TIP，一部分是為了應付IE的box model才出現的。 首先，我有一個固定寬高的頁首區塊，也就是我接下來要介紹的CSS TIP所可以應用的地方，這種頁首區塊內的文字通常只有一行，其他類似的物件還有各種標題（h1~h6）、導覽列清單（li）等。這些區塊物件在還沒有任何設定的時候，裡面的文字通常都是貼齊左上角的，這邊舉一個 h1標題 的例子，它的 CSS Code 如下： h1 { font-size: 200%; color: #fff; background: #000; height: 100px; } 顯示結果如下：...</b:summary>
				<b:mainContent><p>今天要來介紹的這個CSS <span class="caps">TIP</span>，一部分是為了應付IE的box model才出現的。</p>

<p>首先，我有一個固定寬高的頁首區塊，也就是我接下來要介紹的CSS <span class="caps">TIP</span>所可以應用的地方，這種頁首區塊內的文字通常只有一行，其他類似的物件還有各種標題（h1~h6）、導覽列清單（li）等。這些區塊物件在還沒有任何設定的時候，裡面的文字通常都是貼齊左上角的，這邊舉一個 <strong>h1標題</strong> 的例子，它的 <span class="caps">CSS</span> Code 如下：</p>



<pre><code>h1 {
    font-size: 200%;
    color: #fff;
    background: #000;
    height: 100px;
}
</code></pre>



<p>顯示結果如下：</p>

<p><img src="http://blog.othree.net/log/2008/09/13/css-indent-and-middle-text/first.png" alt="" height="130" width="300" /></p></b:mainContent>
				<b:extendContent><p>這通常不是我們想要的效果，我們可能想要有一點內距、文字水平置中、垂直置中、或是把文字藏起來，用背景圖來代替，不過隨便設定padding，可能就會遇到IE的box model問題，雖然IE 7已經可以用標準模式，但是IE 6的使用者還很多，目前還不能忽略這個問題。除了垂直置中以外，其他幾種要求大概都可以簡單達成，如果是用表格排版的話連垂直置中也不是問題，不過基本上我不考慮表格排版就是，一般的作法有CSS hack和多層div兩種，我要介紹的則是用line-height和text-indent兩種屬性來達到我們的需求，不用CSS hack和多層div。首先就來把文字垂直置中吧，這邊我用的是line-height（行高）這個屬性，只要設定的高度和區塊高度一樣（此例為100px），這單一行的文字就會垂直置中了，結果如下圖：</p>

<p><img src="http://blog.othree.net/log/2008/09/13/css-indent-and-middle-text/second.png" alt="" height="130" width="300" /></p>

<p>如果想要文字水平也置中，只要加上 <code>text-align: center;</code> 就可以了，不過我比較喜歡讓文字靠左，然後留一點邊距，讓文字不要這麼貼齊邊緣，這時可以用text-indent（首行縮排）這個屬性，因為內文只有一行，所以可以偷偷用這個屬性來做出padding-left的效果，如果文字是多行的話，大概上個行高設定就讓你的內文爆炸了吧XD。加上15px縮排的結果如下圖：</p>

<p><img src="http://blog.othree.net/log/2008/09/13/css-indent-and-middle-text/third.png" alt="" height="130" width="300" /></p>

<p>text-indent除了可以製造內距的效果之外，還可以用來把文字隱藏，免得檔到背景圖，只要把值設成負的，例如<strong>-1000000px</strong>，文字就會跑到視窗可視範圍之外，要保險一點還可以加上 <code>overflow: hidden;</code> 的設定，讓超出區塊範圍的東西隱藏起來。以上就是本次的CSS <span class="caps">TIP</span>內容，希望能幫到大家，下篇應該會說javascript的東西吧。</p>

<p class="update">補充：考量到親和力的情況下，還是比較推薦使用img標籤配合alt屬性的替代文字的，這樣在圖片讀取不到的狀況下，也還是看得到文字內容。</p></b:extendContent>
			</b:content>

			<b:comments commentCount="4"></b:comments>


			<b:trackbacks trackbackCount="0"></b:trackbacks>

		</b:entry>

		<b:entry entryID="000532" baseName="10-principles-of-the-css-masters">
			<b:author>
				<b:authorName>othree</b:authorName>
				<b:authorEmail>othree@gmail.com</b:authorEmail>
				<b:authorUrl></b:authorUrl>
			</b:author>
			<b:datetime>
				<b:date>2008-08-28</b:date>
				<b:time>00:40:47</b:time>
			</b:datetime>
			<b:category>css-html</b:category>
			<b:title>CSS大師的10條原則</b:title>
			<b:content>
				<b:summary>原文：10 Principles of the CSS Masters 1. 保持CSS簡單乾淨 - Peter-Paul Koch 少用CSS hack。 2. CSS宣告盡量放進一行 - Jonathan Snook 舉例來說： body {margin: 0; padding: 0; background: #fff;} 不過這工作我覺得交給機器來做比較好。 3.使用簡化的寫法 - Roger Johansson 使用如下的簡化寫法： border-width: 0 1px 2px 3px; 而不是用border-top-width、border-right-width、border-bottom-width、border-left-width分開設訂定。 4.讓區塊元素自己填滿空間 -...</b:summary>
				<b:mainContent><p>原文：<a href="http://nettuts.com/html-css-techniques/10-principles-of-the-css-masters/">10 Principles of the <span class="caps">CSS</span> Masters</a></p>

<h4>1. 保持CSS簡單乾淨 - Peter-Paul Koch</h4>

<p>少用CSS hack。</p>

<h4>2. <span class="caps">CSS</span>宣告盡量放進一行 - Jonathan Snook</h4>

<p>舉例來說：</p>



<pre><code>body {margin: 0; padding: 0; background: #fff;}</code></pre>



<p>不過這工作我覺得交給機器來做比較好。</p>

<h4>3.使用簡化的寫法 - Roger Johansson</h4>

<p>使用如下的簡化寫法：</p>



<pre><code>border-width: 0 1px 2px 3px;</code></pre>



<p>而不是用border-top-width、border-right-width、border-bottom-width、border-left-width分開設訂定。</p>

<h4>4.讓區塊元素自己填滿空間 - Jonathan</h4>

<p>設定width的話，就不設定margin、padding，設定margin、padding的話，就不設定width，這樣可以迴避掉IE的box model錯誤。</p>

<h4>5.用float元素自己clear float - Trevor Davis</h4>

<p>其實是利用 <code>:after { clear: both; }</code>來做啦。</p>

<h4>6.使用負的邊界直 - Dan Cederholm</h4>

<p>讓物件突出更顯眼。</p>

<h4>7.使用CSS把版面置中 - Dan Cederholm</h4>

<p>固定寬度的版面配置，盡量使用CSS把內容置中。</p>

<h4>8.使用正確的DOCTYPE - Jeffrey Zeldman</h4>

<p>好處多多。</p>

<h4>9.使用CSS把物件置中 - Wolfgang Bartelme</h4>

<p>雖然不是指整個版面而是指所有想要置中的東西，不過原文的例子還是把網頁主內容來置中，結果和第七點蠻容易混淆的。</p>

<h4>10.善用大小寫轉換 - Trenton Moss</h4>

<p>和中文語系使用者關係不大。</p>

<p>最後看下來，扣掉第10點，9點中我有7點有做到吧...</p></b:mainContent>
				<b:extendContent></b:extendContent>
			</b:content>

			<b:comments commentCount="2"></b:comments>


			<b:trackbacks trackbackCount="0"></b:trackbacks>

		</b:entry>

		<b:entry entryID="000497" baseName="tfoot">
			<b:author>
				<b:authorName>othree</b:authorName>
				<b:authorEmail>othree@gmail.com</b:authorEmail>
				<b:authorUrl></b:authorUrl>
			</b:author>
			<b:datetime>
				<b:date>2008-03-17</b:date>
				<b:time>00:25:41</b:time>
			</b:datetime>
			<b:category>css-html</b:category>
			<b:title>tfoot</b:title>
			<b:content>
				<b:summary>tfoot是table裡面用來把表格列群組化用的標籤之一，專門用在表格底端的表格列，不過要注意的是他不能放在tbody之後，而是要用thead、tfoot、tbody這樣的順序才對。...</b:summary>
				<b:mainContent><p><a href="http://www.w3.org/TR/html401/struct/tables.html#h-11.2.3">tfoot</a>是table裡面用來把表格列群組化用的標籤之一，專門用在表格底端的表格列，不過要注意的是他不能放在tbody之後，而是要用thead、tfoot、tbody這樣的順序才對。</p></b:mainContent>
				<b:extendContent></b:extendContent>
			</b:content>

			<b:comments commentCount="3"></b:comments>


			<b:trackbacks trackbackCount="0"></b:trackbacks>

		</b:entry>

	</b:entries>
</b:blog>
