<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Wegrass Interactive</title>
	
	<link>http://wegrass.com</link>
	<description>Just another WordPress site</description>
	<lastBuildDate>Tue, 04 Oct 2011 02:58:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/wegrass" /><feedburner:info uri="wegrass" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>wegrass</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fwegrass" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fwegrass" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><item>
		<title>การรับค่า parameter แบบต่างๆ ใน PHP</title>
		<link>http://feedproxy.google.com/~r/wegrass/~3/cEdnqvGPU2w/</link>
		<comments>http://wegrass.com/knowledge/parameter-passing-in-php/#comments</comments>
		<pubDate>Sat, 12 Feb 2011 18:29:38 +0000</pubDate>
		<dc:creator>Nutrawee</dc:creator>
				<category><![CDATA[Knowledge]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://wegrass.com/?p=1234</guid>
		<description><![CDATA[วิธีการรับค่า parameter นั้นมีหลายแบบ แต่ละแบบก็เหมาะกับการใช้งานที่แตกต่างกัน  เพื่อให้เห็นภาพ ผมขอยกตัวอย่างเป็น function buy นะครับ โดยเราสามารถบอกมันได้ว่าจะซื้ออะไรมั่ง (กำหนดไว้ที่ 4 อย่างนะครับ เดี๋ยวจะยาว) จากนั้นมันก็จะซื้อของตามที่เราสั่ง เรามาดูกันครับว่าเขียนแบบใหนบ้าง และเขียนแบบใหนถึงจะเหมาะสม รับแบบทั่วไป จะเห็นได้ว่าเวลาจะเรียกใช้ function นี้ เราต้องจำลำดับด้วยว่า ตัวแรกคือปลา ตัวที่สองคือหมู นอกจากนี้ สมมติอยากซื้อไก่ 5 ตัว ก็ต้องบอกด้วยว่า เอาปลา 0 ตัว เอาหมู 0 ตัว เอาวัว 0 ตัว ซึ่งไม่จำเป็นเลย &#8230; buy(0, 0, 5, 0); เหมาะสมกับ : เมื่อพิจารณาแล้ว ผมคิดว่าเหมาะสำหรับ function ที่รับค่า parameter ไม่มาก (4 ตัวยังพอไหว ถ้ามากกว่านั้นผมว่าใช้แบบถัดไปด้านล่างจะเหมาะสมกว่าครับ) [...]]]></description>
			<content:encoded><![CDATA[<p>วิธีการรับค่า parameter นั้นมีหลายแบบ แต่ละแบบก็เหมาะกับการใช้งานที่แตกต่างกัน  เพื่อให้เห็นภาพ ผมขอยกตัวอย่างเป็น function buy นะครับ โดยเราสามารถบอกมันได้ว่าจะซื้ออะไรมั่ง (กำหนดไว้ที่ 4 อย่างนะครับ เดี๋ยวจะยาว) จากนั้นมันก็จะซื้อของตามที่เราสั่ง เรามาดูกันครับว่าเขียนแบบใหนบ้าง และเขียนแบบใหนถึงจะเหมาะสม</p>
<h2>รับแบบทั่วไป</h2>
<pre class="brush: php; title: ; notranslate">
&lt;?php

function buy($fish=0, $pig=0, $chicken=0, $cow=0){
	echo &quot;Buy : fish x $fish, pig x $pig, chicken x $chicken, cow x $cow&quot;;
}

buy(1); // Buy: fish x 1, pig x 0, chicken x 0, cow x 0
buy(1, 2); // Buy: fish x 1, pig x 2, chicken x 0, cow x 0
buy(1, 2, 3); // Buy: fish x 1, pig x 2, chicken x 3, cow x 0
buy(1, 2, 3, 4); // Buy: fish x 1, pig x 2, chicken x 3, cow x 4
buy(1, null, 3, 4); // Buy: fish x 1, pig x , chicken x 3, cow x 4
buy(1, 0, 3, 4); // Buy: fish x 1, pig x 0, chicken x 3, cow x 4

?&gt;
</pre>
<p>จะเห็นได้ว่าเวลาจะเรียกใช้ function นี้ เราต้องจำลำดับด้วยว่า ตัวแรกคือปลา ตัวที่สองคือหมู นอกจากนี้ สมมติอยากซื้อไก่ 5 ตัว ก็ต้องบอกด้วยว่า เอาปลา 0 ตัว เอาหมู 0 ตัว เอาวัว 0 ตัว ซึ่งไม่จำเป็นเลย &#8230; buy(0, 0, 5, 0);</p>
<p><strong>เหมาะสมกับ</strong> : เมื่อพิจารณาแล้ว ผมคิดว่าเหมาะสำหรับ function ที่รับค่า parameter ไม่มาก (4 ตัวยังพอไหว ถ้ามากกว่านั้นผมว่าใช้แบบถัดไปด้านล่างจะเหมาะสมกว่าครับ) และมี parameter แบบ optional น้อยๆ</p>
<blockquote><p>parameter แบบ optional คือ จะระบุค่าหรือไม่ก็ได้ ถึงไม่บอก function มันก็ยังทำงานได้ปกติ (ถ้าเปรียบกับส้มตำ ก็เหมือนปูอ่ะครับ ใส่หรือไม่ใส่ก็ได้)</p>
<p>parameter แบบ required คือ parameter ที่เราต้องส่งค่า ถ้าไม่ส่ง function มันก็จะทำงานไม่สมบูรณ์ (ถ้าเปรียบกับส้มตำ ก็เหมือนมะละกอ ถ้าไม่ใส่ จะให้เรียกว่าส้มตำได้อย่างไร)</p></blockquote>
<h2>รับในรูปแบบ array</h2>
<pre class="brush: php; title: ; notranslate">

&lt;?php

function buy($animal){
	$animal['fish'] = isset($animal['fish']) ? $animal['fish'] : 0;
	$animal['pig'] = isset($animal['pig']) ? $animal['pig'] : 0;
	$animal['chicken'] = isset($animal['chicken']) ? $animal['chicken'] : 0;
	$animal['cow'] = isset($animal['cow']) ? $animal['cow'] : 0;
	echo &quot;Buy : fish x $animal[fish], pig x $animal[pig], chicken x $animal[chicken], cow x $animal[cow]&quot;;
}

// Buy: fish x 1, pig x 0, chicken x 0, cow x 0
buy(array(&quot;fish&quot;=&gt;1));

// Buy: fish x 1, pig x 2, chicken x 0, cow x 0
buy(array(&quot;fish&quot;=&gt;1 ,&quot;pig&quot;=&gt;2));
buy(array(&quot;pig&quot;=&gt;2 ,&quot;fish&quot;=&gt;1));

// Buy: fish x 1, pig x 2, chicken x 3, cow x 4
buy(array(&quot;fish&quot;=&gt;1, &quot;pig&quot;=&gt;2, &quot;chicken&quot;=&gt;3, &quot;cow&quot;=&gt;4));

// Buy: fish x 0, pig x 0, chicken x 3, cow x 0
buy(array(&quot;chicken&quot;=&gt;5));

?&gt;
</pre>
<p>จะเห็นว่าไม่ต้องเรียงลำดับให้ถูกต้องก็ได้ และส่งค่าเฉพาะตัวที่อยากระบุ เช่น อยากได้ไก่ 5 ตัว ก็ buy(array(&#8220;chicken&#8221;=&gt;5)); โค้ดยาวขึ้น แต่ ไม่ต้องลำดับตัวแปร ส่งเฉพาะตัวที่ต้องการได้ และอ่านเข้าใจได้ง่ายขึ้น</p>
<p><strong>เหมาะสมกับ</strong> : ผมคิดว่าเหมาะกับ function ที่มี parameter เยอะๆ และก็มี parameter แบบ optional เยอะๆ ด้วย</p>
<h2>รับในรูปแบบ query string และ array</h2>
<p><strong>ตัวอย่าง query string</strong>: fish=1&amp;pig=2&amp;chicken=3&amp;cow=4<br />
ในการรับค่าแบบ query string นี้ เราจะแปลง string ยาวๆ นี้ให้กลายเป็น array ดังนั้นการนำไปใช้ก็จะเหมือนกับการรับค่าแบบ array เรามาดูกันครับว่าแปลงจาก query string เป็น array อย่างไร</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php

function buy($animal){

// ถ้าหากค่าที่ส่งมาเป็น string ให้แปลงจาก string เป็น array
if(is_string($animal)){
	parse_str($animal, $animal);
}

	$animal['fish'] = isset($animal['fish']) ? $animal['fish'] : 0;
	$animal['pig'] = isset($animal['pig']) ? $animal['pig'] : 0;
	$animal['chicken'] = isset($animal['chicken']) ? $animal['chicken'] : 0;
	$animal['cow'] = isset($animal['cow']) ? $animal['cow'] : 0;
	echo &quot;Buy : fish x $animal[fish], pig x $animal[pig], chicken x $animal[chicken], cow x $animal[cow]&quot;;

}

// Buy: fish x 1, pig x 0, chicken x 0, cow x 0
buy(array(&quot;fish&quot;=&gt;1, &quot;cow&quot;=&gt;2));
buy(&quot;fish=1&amp;cow=2&quot;);

?&gt;
</pre>
<p>เขียนแบบนี้ก็จะทำให้รับค่าได้ทั้ง array และ query string ครับ ทีเด็ดอยู่ที่ function <a href="http://php.net/manual/en/function.parse-str.php">parse_str</a> ครับ ถ้าอยากเห็นภาพมากขึ้นว่าในชีวิตจริงเค้าใช้กันแบบใหนก็นี่เลยครับ <a href="http://codex.wordpress.org/Function_Reference/query_posts">http://codex.wordpress.org/Function_Reference/query_posts</a></p>
<p>รูปแบบการเขียน function เหล่านี้เป็นความรู้เท่าที่ผมมีนะครับ หากพบข้อบกพร่องหรืออยากเสริมอะไร ช่วยแนะนำผมด้วยนะครับ จะยินดีมากๆ ครับ</p>
<img src="http://feeds.feedburner.com/~r/wegrass/~4/cEdnqvGPU2w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wegrass.com/knowledge/parameter-passing-in-php/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://wegrass.com/knowledge/parameter-passing-in-php/</feedburner:origLink></item>
		<item>
		<title>ขยับกันอีกสักครั้ง</title>
		<link>http://feedproxy.google.com/~r/wegrass/~3/f_BuTV8tOks/</link>
		<comments>http://wegrass.com/general/restart/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 15:01:17 +0000</pubDate>
		<dc:creator>Nutrawee</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://wegrass.com/?p=1208</guid>
		<description><![CDATA[สวัสดีครับ ผ่านไปอีก 1 ปีแล้วยังไม่มีอะไรเปลี่ยนแปลง บทความก็มีน้อยนิด ปลั๊กอันก็มีอยู่อันเดียว ถึงเวลาแล้วที่ต้องกลับมาทำตามสิ่งที่มุ่งหวังไว้ ผมจึงถือโอกาสปรับเปลี่ยนหน้าตาและโครงสร้างของเว็บไซต์นี้อีกครั้ง นอกจากหน้าตาที่เปลี่ยนไปแล้ว เมนูหลักก็มีการเปลี่ยนแปลงด้วย รายละเอียดมีดังนี้ครับ Blog รวมบทความ โดยแยกออกเป็น 2 ประเภทคือ วิชาการ และ ทั่วไป ประเภทวิชาการก็จะเป็น ความรู้ ตัวอย่าง เกี่ยวกับ WordPress, jQuery, CSS และ Code Igniter เป็นหลักครับ ส่วน ประเภททั่วไป ก็คือทุกอย่างที่มันนอกเหนือจากประเภทความรู้นะครับ Playground สนามเด็กเล่นเป็นที่เก็บสะสมซอร์ฟแวร์ต่างๆ ที่เราทำขึ้นมาแจกเพราะ อยากทำ เห็นว่าทำแล้วมีประโยชน์ ตัวอย่างเช่น ปลั๊กอินสำหรับ WordPress, Theme และอื่นๆ ซึ่งตอนนี้ก็มีอยู่แค่โปรเจคเดียวคือ Chameleon CSS แต่ในปีนี้จะตั้งใจทำตรงนี้ให้มากขึ้นครับ Services ส่วนนี้เป็นส่วนที่รวมทุกอย่างที่เราทำเพื่อหารายได้มาประทังชีวิตครับ ซึ่งเป็นได้ทั้งบริการและซอร์ฟแวร์ครับ ตอนนี้อยู่ในช่วงวางแผนครับ เนื่องจากระยะ 1 ปีที่ผ่านมามันทำให้ผมได้เห็นอะไรมากขึ้น สิ่งที่เคยคิด [...]]]></description>
			<content:encoded><![CDATA[<p>สวัสดีครับ ผ่านไปอีก 1 ปีแล้วยังไม่มีอะไรเปลี่ยนแปลง บทความก็มีน้อยนิด ปลั๊กอันก็มีอยู่อันเดียว ถึงเวลาแล้วที่ต้องกลับมาทำตามสิ่งที่มุ่งหวังไว้ ผมจึงถือโอกาสปรับเปลี่ยนหน้าตาและโครงสร้างของเว็บไซต์นี้อีกครั้ง นอกจากหน้าตาที่เปลี่ยนไปแล้ว เมนูหลักก็มีการเปลี่ยนแปลงด้วย รายละเอียดมีดังนี้ครับ</p>
<h2><a href="http://wegrass.com/blog/">Blog</a></h2>
<p>รวมบทความ โดยแยกออกเป็น 2 ประเภทคือ วิชาการ และ ทั่วไป ประเภทวิชาการก็จะเป็น ความรู้ ตัวอย่าง เกี่ยวกับ WordPress, jQuery, CSS และ Code Igniter เป็นหลักครับ ส่วน ประเภททั่วไป ก็คือทุกอย่างที่มันนอกเหนือจากประเภทความรู้นะครับ</p>
<h2><a href="http://wegrass.com/playground/">Playground</a></h2>
<p>สนามเด็กเล่นเป็นที่เก็บสะสมซอร์ฟแวร์ต่างๆ ที่เราทำขึ้นมาแจกเพราะ อยากทำ เห็นว่าทำแล้วมีประโยชน์ ตัวอย่างเช่น ปลั๊กอินสำหรับ WordPress, Theme และอื่นๆ ซึ่งตอนนี้ก็มีอยู่แค่โปรเจคเดียวคือ <a href="http://wegrass.com/playground/ccss/">Chameleon CSS</a> แต่ในปีนี้จะตั้งใจทำตรงนี้ให้มากขึ้นครับ</p>
<h2><a href="http://wegrass.com/services/">Services</a></h2>
<p>ส่วนนี้เป็นส่วนที่รวมทุกอย่างที่เราทำเพื่อหารายได้มาประทังชีวิตครับ ซึ่งเป็นได้ทั้งบริการและซอร์ฟแวร์ครับ ตอนนี้อยู่ในช่วงวางแผนครับ เนื่องจากระยะ 1 ปีที่ผ่านมามันทำให้ผมได้เห็นอะไรมากขึ้น สิ่งที่เคยคิด มันก็ไม่ใช่อย่างที่คิด ดังนั้นจึงต้องปรับกันหน่อย</p>
<p>สุดท้ายนี้ขอขอบคุณทุกคนที่เข้ามาดู ขอให้ปีนี้เป็นปีที่ดีสำหรับทุกคนครับ<br />
ปล. เขียนดีดี นี่มันยากจังวุ้ย</p>
<img src="http://feeds.feedburner.com/~r/wegrass/~4/f_BuTV8tOks" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wegrass.com/general/restart/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://wegrass.com/general/restart/</feedburner:origLink></item>
		<item>
		<title>แม่กินหมู หมูกินแม่!!</title>
		<link>http://feedproxy.google.com/~r/wegrass/~3/X5i-hQaBj6E/</link>
		<comments>http://wegrass.com/general/mom-vs-pig/#comments</comments>
		<pubDate>Fri, 13 Aug 2010 22:43:15 +0000</pubDate>
		<dc:creator>Nutrawee</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://wegrass.com/?p=1065</guid>
		<description><![CDATA[เนื่องจากวันแม่ที่ผ่านมาผมได้ทำการ์ดแทนใจให้แม่ ใหนๆ ทำทั้งทีก็เลยอยากให้คนอื่นได้ดูด้วยครับ แรงบันดาลใจคือ แม่ผมชอบกิน หมูกรอบ หมูสามชั้น เลย์ เม็ดฟักทองตรามือ เอาเป็นว่า อะไรที่ไม่ควรกินจะกินแม่ผมกินตลอด เมื่อก่อนผมว่าแม่ทุกวันนะครับ จนมาหลังๆ นี้ขี้เกียจละ ก็รอดูต่อไปครับว่าจะเปลี่ยนแปลงได้เมื่อไร แต่ทุกวันนี้แม่ผมก็ยังกินเหมือนเดิมนะครับ ผมจึงได้นำความรู้สึกทั้งหมดใส่ลงในการ์ดใบนี้ หวังว่าแม่จะชอบ ขอบคุณฟอนต์สวยๆ จาก http://www.f0nt.com/release/layiji-mahaniyom-1-5/]]></description>
			<content:encoded><![CDATA[<p>เนื่องจากวันแม่ที่ผ่านมาผมได้ทำการ์ดแทนใจให้แม่ ใหนๆ ทำทั้งทีก็เลยอยากให้คนอื่นได้ดูด้วยครับ แรงบันดาลใจคือ แม่ผมชอบกิน หมูกรอบ หมูสามชั้น เลย์ เม็ดฟักทองตรามือ เอาเป็นว่า อะไรที่ไม่ควรกินจะกินแม่ผมกินตลอด เมื่อก่อนผมว่าแม่ทุกวันนะครับ จนมาหลังๆ นี้ขี้เกียจละ ก็รอดูต่อไปครับว่าจะเปลี่ยนแปลงได้เมื่อไร แต่ทุกวันนี้แม่ผมก็ยังกินเหมือนเดิมนะครับ ผมจึงได้นำความรู้สึกทั้งหมดใส่ลงในการ์ดใบนี้ หวังว่าแม่จะชอบ</p>
<p><span id="more-1065"></span></p>
<div class="post-img"><img class="alignnone size-full wp-image-1069" title="mom" src="http://d1zgw3mvfhdrr8.cloudfront.net/wp-content/uploads/2010/08/mom1.jpg" alt="" width="520" height="458" /></div>
<p>ขอบคุณฟอนต์สวยๆ จาก <a href="http://www.f0nt.com/release/layiji-mahaniyom-1-5/">http://www.f0nt.com/release/layiji-mahaniyom-1-5/</a></p>
<img src="http://feeds.feedburner.com/~r/wegrass/~4/X5i-hQaBj6E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wegrass.com/general/mom-vs-pig/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://wegrass.com/general/mom-vs-pig/</feedburner:origLink></item>
		<item>
		<title>สร้างนาฬิกาตัวเลขด้วย jClock</title>
		<link>http://feedproxy.google.com/~r/wegrass/~3/7bAXiOp4u28/</link>
		<comments>http://wegrass.com/knowledge/digital-clock-with-jclock/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 01:11:45 +0000</pubDate>
		<dc:creator>Nutrawee</dc:creator>
				<category><![CDATA[Knowledge]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://wegrass.com/?p=987</guid>
		<description><![CDATA[พอดีผมกำลังทำโปรเจคที่ได้ออกแบบให้มีนาฬิกาแบบตัวเลขติดอยู่บนหน้าเว็บเพจด้วย ก็เลยคิดว่าอย่างน้อยมันต้องมีซักคนบนโลกที่เคยทำแบบนี้ไปแล้ว ผมจึงลองหาว่ามีใครทำสคริปส์แบบนี้ไว้รึปล่าว แล้วก็เจอคนใจดีชื่อนาย Doug Sparling เค้าเป็นคนสร้าง jClock ซึ่งทำให้การสร้างนาฬิการบนเว็บเพจสะดวกขึ้น เขียนมาตั้งยาวไม่ได้มีสาระอะไรเลย มาเริ่มกันเลยดีกว่าครับ สิ่งที่ต้องใช้ jQuery จาวาสคริปส์เฟรมเวิร์ค มันมีหลายแบบนะครับ เลือกเอาตามใจชอบได้เลย แต่ถ้าหาไม่เจอก็ คลิกเพื่อดาวน์โหลด jQuery 1.4.2 minified jClock ปลั๊กอินของ jQuery ถ้าหาที่โหลดไม่เจอก็ คลิกเพื่อดาวน์โหลด jClock แนวคิด หน้าที่ของ jClock คือวาง text บ่งบอกเวลา ลงใน html element (เช่น &#60;p&#62; &#60;span&#62; &#60;div&#62; เป็นต้น) ที่เรากำหนด ดังนั้นสิ่งที่เราจะทำคือ สร้าง html element ขึ้นมา กำหนด css เพื่อควบคุมการแสดงผล จัดรูปแบบให้สวยงาม เมื่อพอใจแล้วก็บอกให้ jClock ใส่เวลาลงใน element [...]]]></description>
			<content:encoded><![CDATA[<p>พอดีผมกำลังทำโปรเจคที่ได้ออกแบบให้มีนาฬิกาแบบตัวเลขติดอยู่บนหน้าเว็บเพจด้วย ก็เลยคิดว่าอย่างน้อยมันต้องมีซักคนบนโลกที่เคยทำแบบนี้ไปแล้ว ผมจึงลองหาว่ามีใครทำสคริปส์แบบนี้ไว้รึปล่าว แล้วก็เจอคนใจดีชื่อนาย <a href="http://www.dougsparling.org/" target="_blank">Doug Sparling</a> เค้าเป็นคนสร้าง <a href="http://github.com/dsparling/jclock" target="_blank">jClock</a> ซึ่งทำให้การสร้างนาฬิการบนเว็บเพจสะดวกขึ้น เขียนมาตั้งยาวไม่ได้มีสาระอะไรเลย มาเริ่มกันเลยดีกว่าครับ</p>
<h2>สิ่งที่ต้องใช้</h2>
<ul>
<li><a href="http://jquery.com/" target="_blank">jQuery</a> จาวาสคริปส์เฟรมเวิร์ค มันมีหลายแบบนะครับ เลือกเอาตามใจชอบได้เลย แต่ถ้าหาไม่เจอก็ <a href="http://code.jquery.com/jquery-1.4.2.min.js" target="_blank">คลิกเพื่อดาวน์โหลด jQuery 1.4.2 minified</a></li>
<li><a href="http://github.com/dsparling/jclock" target="_blank">jClock</a> ปลั๊กอินของ jQuery ถ้าหาที่โหลดไม่เจอก็ <a href="http://github.com/dsparling/jclock/archives/master" target="_blank">คลิกเพื่อดาวน์โหลด jClock</a></li>
</ul>
<h2>แนวคิด</h2>
<p>หน้าที่ของ jClock คือวาง text บ่งบอกเวลา ลงใน html element (เช่น &lt;p&gt; &lt;span&gt; &lt;div&gt; เป็นต้น) ที่เรากำหนด ดังนั้นสิ่งที่เราจะทำคือ สร้าง html element ขึ้นมา กำหนด css เพื่อควบคุมการแสดงผล จัดรูปแบบให้สวยงาม เมื่อพอใจแล้วก็บอกให้ jClock ใส่เวลาลงใน element ที่ต้องการครับ</p>
<h2>เริ่มกันเลย</h2>
<p>เริ่มจากการออกแบบก่อนนะครับ อันนี้แล้วแต่ชอบเลยครับ ส่วนผมออกแบบได้ดังรูปด้านล่างครับ</p>
<div class="post-img"><img class="alignnone size-full wp-image-1009" title="Clock Design" src="http://d1zgw3mvfhdrr8.cloudfront.net/wp-content/uploads/2010/03/14.jpg" alt="" width="487" height="750" /></div>
<p>เวลาออกแบบ ให้คิดไปด้วยนะครับว่าจะวางโครงสร้าง html และ css อย่างไร เมื่ออกแบบเสร็จแล้วก็สร้างไฟล์ html และ css ได้เลยครับ</p>
<pre class="brush: xml; title: ; notranslate">
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; dir=&quot;ltr&quot; lang=&quot;en-US&quot;&gt;
&lt;head&gt;

&lt;link rel=&quot;stylesheet&quot; href=&quot;style.css&quot; type=&quot;text/css&quot; media=&quot;screen, projection&quot; /&gt;

&lt;script type=&quot;text/javascript&quot; src=&quot;./js/jquery.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;./js/jclock.js&quot;&gt;&lt;/script&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
jQuery(document).ready(function() {

var options_time = {
format: '%H:%M' // hour : minute
}

var options_day = {
format: '%A' // day
}

var options_dmy = {
format: '%d/%m/%Y' // dd / mm / yyyy
}

$('.clock-time').jclock(options_time);
$('.clock-day').jclock(options_day);
$('.clock-dmy').jclock(options_dmy);

});
&lt;/scripts&gt;

&lt;/head&gt;
&lt;body&gt;

&lt;div class=&quot;clock-body&quot;&gt;
&lt;div class=&quot;clock-content&quot;&gt;
&lt;div class=&quot;clock-time&quot;&gt;12:00&lt;/div&gt;
&lt;div class=&quot;clock-day&quot;&gt;Monday&lt;/div&gt;
&lt;div class=&quot;clock-dmy&quot;&gt;02/03/2009&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;
</pre>
<ul>
<li><strong>บรรทัดที่ 04:</strong> เป็นการบอกเบราเซอร์ว่า ให้อ่านค่า style sheet จากไฟล์ style.css</li>
<li><strong> บรรทัดที่ 06 &#8211; 07:</strong> เป็นการบอกว่าเราจะขอใช้งาน jQuery และ jClock นะ</li>
<li><strong> บรรทัดที่ 10:</strong> เป็นรูปแบบพื้นฐานของ jQuery ครับ เป็นการบอกว่า ถ้าเว็บเพจโหลดเสร็จแล้ว ให้ทำสิ่งต่างเหล่านี้ (บรรทัด 11 &#8211; 27)</li>
<li><strong> บรรทัดที่ 12, 16, 20: </strong>เป็นการสร้างตัวแปรเพื่อเก็บค่า option ที่ใช้กำหนดการแสดงผลของ jClock จากแบบที่เราคิดไว้ จะแบ่งได้เป็น 3 ส่วน เราจึงใช้ 3 option ครับ</li>
<li><strong> บรรทัดที่ 24 &#8211; 26:</strong> เป็นการบอกให้ jClock นำค่าเวลาในแบบต่างๆ ตาม option ที่เรากำหนด ไปใส่ไว้ใน element ครับ <a href="http://wegrass.com/article/jquery-selectors-basic/">ถ้ายังไม่มีพื้นฐานเกี่ยวกับ jQuery Selector ลองอ่านบทความนี้ดูนะครับ</a></li>
</ul>
<pre class="brush: css; title: ; notranslate">
.clock-body{
background-image: url(image/clock.jpg);
background-repeat: no-repeat;
width: 224px;
height: 127px;
font-family: Tahoma;
}

.clock-content{
padding: 15px 35px 15px 35px;
color: #707070;
}

.clock-time{
font-size: 3em;
letter-spacing: 8px;
text-align: center;
margin-bottom: 10px;
}

.clock-day{
float: left;
width: 70px;
font-size: 0.8em;
}

.clock-dmy{
float: right;
width: 80px;
font-size: 0.8em;
text-align: right;
}
</pre>
<h2>ข้อมูลเพิ่มเติมเกี่ยวกับ option format ของ jClock</h2>
<p><strong>%a</strong> ชื่อวันอย่างย่อ<br />
<strong>%A </strong>ชื่อวันแบบเต็มๆ<br />
<strong>%b</strong> ชื่อเดือนอย่างย่อ<br />
<strong>%B</strong> ชื่อเดือนแบบเต็มๆ<br />
<strong>%d</strong> วันที่ 01-31<br />
<strong>%H</strong> ชั่วโมง 00-23<br />
<strong>%h</strong> ชั่วโมง 01-12<br />
<strong>%m</strong> เดือนในแบบตัวเลข 01-12<br />
<strong>%M </strong>จำนวนนาที<br />
<strong>%p</strong> am หรือ pm<br />
<strong>%P</strong> AM หรือ PM<br />
<strong>%S</strong> จำนวนวินาที<br />
<strong>%y</strong> ปีในแบบตัวเลขสองหลัก<br />
<strong>%Y</strong> ปีในแบบตัวเลขสี่หลัก</p>
<img src="http://feeds.feedburner.com/~r/wegrass/~4/7bAXiOp4u28" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wegrass.com/knowledge/digital-clock-with-jclock/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://wegrass.com/knowledge/digital-clock-with-jclock/</feedburner:origLink></item>
		<item>
		<title>Drag &amp; Drop from scratch (return)</title>
		<link>http://feedproxy.google.com/~r/wegrass/~3/z0K3QFFvfAs/</link>
		<comments>http://wegrass.com/knowledge/drag-drop-from-scratch/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 15:40:29 +0000</pubDate>
		<dc:creator>Nutrawee</dc:creator>
				<category><![CDATA[Knowledge]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://obbon.net/?p=123</guid>
		<description><![CDATA[หลายคนอาจคิดว่า Drag &#38; Drop นั้นต้องทำยากแน่ๆ แต่ความจริงแล้วการ coding ไม่ยากเลย แต่ความยากมันอยู่ที่การนำไปใช้ บทความนี้จะบอกว่าทำอย่างไร ส่วนจะเอาไปใช้อย่างไรนั้น ต้องลองนำไปต่อยอดดูนะคับ ว่าแล้วก็มาจับกบกันเต๊อะ Obbs &#38; Basket เริ่มแรกเราต้องสร้างเพจที่มีกบและตะกร้าก่อนนะคับ โดยสร้างไฟล์ html ไฟล์ obb.html ซึ่งจะทำหน้าที่เป็นหน้าเว็ปเพจของเรานะคับ และสร้าง style sheet ไฟล์ ชื่อ obb.css จากนั้นผูกทั้งสองไฟล์เข้าด้วยกัน เป็นอันเสร็จพิธี จะเห็นว่าเพจของเราจะมี กบ 2 ตัว และตะกร้า 1 ใบ &#60;div&#62; คือ division ปกติเราจะใช้เพื่อเป็นตัวแทนของ section ที่เราสร้างขึ้นเอง เช่นในกรณีนี้ เราอยากทำกบ เราก็จะสร้าง &#60;div&#62; ซึ่งมี คลาสเป็น obb ส่วน id จะใช้ในการระบุว่าเป็นกบตัวใหน ซึ่งเดี๋ยวเราจะเขียน css [...]]]></description>
			<content:encoded><![CDATA[<p>หลายคนอาจคิดว่า Drag &amp; Drop นั้นต้องทำยากแน่ๆ แต่ความจริงแล้วการ coding ไม่ยากเลย แต่ความยากมันอยู่ที่การนำไปใช้ บทความนี้จะบอกว่าทำอย่างไร ส่วนจะเอาไปใช้อย่างไรนั้น ต้องลองนำไปต่อยอดดูนะคับ  ว่าแล้วก็มาจับกบกันเต๊อะ</p>
<h2>Obbs &amp; Basket</h2>
<p>เริ่มแรกเราต้องสร้างเพจที่มีกบและตะกร้าก่อนนะคับ โดยสร้างไฟล์ html ไฟล์ obb.html ซึ่งจะทำหน้าที่เป็นหน้าเว็ปเพจของเรานะคับ และสร้าง style sheet ไฟล์ ชื่อ obb.css จากนั้นผูกทั้งสองไฟล์เข้าด้วยกัน เป็นอันเสร็จพิธี</p>
<pre class="brush: xml; title: ; notranslate">
&lt;html&gt;

&lt;head&gt;
&lt;link media=&quot;screen&quot; type=&quot;text/css&quot; href=&quot;obb.css&quot; rel=&quot;stylesheet&quot;&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;div class=&quot;obb&quot; id=&quot;1&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;obb&quot; id=&quot;2&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;basket&quot;&gt;&lt;/div&gt;
&lt;/body&gt;

&lt;/html&gt;
</pre>
<p>จะเห็นว่าเพจของเราจะมี กบ 2 ตัว และตะกร้า 1 ใบ<br />
&lt;div&gt; คือ division ปกติเราจะใช้เพื่อเป็นตัวแทนของ section ที่เราสร้างขึ้นเอง เช่นในกรณีนี้ เราอยากทำกบ เราก็จะสร้าง &lt;div&gt; ซึ่งมี คลาสเป็น obb ส่วน id จะใช้ในการระบุว่าเป็นกบตัวใหน ซึ่งเดี๋ยวเราจะเขียน css ขึ้นมากำหนดว่า div ที่มีคลาสเป็น obb ให้แสดงเป็นรูปกบนะ นั่นเอง</p>
<blockquote><p><span style="color: #000000;">ปกติเวลาเราเขียน css มันจะแบ่งได้เป็น 2 ส่วนคือ </span></p>
<ul>
<li><span style="color: #000000;">style สำหรับ standard html tag เช่น <strong>&lt;p&gt;</strong> เป็นต้น<br />
</span></li>
<li><span style="color: #000000;">style สำหรับ custom tag ซึ่งเราจะใช้ <strong>&lt;div&gt;</strong> และ <strong>&lt;span&gt;</strong></span></li>
</ul>
<p><span style="color: #000000;">ดังนั้นตัวอย่างนี้ผมก็เลยใช้ <strong>&lt;div&gt;</strong> ครับ ความแตกต่างของ &lt;div&gt; และ &lt;span&gt; คือ &lt;div&gt; จะมีลักษณะเป็น &#8220;Block Element&#8221; คือมันจะไม่เรียงต่อๆ กัน จะอยู่กันคนละบรรทัด  ส่วน &lt;span&gt; นั้นเป็น &#8220;Inline Element&#8221; ถ้ามีหลายๆ อันมันก็จะเรียงต่อๆ กันไปจนสุด แล้วมันก็จะขึ้นบรรทัดใหม่ครับ </span></p></blockquote>
<p>ต่อด้วย obb.css นะคับ</p>
<pre class="brush: css; title: ; notranslate">
div.obb{
background-image: url(obb.gif);
width: 40px;
height: 30px;
float: left;
margin-right: 10px;
}

div.basket{
background-image: url(basket.gif);
width: 50px;
height: 35px;
float: right;
margin-right: 300px;
}
</pre>
<h2>Let&#8217;s move</h2>
<p>เราจะใช้ <a href="http://jquery.com/" target="_blank">JQuery </a> + <a href="http://ui.jquery.com/home" target="_blank">JQuery UI</a> ซึ่งเป็น Java library ซึ่งจะทำให้เราเขียน Java scripts ไ้ด้ง่ายขึ้น<br />
พอโหลด JQuery และ JQuery UI เสร็จแล้ว เอาไฟล์ไปไว้ใน folder ที่ต้องการ แล้วก็แก้ไข obb.html ดังนี้คับ</p>
<pre class="brush: xml; title: ; notranslate">
&lt;html&gt;

&lt;head&gt;
&lt;link media=&quot;screen&quot; type=&quot;text/css&quot; href=&quot;obb.css&quot; rel=&quot;stylesheet&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;jquery.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;jquery-ui.js&quot;&gt;&lt;/script&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
$(document).ready(function() {
$('div.obb').draggable({revert: true});
});
&lt;/script&gt;

&lt;/head&gt;

&lt;body&gt;
&lt;div class=&quot;obb&quot; id=&quot;1&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;obb&quot; id=&quot;2&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;basket&quot;&gt;&lt;/div&gt;
&lt;/body&gt;

&lt;/html&gt;
</pre>
<p><strong>บรรทัดที่ 5:</strong> ขอใช้ jQuery library<br />
<strong>บรรทัดที่ 6:</strong> ขอใช้ JQuery UI library<br />
<strong>บรรทัดที่ 9-11:</strong> เป็นการบอก ถ้าเพจนี้โหลดเสร็จ ให้ทำคำสั่งนี้นะ ซึ่งก็คือ บรรทัดที่ 11 นั่นเอง<br />
<strong>บรรทัดที่ 10:</strong> $(&#8216;div.obb&#8217;) คือ select ซึ่งหมายถึง element div ที่มี class=&#8221;obb&#8221; นั่นเอง <a href="http://docs.jquery.com/Selectors" target="_blank">รายละเอียด</a></p>
<h2>Catch them!</h2>
<p>ขั้นนี้เราจะกำหนดจุดปล่อยกบ ซึ่งก็คือตะกร้า เพิ่มโค้ดเข้าไปใน obb.html</p>
<pre class="brush: xml; title: ; notranslate">
&lt;html&gt;

&lt;head&gt;
&lt;link media=&quot;screen&quot; type=&quot;text/css&quot; href=&quot;obb.css&quot; rel=&quot;stylesheet&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;jquery.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;jquery-ui.js&quot;&gt;&lt;/script&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
$(document).ready(function() {
$('div.obb').draggable({revert: true});
$('div.basket').droppable({
accept: 'div.obb',
drop: function(ev,ui){
ui.draggable.fadeOut();
}
});
});
&lt;/script&gt;

&lt;/head&gt;

&lt;body&gt;
&lt;div class=&quot;obb&quot; id=&quot;1&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;obb&quot; id=&quot;2&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;basket&quot;&gt;&lt;/div&gt;
&lt;/body&gt;

&lt;/html&gt;
</pre>
<ul>
<li><strong>บรรทัดที่ 11:</strong> บอกว่า &lt;div class=&#8221;basket&#8221;&gt; เป็น drop zone</li>
<li><strong>บรรทัดที่ 12:</strong> รับเฉพาะ &lt;div class=&#8221;obb&#8221;&gt;</li>
<li><strong>บรรทัดที่ 13-14: </strong>เมื่อกบถูก drop ให้ทำตามนี้นะ</li>
</ul>
<h2>Conclusion</h2>
<p>จะเห็นว่าไม่ยากเลย แต่ก็ยังเอาไปใช้จริงไม่ได้ ความยากมันอยู่ที่ว่าจะเอาไปใช้ยังไงให้เหมาะสม เพราะบางทีการใส่ลูกเล่นให้เว็บอย่างไม่เหมาะสมมันก็เป็นผลเสียได้</p>
<img src="http://feeds.feedburner.com/~r/wegrass/~4/z0K3QFFvfAs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wegrass.com/knowledge/drag-drop-from-scratch/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		<feedburner:origLink>http://wegrass.com/knowledge/drag-drop-from-scratch/</feedburner:origLink></item>
		<item>
		<title>jQuery Selectors – Basic</title>
		<link>http://feedproxy.google.com/~r/wegrass/~3/0BGCH0Pc4_A/</link>
		<comments>http://wegrass.com/knowledge/jquery-selectors-basic/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 08:41:56 +0000</pubDate>
		<dc:creator>Nutrawee</dc:creator>
				<category><![CDATA[Knowledge]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://wegrass.com/?p=827</guid>
		<description><![CDATA[ขอเปรียบให้เว็บเพจเป็นตู้ปลา ให้ข้อมูลต่างๆ เป็นปลาที่แหวกว่ายอยู่ในตู้ ให้ jQuery คือพ่อค้า เราเป็นลูกค้า ถ้าเราอยากได้ปลาทอง เราก็บอกพ่อค้าว่า &#8220;พี่คับ เอาปลาทองตัวนึง&#8221; อยากได้ปลาทองสีดำก็บอกพ่อค้าว่า &#8220;พี่คับ เอาปลาทองตัวสีดำ ตัวนั้นคับ&#8221; นี่แหละคับ Selectors แนะนำตัวละคร ผมจะอธิบายด้วยภาพนะคับ แขกรับเชิญคือกบน้อยน่ารักผู้พิทักษ์แห่งดวงจันทร์ 3 ตัว ชื่ออีแดง อีเขียว และ อีน้ำเงินนะคับ ทั้งสามตัวรักกันเหมือนพี่น้อง แต่ละตัวมีไข่ตัวละ 2 ฟอง (ถ้ารู้สึกว่าไร้สาระก็ข้ามไปเลยนะคับ &#8211; -&#8221; อันนี้ผมไม่บังคับ) กบแต่ละตัวก็คือ tag DIV ซึ่งมี class=&#8221;obb&#8221; จำแนกแต่ละตัวด้วย id ที่แตกต่างกันคับ ส่วน tag P ซึ่งมี class=&#8221;obb-word&#8221; ก็คือคำพูดของกบแต่ละตัว ไม่จำเป็นต้องมี id เพราะมันอยู่ใน DIV ซึ่งมี id แตกต่างกัน [...]]]></description>
			<content:encoded><![CDATA[<p>ขอเปรียบให้เว็บเพจเป็นตู้ปลา ให้ข้อมูลต่างๆ เป็นปลาที่แหวกว่ายอยู่ในตู้  ให้ jQuery คือพ่อค้า เราเป็นลูกค้า ถ้าเราอยากได้ปลาทอง เราก็บอกพ่อค้าว่า &#8220;พี่คับ เอาปลาทองตัวนึง&#8221; อยากได้ปลาทองสีดำก็บอกพ่อค้าว่า &#8220;พี่คับ เอาปลาทองตัวสีดำ ตัวนั้นคับ&#8221; นี่แหละคับ Selectors<span id="more-827"></span></p>
<h2>แนะนำตัวละคร</h2>
<p>ผมจะอธิบายด้วยภาพนะคับ แขกรับเชิญคือกบน้อยน่ารักผู้พิทักษ์แห่งดวงจันทร์ 3 ตัว ชื่ออีแดง อีเขียว และ อีน้ำเงินนะคับ ทั้งสามตัวรักกันเหมือนพี่น้อง แต่ละตัวมีไข่ตัวละ 2 ฟอง (ถ้ารู้สึกว่าไร้สาระก็ข้ามไปเลยนะคับ &#8211; -&#8221; อันนี้ผมไม่บังคับ)</p>
<div class="post-img"><img class="alignnone size-full wp-image-829" title="introduce" src="http://d1zgw3mvfhdrr8.cloudfront.net/wp-content/uploads/2009/12/11.jpg" alt="introduce" /></div>
<div class="post-img"><img class="alignnone size-full wp-image-830" title="code" src="http://d1zgw3mvfhdrr8.cloudfront.net/wp-content/uploads/2009/12/21.jpg" alt="code" /></div>
<ul>
<li>กบแต่ละตัวก็คือ tag DIV ซึ่งมี class=&#8221;obb&#8221; จำแนกแต่ละตัวด้วย id ที่แตกต่างกันคับ</li>
<li>ส่วน tag P ซึ่งมี class=&#8221;obb-word&#8221; ก็คือคำพูดของกบแต่ละตัว ไม่จำเป็นต้องมี id เพราะมันอยู่ใน DIV ซึ่งมี id แตกต่างกัน</li>
<li>ส่วนไข่แต่ละฟองก็คือ tag DIV ซึ่งมี class=&#8221;egg&#8221; จำแนกไข่แต่ละฟองด้วย id จะเห็นว่าไข่ของกบแต่ละตัวมี id ซ้ำกัน แต่ไม่ใช่ปัญหาคับ เราสามารถระบุไข่ฟองใดก็ได้ เพราะแม่ของมันมี id แตกต่างกันแล้ว จะอธิบายให้เห็นภาพในภายหลังนะคับ</li>
</ul>
<h2>พื้นฐาน</h2>
<p>ผมจะอธิบายโดยอิง jQuery Core API เป็นหลักนะคับ เรามาเริ่มกันที่ Selectors &#8211; Basic</p>
<div class="post-img"><img class="alignnone size-full wp-image-831" title="all" src="http://d1zgw3mvfhdrr8.cloudfront.net/wp-content/uploads/2009/12/31.jpg" alt="all" /></div>
<p><strong>*</strong> คือ เอาหมดเลย สมมติว่าเราโค๊ดว่า $(&#8220;*&#8221;).hide(); แบบนี้ ทุกอย่างในเว็บเพจของเราก็จะถูกซ่อนคับ</p>
<div class="post-img"><img class="alignnone size-full wp-image-832" title="element" src="http://d1zgw3mvfhdrr8.cloudfront.net/wp-content/uploads/2009/12/element.jpg" alt="element" /></div>
<p><strong>element </strong>ก็คือ tag ต่างๆ เช่น SPAN, DIV, P, B, I, U และอีกมากมาย เวลาใช้ก็ไม่ต้องใส่เครื่องหมายอะไร ใส่ชื่อ element ไปเลยเช่น ต้องการเลือกทุก DIV ก็ $(&#8220;div&#8221;) ในตัวอย่างนี้ $(&#8220;p&#8221;) จะเป็นการเลือกคำพูดกบ</p>
<div class="post-img"><img class="alignnone size-full wp-image-833" title="class" src="http://d1zgw3mvfhdrr8.cloudfront.net/wp-content/uploads/2009/12/class.jpg" alt="class" /></div>
<p><strong>.</strong> คือ คลาส เวลาใช้ก็คือ . ตามด้วยชื่อคลาส เช่นเราต้องการเลือกไข่ทั้งหมด ก็ $(&#8220;.egg&#8221;) กบทุกตัวก็ $(&#8220;.obb&#8221;) แต่ถ้าต้องการเจาะจงว่าจะเอาไข่เบอร์ 1 เท่านั้นก็</p>
<div class="post-img"><img class="alignnone size-full wp-image-834" title="id" src="http://d1zgw3mvfhdrr8.cloudfront.net/wp-content/uploads/2009/12/id.jpg" alt="id" /></div>
<p><strong>#</strong> คือ id เวลาใช้ก็เอา # ตามด้วย id ที่เราต้องการ เช่นเราต้องการเลือกเฉพาะกบแดงก็ $(&#8220;#obb-red&#8221;) อยากได้แค่กบเขียวก็ $(&#8220;#obb-green&#8221;) ในตัวอย่างจะเห็นว่า $(&#8220;#egg-1&#8243;) จะได้ไข่เบอร์หนึ่งของกบทุกตัว ถ้าเราอยากได้แค่ไข่เบอร์หนึ่งของกบแดง ก็ต้องใช้ $(&#8220;#obb-red &gt; #egg-1&#8243;) ซึ่งจะอธิบายในบทถัดไปนะคับ</p>
<div class="post-img"><img class="alignnone size-full wp-image-835" title="union" src="http://d1zgw3mvfhdrr8.cloudfront.net/wp-content/uploads/2009/12/union.jpg" alt="union" /></div>
<p><strong>,</strong> คือ union ถ้ามองเป็นเซ็ตก็คือการเอาผลลัพธ์ของเงื่อนไขแต่ละชุดมา union กัน จากตัวอย่าง เราจะได้ กบแดง + กบน้ำเงิน + element P (ซึ่งก็คือคำพูดของกบทุกตัว) ก็จะได้ผลลัพธ์ดังรูป</p>
<p><strong>เพิ่มเติม</strong> การพิมพ์เงื่อนไขติดกันหมายความว่า สิ่งที่เราต้องการนั้น มันต้องมีทั้งสองเงื่อนไข ยกตัวอย่างเช่น $(&#8220;div.obb#obb-red&#8221;) หมายความว่าเราต้องการ element DIV ที่มี class=&#8221;obb&#8221; และ id=&#8221;obb-red&#8221; ซึ่งถ้าดูตามตัวอย่างนี้ เราจะได้ผลลัพธ์เช่นเดียวกับ $(&#8220;.obb#obb-red&#8221;) = $(&#8220;#obb-red&#8221;) = $(&#8220;div#obb-red&#8221;)  เป็นเรื่องที่ไม่ยาก หลายคนอาจรู้แล้ว ผมหวังว่าจะเป็นประโยชน์ต่อเด็กๆ ที่หลงเข้ามานะคับ ในบทความถัดไปจะเป็นเรื่องเกี่ยวกับ Selectors &#8211; Hierarchy คับ ถ้ามีจุดบกพร่องหรืออยากให้ผมปรับปรุงในส่วนใหนขอให้บอกนะคับ ผมจะได้นำไปแก้ไข ขอบคุณคับ</p>
<img src="http://feeds.feedburner.com/~r/wegrass/~4/0BGCH0Pc4_A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wegrass.com/knowledge/jquery-selectors-basic/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://wegrass.com/knowledge/jquery-selectors-basic/</feedburner:origLink></item>
		<item>
		<title>Machinarium เกมส์ดีที่โลกรอ</title>
		<link>http://feedproxy.google.com/~r/wegrass/~3/9Ja0PM9uBa0/</link>
		<comments>http://wegrass.com/general/machinarium/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 00:26:42 +0000</pubDate>
		<dc:creator>Nutrawee</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Game]]></category>

		<guid isPermaLink="false">http://wegrass.com/?p=806</guid>
		<description><![CDATA[เกมส์ที่น่ารักที่สุด เกมส์ที่น่าติดตามที่สุด เกมส์ที่น่าชื่นชมที่สุด เกมส์ที่พัฒนาสมองที่สุด เกมส์ที่เด็กควรได้เล่น เกมส์ที่ผู้ใหญ่ควรซื้อให้เด็กเล่น เกมส์ที่พ่อแม่ลูกสามารถเล่นด้วยกันได้ เกมส์ที่ 9ล9  เกมส์นั้น คือ &#8230; Machinarium! รู้สึกยิ่งใหญ่มั้ยคับ แต่ผมรู้สึกอย่างนั้นจริง ๆ รูปแบบการเล่นเป็นแบบ Point and Click คือเอาเมาส์ไปชี้วัตถุต่างๆ คลิก แล้วตัวละครมันก็จะเข้าไปทำอะไรซักอย่างกับวัตถุนั้น ฟังดูอาจรู้สึกว่าแล้วมันจะสนุกเหรอ อันนี้ต้องลองแล้วจะรู้คับ ผมจะยกตัวอย่างความประทับใจที่ผมได้ระหว่างที่เล่นเกมส์นี้นะคับ นี่เป็นตัวอย่างภาพในเกมส์คับ เป็นเกมส์สองมิติ แต่ภาพสวยมาก เล่นแล้วรู้เลยว่าคนทำเค้ามีความสุขที่ได้ทำ พระเอกคือหุ่นหน้ามึนๆ ตรงสะพานอ่ะคับ เห็นนกฮูกบนเสาไฟฟ้ามั้ยคับ มันจะเลียนแบบเรา เวลาเรายืดตัวมันก็จะยืดตัวตาม เดินมันก็เดินตาม น่ารักดีนะคับ และพฤติกรรมนี้แหละคับจะนำไปสู่การแก้ปริศนา เวลาเราทิ้งเครื่องไว้นาน หุ่นมันจะคิดถึงความหลัง ครั้งที่ได้อยู่กับแฟน แต่ตอนนี้แฟนมันโดนจับไปซะแล้ว มีมินิเกมส์มากมายแทรกอยู่ตลอดเกมส์คับ ซึ่งผมคิดว่ามันฝึกสมองดีมากคับ ถ้าเล่นไม่ชนะก็จะติดแหงก ก็ต้องพยายามเอาคับ พอไปต่อได้มันจะรู้สึกว่า เฮ้ยเราไม่ได้โง่หนิ &#8211; -&#8221; (เวลาเล่นแล้วติด ไม่ควรดูบทสรุปนะคับ เหมือนเล่นดอทเอแล้วแฮคแมพอ่ะคับ มันสนุกนักใช่มั้ย ห๊ะะะ [...]]]></description>
			<content:encoded><![CDATA[<p>เกมส์ที่น่ารักที่สุด เกมส์ที่น่าติดตามที่สุด เกมส์ที่น่าชื่นชมที่สุด เกมส์ที่พัฒนาสมองที่สุด เกมส์ที่เด็กควรได้เล่น เกมส์ที่ผู้ใหญ่ควรซื้อให้เด็กเล่น เกมส์ที่พ่อแม่ลูกสามารถเล่นด้วยกันได้ เกมส์ที่ 9ล9  เกมส์นั้น คือ &#8230; Machinarium! รู้สึกยิ่งใหญ่มั้ยคับ แต่ผมรู้สึกอย่างนั้นจริง ๆ</p>
<p>รูปแบบการเล่นเป็นแบบ Point and Click คือเอาเมาส์ไปชี้วัตถุต่างๆ คลิก แล้วตัวละครมันก็จะเข้าไปทำอะไรซักอย่างกับวัตถุนั้น ฟังดูอาจรู้สึกว่าแล้วมันจะสนุกเหรอ อันนี้ต้องลองแล้วจะรู้คับ</p>
<p>ผมจะยกตัวอย่างความประทับใจที่ผมได้ระหว่างที่เล่นเกมส์นี้นะคับ</p>
<div class="post-img"><img class="alignnone size-full wp-image-811" title="machinarium-1" src="http://d1zgw3mvfhdrr8.cloudfront.net/wp-content/uploads/2009/12/1.jpg" alt="1" width="500" height="322" /></div>
<p>นี่เป็นตัวอย่างภาพในเกมส์คับ เป็นเกมส์สองมิติ แต่ภาพสวยมาก เล่นแล้วรู้เลยว่าคนทำเค้ามีความสุขที่ได้ทำ พระเอกคือหุ่นหน้ามึนๆ ตรงสะพานอ่ะคับ เห็นนกฮูกบนเสาไฟฟ้ามั้ยคับ มันจะเลียนแบบเรา เวลาเรายืดตัวมันก็จะยืดตัวตาม เดินมันก็เดินตาม น่ารักดีนะคับ และพฤติกรรมนี้แหละคับจะนำไปสู่การแก้ปริศนา</p>
<div class="post-img"><img class="alignnone size-full wp-image-815" title="machinarium-2" src="http://d1zgw3mvfhdrr8.cloudfront.net/wp-content/uploads/2009/12/3.jpg" alt="3" width="438" height="270" /></div>
<p>เวลาเราทิ้งเครื่องไว้นาน หุ่นมันจะคิดถึงความหลัง ครั้งที่ได้อยู่กับแฟน แต่ตอนนี้แฟนมันโดนจับไปซะแล้ว</p>
<div class="post-img"><img class="alignnone size-full wp-image-814" title="machinarium-3" src="http://d1zgw3mvfhdrr8.cloudfront.net/wp-content/uploads/2009/12/2.jpg" alt="2" width="477" height="219" /></div>
<p>มีมินิเกมส์มากมายแทรกอยู่ตลอดเกมส์คับ ซึ่งผมคิดว่ามันฝึกสมองดีมากคับ ถ้าเล่นไม่ชนะก็จะติดแหงก ก็ต้องพยายามเอาคับ พอไปต่อได้มันจะรู้สึกว่า เฮ้ยเราไม่ได้โง่หนิ &#8211; -&#8221; (เวลาเล่นแล้วติด ไม่ควรดูบทสรุปนะคับ เหมือนเล่นดอทเอแล้วแฮคแมพอ่ะคับ มันสนุกนักใช่มั้ย ห๊ะะะ out pai!!! อ่าขอโทษคับ)</p>
<p>ยังมีสิ่งน่าประทับใจอีกมากมายนะคับ แต่ผมขี้เกียจซะแล้ว -/\- ใครที่อยากลองเล่น <a href="http://machinarium.net/demo/">คลิกที่นี่เลยนะคับ</a> ถ้าชอบขอให้ช่วยสนับสนุนลิขสิทธิ์ด้วยนะคับ ขอยอมรับว่าผมโหลดเกมส์นี้มาจากเว็บบิท แต่หลังจากเขียนบทความนี้เสร็จผมจะไปซื้อแบบถูกลิขสิทธิ์แน่นอนคับ</p>
<img src="http://feeds.feedburner.com/~r/wegrass/~4/9Ja0PM9uBa0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wegrass.com/general/machinarium/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://wegrass.com/general/machinarium/</feedburner:origLink></item>
		<item>
		<title>หญ้ายังเขียว… เหมือนเดิม</title>
		<link>http://feedproxy.google.com/~r/wegrass/~3/hDIEkXgjgFQ/</link>
		<comments>http://wegrass.com/general/hatch/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 15:24:28 +0000</pubDate>
		<dc:creator>Nutrawee</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://wegrass.com/?p=550</guid>
		<description><![CDATA[คิดไว้นานแล้วว่า เว็ปเก่า (obbon.net) มันดูเด็กเกินไป ก็เลยจัดการออกแบบใหม่ ได้ออกมาเป็นอย่างที่เห็น ซึ่งก็ดูแล้วไม่ต่างจากเดิม (แล้วจะทำทำไมวะ) ว่าแล้วก็ขอต้อนรับผู้ที่หลงเข้ามาสู่บ้าน Grass still Green ครับ ที่มา ความจริงไม่มีเหตุผลนะครับ แต่ถ้าจะเอาซักหน่อยก็คงเป็นเพราะว่าผมชอบสีเขียว ชอบดูทุ่งหญ้า ชอบดูคนค้นคน (เอ๊ะยังไง) วัตถุประสงค์ รับออกแบบและจัดทำเว็ปไซต์ ครบวงจร สำหรับองค์กรหรือกลุ่มคนที่ทำเพื่อคนอื่น เราก็ยินทำเว็ปให้คุณโดยไม่คิดตังค์ครับ เขียนบทความจากประสบการณ์ ทั้งมีและไม่มีสาระ ตอนนี้เว็ปอาจจะดูโล่งๆ ไม่มีอะไร แต่จะพยายามเพิ่มบทความเรื่อยๆ ครับ และขอถือโอกาสเปิดเว็ปอย่างเป็นทางการครับ (ทุกคนโห่ร้องแสดงความยินดี) ขอบคุณครับ]]></description>
			<content:encoded><![CDATA[<p>คิดไว้นานแล้วว่า เว็ปเก่า (obbon.net) มันดูเด็กเกินไป ก็เลยจัดการออกแบบใหม่ ได้ออกมาเป็นอย่างที่เห็น ซึ่งก็ดูแล้วไม่ต่างจากเดิม (แล้วจะทำทำไมวะ) ว่าแล้วก็ขอต้อนรับผู้ที่หลงเข้ามาสู่บ้าน <strong><span style="color: #808000;">Grass still Green</span></strong> ครับ</p>
<h2>ที่มา</h2>
<p>ความจริงไม่มีเหตุผลนะครับ แต่ถ้าจะเอาซักหน่อยก็คงเป็นเพราะว่าผมชอบสีเขียว ชอบดูทุ่งหญ้า ชอบดูคนค้นคน (เอ๊ะยังไง)</p>
<h2>วัตถุประสงค์</h2>
<ol>
<li>รับออกแบบและจัดทำเว็ปไซต์ ครบวงจร สำหรับองค์กรหรือกลุ่มคนที่ทำเพื่อคนอื่น เราก็ยินทำเว็ปให้คุณโดยไม่คิดตังค์ครับ</li>
<li>เขียนบทความจากประสบการณ์ ทั้งมีและไม่มีสาระ</li>
</ol>
<p>ตอนนี้เว็ปอาจจะดูโล่งๆ ไม่มีอะไร แต่จะพยายามเพิ่มบทความเรื่อยๆ ครับ<br />
และขอถือโอกาสเปิดเว็ปอย่างเป็นทางการครับ (ทุกคนโห่ร้องแสดงความยินดี)</p>
<h2>ขอบคุณครับ</h2>
<img src="http://feeds.feedburner.com/~r/wegrass/~4/hDIEkXgjgFQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wegrass.com/general/hatch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://wegrass.com/general/hatch/</feedburner:origLink></item>
		<item>
		<title>ความหวัง… ยังมี</title>
		<link>http://feedproxy.google.com/~r/wegrass/~3/U-hU8yKH0eY/</link>
		<comments>http://wegrass.com/general/chance/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 17:59:31 +0000</pubDate>
		<dc:creator>Nutrawee</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://obbon.net/?p=478</guid>
		<description><![CDATA[ความจริงวันที่ 15 กันยายน 2552 ที่ผ่านมา ผมต้องไปรายงานตัวคนตกงานที่ สำนักจัดหางาน แต่ผมจำวันผิดก็เลยไม่ได้ไป คืนวันที่ 15 ผมเอาใบนัดขึ้นมาดู ไม่ทันแล้ว ใบหน้าซีดผาด โลกทั้งโลกมืดลงทันใด (ทั้งๆ ที่มืดอยู่แล้ว) แต่ไม่เป็นไรอาจจะได้ก็ได้วะ ลองค้นหาข้อมูลในอินเตอร์เนต เจอแต่คำว่า &#8220;อย่าไปหลังวันนัดเด็ดขาด ไม่งั้นอด&#8221; หมดหวังแล้ว ถ้าแม่รู้โดนด่าชัวร์ วันเวลาค่อยๆ ผ่านไป จากวินาทีเป็นนาที จากนาทีเป็นชั่วโมง ช่างยาวนาน จะนอนก็นอนไม่หลับ จะต้องทนกับความรู้สึกนี้อีกนานเพียงใด จันทร์เจ้าเอ๋ย ตอบฉันที วันที่ 17 กันยายน 2552 : 15.00 น. ไม่ไหวแล้วเสียดายตังค์ว่ะ โทรไปถามทางสำนักจัดหางานหน่อยละกัน ผม: พี่ครับ คือนัดรายงานตัวครั้งที่ 2 ของผมคือวันที่ 15 กันยายน 2552 แต่ผมลืมอ่ะครับ ผู้มีพระคุณ: งั้นน้องรีบมาเลยนะ ผม: ขอบคุณมากครับ จะไปเดี๋ยวนี้เลยครับ [...]]]></description>
			<content:encoded><![CDATA[<p>ความจริงวันที่ 15 กันยายน 2552 ที่ผ่านมา ผมต้องไปรายงานตัวคนตกงานที่ สำนักจัดหางาน แต่ผมจำวันผิดก็เลยไม่ได้ไป คืนวันที่ 15 ผมเอาใบนัดขึ้นมาดู ไม่ทันแล้ว ใบหน้าซีดผาด โลกทั้งโลกมืดลงทันใด (ทั้งๆ ที่มืดอยู่แล้ว) แต่ไม่เป็นไรอาจจะได้ก็ได้วะ ลองค้นหาข้อมูลในอินเตอร์เนต เจอแต่คำว่า<span style="color: #ff0000;"> &#8220;อย่าไปหลังวันนัดเด็ดขาด ไม่งั้นอด&#8221;</span> หมดหวังแล้ว ถ้าแม่รู้โดนด่าชัวร์<span id="more-478"></span></p>
<p>วันเวลาค่อยๆ ผ่านไป จากวินาทีเป็นนาที จากนาทีเป็นชั่วโมง ช่างยาวนาน จะนอนก็นอนไม่หลับ จะต้องทนกับความรู้สึกนี้อีกนานเพียงใด จันทร์เจ้าเอ๋ย ตอบฉันที</p>
<p>วันที่ 17 กันยายน 2552 : 15.00 น. ไม่ไหวแล้วเสียดายตังค์ว่ะ โทรไปถามทางสำนักจัดหางานหน่อยละกัน</p>
<p><strong>ผม</strong>: พี่ครับ คือนัดรายงานตัวครั้งที่ 2 ของผมคือวันที่ 15 กันยายน 2552 แต่ผมลืมอ่ะครับ<br />
 <strong>ผู้มีพระคุณ</strong>: งั้นน้องรีบมาเลยนะ<br />
 <strong>ผม</strong>: ขอบคุณมากครับ จะไปเดี๋ยวนี้เลยครับ</p>
<p>จากนั้นก็เดินทางไปที่สำนักงานจัดหางานเพื่อรายงานตัว เป็นอันจบพิธี ได้ตังค์มาใช้ ฮี่ๆ</p>
<p><span style="color: #808000;"><strong>ข้อมูลเพิ่มเติมสำหรับคนที่จะไปขอรับเงินชดเชยนะครับ</strong></span></p>
<ol>
<li>ก่อนอื่นเราต้องไปลงทะเบียนที่สำนักจัดหางานใกล้บ้านก่อนนะครับ <a href="http://www.doe.go.th/doe_contact.aspx">แผนที่</a> เอกสารที่ต้องใช้คือ สำเนาบัตรประชาชน สำเนาหน้าบัญชีเงินฝาก </li>
<li>เมื่อลงทะเบียนเสร็จแล้ว เจ้าหน้าที่เค้าจะให้ใบนัดรายงานตัว</li>
<li>ไปรายงานตัวตามนัด หรือไปล่วงหน้า 1-3 วันครับ หลังจากรายงานตัว ภายใน 5 วันทำการเค้าจะโอนเงินเข้าบัญชีเราครับ</li>
</ol>
<p>ปล. ขณะที่พี่ได้อ่านข้อความนี้ ผมคง &#8230; ใช้ตังค์หมดไปแล้ว ขอบคุณอีกครั้งครับ<br />
 ปอ. ไม่ได้มาแนะนำ หรือยืนยันว่าไปรายงานตัวล่าช้าได้นะครับ ที่จริงควรทำตามกฏ แต่ใครที่ลืมจริง ๆ ลองโทรไปถามดูนะครับ</p>
<img src="http://feeds.feedburner.com/~r/wegrass/~4/U-hU8yKH0eY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wegrass.com/general/chance/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://wegrass.com/general/chance/</feedburner:origLink></item>
		<item>
		<title>Blue Print CSS Framework</title>
		<link>http://feedproxy.google.com/~r/wegrass/~3/i3V18HcvVb4/</link>
		<comments>http://wegrass.com/knowledge/blue-print-css-framework/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 22:55:37 +0000</pubDate>
		<dc:creator>Nutrawee</dc:creator>
				<category><![CDATA[Knowledge]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://obbon.net/?p=203</guid>
		<description><![CDATA[พอดีเมื่อวานนี้นั่งดู Stat ของ obbon.net แล้วไปเห็นว่ามีคนเข้า Google แล้วค้นหาด้วยคำว่า &#8220;jquery drag drop กบ&#8221; เห็นแล้วรู้สึกดีมากเลยครับ เหมือนมีคนมาตบไหล่เบาๆ แล้วพูดว่า สู้ต่อไปดิวะ ฮี่ๆ น้ำตาจะไหล เข้าเรื่องกันดีกว่าครับ สำหรับคนที่ใช้ CSS ในการจัดรูปแบบเว็ปเพจ คงเคยรู้สึกว่า ทำไมทุกครั้งที่ทำเว็ปใหม่ เราต้องมานั่งวางโครง กำหนดลักษณะตัวอักษร ใส่โค๊ดเพื่อแก้ปัญหาการแสดงผลในบางเบราวเซอร์ ซึ่งสิ่งต่างๆ เหล่านี้ ส่วนใหญ่เราก็จะทำไปเรื่อยๆ เจอปัญหาทีก็แก้ที คนกลุ่มหนึ่งที่เค้าก็เคยเจอปัญหาเดียวกับเรา เค้าเลยคิดชุด CSS มาตรฐานขึ้นมา จะได้ไม่ต้องมานั่งทำซ้ำๆ ซึ่งเราเรียกว่า CSS Framework นั่นเอง สิ่งที่ต้องมี Blueprint CSS Framework ความจริงมันมีหลายเจ้านะครับ แต่ที่ผมเลือกตัวนี้เพราะว่า ผมเคยทำแต่ตัวนี้ &#8230; ไฟล์ HTML 1 ไฟล์เอาไว้ลองครับ หมดละครับ เข้าใจ Blueprint ก่อนอื่นเรามาทำความเข้าใจแนวคิดของคนทำ [...]]]></description>
			<content:encoded><![CDATA[<p>พอดีเมื่อวานนี้นั่งดู Stat ของ obbon.net แล้วไปเห็นว่ามีคนเข้า Google แล้วค้นหาด้วยคำว่า &#8220;jquery  drag drop กบ&#8221; เห็นแล้วรู้สึกดีมากเลยครับ เหมือนมีคนมาตบไหล่เบาๆ แล้วพูดว่า สู้ต่อไปดิวะ ฮี่ๆ น้ำตาจะไหล เข้าเรื่องกันดีกว่าครับ</p>
<p>สำหรับคนที่ใช้ CSS ในการจัดรูปแบบเว็ปเพจ คงเคยรู้สึกว่า ทำไมทุกครั้งที่ทำเว็ปใหม่ เราต้องมานั่งวางโครง กำหนดลักษณะตัวอักษร ใส่โค๊ดเพื่อแก้ปัญหาการแสดงผลในบางเบราวเซอร์ ซึ่งสิ่งต่างๆ เหล่านี้ ส่วนใหญ่เราก็จะทำไปเรื่อยๆ เจอปัญหาทีก็แก้ที คนกลุ่มหนึ่งที่เค้าก็เคยเจอปัญหาเดียวกับเรา เค้าเลยคิดชุด CSS มาตรฐานขึ้นมา จะได้ไม่ต้องมานั่งทำซ้ำๆ ซึ่งเราเรียกว่า CSS Framework นั่นเอง</p>
<h2>สิ่งที่ต้องมี</h2>
<ol>
<li><a href="http://www.blueprintcss.org/" target="_blank">Blueprint CSS Framework</a> ความจริงมันมีหลายเจ้านะครับ แต่ที่ผมเลือกตัวนี้เพราะว่า ผมเคยทำแต่ตัวนี้ &#8230;</li>
<li>ไฟล์ HTML 1 ไฟล์เอาไว้ลองครับ</li>
<li>หมดละครับ</li>
</ol>
<h2>เข้าใจ Blueprint</h2>
<p>ก่อนอื่นเรามาทำความเข้าใจแนวคิดของคนทำ Blueprint ก่อนนะครับ Blueprint จะมองหน้าเว็ปเพจว่ามีความกว้าง 950 px นะครับ โดยจะถูกแบ่งเป็น Grid ซึ่งมีความกว้าง 30 px จำนวน 24 Grid แต่ละ Grid มีระยะห่างกัน 10 px ตามภาพประกอบ 1.2ก นะครับ แล้วทำไมต้องรู้ด้วย เพราะว่าเวลาเราจะวางข้อมูล เราก็จะต้องวางตาม Grid นะครับ แต่สุดท้ายเราก็สามารถปรับแต่งได้อยู่ดีครับ มันช่วยให้เราวางโครงเป็นระบบมากขึ้น ทำให้เราทำงานได้เร็วขึ้น</p>
<div class="post-img"><img class="size-full wp-image-220 alignnone" title="intro" src="http://d1zgw3mvfhdrr8.cloudfront.net/wp-content/uploads/2009/08/intro.jpg" alt="รูป 1.12ก" width="549" height="371" /></div>
<h2>ลงมือปฎิบัติ</h2>
<ol>
<li>เริ่มแรกเราต้องมีภาพเว็ปในใจแล้วนะครับ อันนี้เป็นตัวอย่างนะครับ    <a rel="lightbox" href="http://d1zgw3mvfhdrr8.cloudfront.net/wp-content/uploads/2009/08/web1.jpg"><img class="alignnone size-full wp-image-109" title="img" src="http://d1zgw3mvfhdrr8.cloudfront.net/wp-content/uploads/2008/10/img.gif" alt="img" /></a></li>
<li>จากนั้นเราจะต้องมองโครงสร้างในแบบของ Grid นะครับ ซึ่งก็จะได้ตามรูปนี้  <a rel="lightbox" href="http://d1zgw3mvfhdrr8.cloudfront.net/wp-content/uploads/2009/08/web2.jpg"><img title="img" src="http://d1zgw3mvfhdrr8.cloudfront.net/wp-content/uploads/2008/10/img.gif" alt="img" /></a> ต่างคน ก็อาจจะมองออกมาไม่เหมือนกันนะครับ ซึ่งไม่มีถูกผิดนะครับ แต่ถ้าทำไปเรื่อยๆ ก็จะรู้เองว่ามองแบบใหนถึงจะเหมาะสม</li>
<li>หลังจากมองโครงสร้างเรียบร้อยแล้ว ก็ได้เวลาเขียนไฟล์ HTML แล้วล่ะครับ</li>
</ol>
<pre class="brush: xml; title: ; notranslate">
&lt;html&gt;

&lt;head&gt;

&lt;link rel=&quot;stylesheet&quot; href=&quot;css/blueprint/screen.css&quot; type=&quot;text/css&quot; media=&quot;screen, projection&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; href=&quot;css/blueprint/print.css&quot; type=&quot;text/css&quot; media=&quot;print&quot;&gt;
&lt;!--[if lt IE 8]&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;css/blueprint/ie.css&quot; type=&quot;text/css&quot; media=&quot;screen,projection&quot;&gt;&lt;![endif]--&gt;
&lt;link rel=&quot;stylesheet&quot; href=&quot;css/mystyle.css&quot; type=&quot;text/css&quot; media=&quot;screen, projection&quot;&gt;

&lt;/head&gt;

&lt;body&gt;

&lt;div class=&quot;container&quot;&gt;
&lt;div id=&quot;header&quot; class=&quot;span-24&quot;&gt;Header&lt;/div&gt;
&lt;div id=&quot;side_bar&quot; class=&quot;span-6&quot;&gt;Sidebar&lt;/div&gt;
&lt;div id=&quot;main_content&quot; class=&quot;span-17 push-1 last&quot;&gt;
&lt;div class=&quot;span-8&quot;&gt;Column#1&lt;/div&gt;
&lt;div class=&quot;span-8 last&quot;&gt;Column#2&lt;/div&gt;
&lt;div id=&quot;footer&quot; class=&quot;span-24&quot;&gt;footer&lt;/div&gt;
&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;
</pre>
<ul>
<li><strong>บรรทัดที่</strong> 5-7 : เป็นการประกาศใช้ไฟล์ css ของ Blueprint ครับ บรรทัดที่ 5 จะพิเศษหน่อยเพราะมันเอาไว้แก้ปัญหาการแสดงผลของ IE ตั้งแต่เวอร์ชั่น 7 ลงไปครับ</li>
<li><strong>บรรทัดที่</strong> 8 : เป็นการประกาศใช้ไฟล์ css ของเราเองนะครับ Blueprint ไม่ได้ทำให้เราทุกอย่าง อะไรที่เราอยากปรับแต่งเองก็เอาใส่ไว้ในไฟล์นี้ล่ะครับ</li>
<li><strong>บรรทัดที่</strong> 14 : จะเห็นว่าผมสร้าง DIV ซึ่งมีคลาสคือ container ครอบไว้ ที่ต้องทำแบบนี้เพราะ Blueprint เค้ากำหนดไว้ครับ ว่าคลาสต่างๆ ที่เค้าเตรียมไว้ให้นั้น มันจะมีผลก็ต่อเมื่อมันอยู่ในคลาส container</li>
<li><strong>บรรทัดที่</strong> 15 : คลาส span-24 เป็นการบอกว่า จะให้กล่องนี้มีความกว้าง 24 ช่องนะ เราเลือกได้ตั้งแต่ span-1 ถึง span-24 ครับ ส่วนไอดี header ผมเอาไว้ให้ mystyle.css ใช้ในการปรับแต่งครับ</li>
<li><strong>บรรทัดที่</strong> 17 : push-1 คือการขยับไปทางขวาอีก 1 ช่องด้วยการเพิ่ม margin ครับ Blueprint เค้ามีคลาสอื่นๆ ให้ใช้อีกเยอะนะครับ ดูได้ใน screen.css เลยครับ ส่วนคลาส last ใส่ไว้เพื่อให้กล่องมันลงล็อคพอดีครับ เพราะว่าคลาส span โดยปกติจะมี margin-right: 10px ซึ่งถ้าเป็นแบบนี้หมด 24 อันจะเห็นว่ามันจะกลายเป็น 24 x (30 + 10) = 960 ซึ่งมันไม่ใช่ (ดูจากรูป 1.12ก นะครับ จะเห็นว่า Grid ขวาสุดจะไม่มีขอบด้านขวา) การใส่คลาส last ก็เพื่อบอกว่ามันเป็นบล็อคขวาสุดนะ ไม่ต้องมีระยะขอบ งงมั้ยเนี่ย ถ้างงกลับไปอ่านตั้งแต่บรรทัดแรก สิบรอบ ปฎิบัติ!</li>
</ul>
<pre class="brush: css; title: ; notranslate">
/* File mystyle.css นะครับ */

#header{
background: #e9e7cf;
}

#footer{
background: #eaaaaa;
}

#side_bar{
background: #b7dcff;
}

#main_content{
background: #b7dcff;
}

#main_content_header{
background: #ecd4ba;
}

#column_1{
background: #e4c8f2;
}

#column_2{
background: #ffd7d7;
}
</pre>
<p>ไฟล์นี้คงไม่ต้องอธิบายนะครับ เพราะมันก็ไม่มีอะไรให้งง # เอาไว้บอกว่า อะไรก็ตามที่มี id นั้น ให้แสดงผลตามนี้นะ เช่น ในส่วน #header ก็คือการบอกว่า อะไรก็ตามที่มี id เป็น header ให้มีสีพื้นหลัง #e9e7cf นะ</p>
<p>เมื่อเรียบร้อยหมดแล้ว ลองเปิด index.html ดูก็จะได้ดังรูปนี้ครับ  <a rel="lightbox" href="http://d1zgw3mvfhdrr8.cloudfront.net/wp-content/uploads/2009/08/web3.jpg"><img class="alignnone size-full wp-image-109" title="img" src="http://d1zgw3mvfhdrr8.cloudfront.net/wp-content/uploads/2008/10/img.gif" alt="img" /></a> จะเห็นว่าระยะแนวนอนนั้นถูกต้องแล้ว แต่ระยะแนวตั้งนั้นยังต้องปรับ ซึ่งอันนี้เป็นหน้าที่ของเราโดยตรงนะครับ ในขั้นตอนนี้เราจะจัดระยะในแนวตั้งนะครับ ด้วยไฟล์ mystyle.css นั่นแหละครับ เอามาแก้ต่อได้เลย</p>
<pre class="brush: css; title: ; notranslate">
/* File mystyle.css นะครับ */

#header{
background: #e9e7cf;
height: 150px;  margin-bottom: 30px;
}

#footer{
background: #eaaaaa;
height: 100px;
margin-top: 20px;
}

#side_bar{
background: #b7dcff;
}

#main_content{
background: #b7dcff;
}

#main_content_header{
background-color: #ecd4ba;
margin-bottom: 15px;
}

#column_1{
background: #e4c8f2;
}

#column_2{
background: #ffd7d7;
}
</pre>
<p>เสร็จแล้วก็จะได้ตามรูปนี้ครับ  <a rel="lightbox" href="http://d1zgw3mvfhdrr8.cloudfront.net/wp-content/uploads/2009/08/web4.jpg"><img class="alignnone size-full wp-image-109" title="img" src="http://d1zgw3mvfhdrr8.cloudfront.net/wp-content/uploads/2008/10/img.gif" alt="img" /></a> ไม่สวยเลยใช่มั้ยครับ</p>
<h2>สรุป</h2>
<p>พอทำมาจนจบแล้วหลายคนอาจจะเห็นว่า ไม่เห็นสวยเลย มันดียังไงเนี่ย ห๊ะะะ ที่มันไม่สวยก็เพราะหน้าที่หลักของมันคือใช้สำหรับวางโครงสร้างครับ ข้อดีมันมีมากมายนะครับ</p>
<ul>
<li>เวลาเริ่มทำเว็ปใหม่ จะไม่รู้สึกหัวโล่งๆ คิดอะไรไม่ออก อีกต่อไป เพราะเรามีแบบแผนแล้ว</li>
<li>ปัญหาเรื่องการแสดงผล เรื่องขนาดอักษร และอื่นๆ จะหายไป</li>
<li>มี <a href="http://wiki.github.com/joshuaclayton/blueprint-css/plugins">Plugin </a>ให้เลือกใช้อีกนะครับ เช่น plugin สำหรับแทรกรูปไอคอนต่างๆ</li>
</ul>
<p>เป็นอันว่าจบบทความนี้ครับ มีข้อสงสัยก็คุยกันได้นะครับ อันใหนที่ผมรู้ก็จะบอก อันใหนที่ไม่รู้จะช่วยหามาตอบให้ครับ</p>
<h2>ขอขอบคุณ</h2>
<ul>
<li><a href="http://wiki.github.com/joshuaclayton/blueprint-css/quick-start-tutorial">http://wiki.github.com/joshuaclayton/blueprint-css/quick-start-tutorial</a></li>
<li><a href="http://dontclickonme.com/2009/01/web-development-with-the-gimp-and-blueprint-css/">http://dontclickonme.com/2009/01/web-development-with-the-gimp-and-blueprint-css/</a></li>
</ul>
<img src="http://feeds.feedburner.com/~r/wegrass/~4/i3V18HcvVb4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wegrass.com/knowledge/blue-print-css-framework/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://wegrass.com/knowledge/blue-print-css-framework/</feedburner:origLink></item>
	</channel>
</rss><!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced
Content Delivery Network via Amazon Web Services: CloudFront: d1zgw3mvfhdrr8.cloudfront.net

Served from: wegrass.com @ 2012-02-04 07:26:49 -->

