<?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>DevGrow &#187; Tutorials</title>
	<atom:link href="http://devgrow.com/category/tutorials/feed/" rel="self" type="application/rss+xml" />
	<link>http://devgrow.com</link>
	<description>Tips on web development, web design and online marketing</description>
	<lastBuildDate>Wed, 25 Apr 2012 22:11:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>How To Create a Subscribe Box For Your WordPress Sidebar</title>
		<link>http://devgrow.com/how-to-create-a-subscribe-box-for-your-wordpress-sidebar/</link>
		<comments>http://devgrow.com/how-to-create-a-subscribe-box-for-your-wordpress-sidebar/#comments</comments>
		<pubDate>Fri, 25 Mar 2011 18:53:56 +0000</pubDate>
		<dc:creator>Monjurul Dolon</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[email subscriptions]]></category>
		<category><![CDATA[feedburner]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[sidebar]]></category>
		<category><![CDATA[widgets]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://devgrow.com/?p=2344</guid>
		<description><![CDATA[A few users have asked me how I&#8217;ve created the Subscribe box in the sidebar and some have even called for a WordPress plugin that helps automate it. In reality, it&#8217;s just simple HTML/CSS paired with the Feedburner subscribe code and can be replicated very easily. Let&#8217;s take a look at the code used to [...]]]></description>
			<content:encoded><![CDATA[<p>A few users have asked me how I&#8217;ve created the Subscribe box in the sidebar and some have even called for a WordPress plugin that helps automate it.  In reality, it&#8217;s just simple HTML/CSS paired with the <a href="http://feedburner.google.com/fb/a/emailsyndication">Feedburner subscribe code</a> and can be replicated very easily.  Let&#8217;s take a look at the code used to create it:<span id="more-2344"></span></p>
<div class="downloadBox"><a href="http://demos.devgrow.com/subscribe.zip" class="button download">Download ZIP</a><a href="http://demos.devgrow.com/subscribe/" class="button preview">View Example</a></div>
<p><a href="http://demos.devgrow.com/subscribe/"><img src="http://cdn.devgrow.com/wp-content/uploads/2011/03/subscribe-big.gif" alt="" title="Subscribe Box Example" width="600" height="250" class="aligncenter size-full wp-image-2349" /></a></p>
<h3>The HTML</h3>
<div class="codecolorer-container html4strict blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;widget subscribe&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/ul.html"><span style="color: #000000; font-weight: bold;">ul</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;social&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://feeds.feedburner.com/devgrow&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;rss&quot;</span>&gt;</span>RSS<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.facebook.com/DevGrow&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;facebook&quot;</span>&gt;</span>Facebook<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://twitter.com/ThinkDevGrow&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;twitter&quot;</span>&gt;</span>Twitter<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/ul.html"><span style="color: #000000; font-weight: bold;">ul</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/h3.html"><span style="color: #000000; font-weight: bold;">h3</span></a>&gt;</span>Subscribe<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/h3.html"><span style="color: #000000; font-weight: bold;">h3</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/p.html"><span style="color: #000000; font-weight: bold;">p</span></a>&gt;</span>Join over 2,800 readers and get the latest posts delivered straight to your inbox.<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/p.html"><span style="color: #000000; font-weight: bold;">p</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/form.html"><span style="color: #000000; font-weight: bold;">form</span></a> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;feedburner-subscribe&quot;</span> <span style="color: #000066;">action</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://feedburner.google.com/fb/a/mailverify&quot;</span> <span style="color: #000066;">method</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;post&quot;</span> <span style="color: #000066;">target</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;popupwindow&quot;</span> <span style="color: #000066;">onsubmit</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;window.open('http://feedburner.google.com/fb/a/mailverify?uri=[YourAccount]', 'popupwindow', 'scrollbars=yes,width=550,height=520');return true&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">input</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;email&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;E-mail Address&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;left textfield&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">input</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;[YourAccount]&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;uri&quot;</span><span style="color: #66cc66;">/</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">input</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;loc&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;en_US&quot;</span><span style="color: #66cc66;">/</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">input</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;submit&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Subscribe&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;right button submit&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/form.html"><span style="color: #000000; font-weight: bold;">form</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>The HTML is pretty straightforward, the only thing out of the norm is the <a href="http://feedburner.google.com/fb/a/emailsyndication">Feedburner e-mail widget</a>, which is taken directly from their site.  You can use any service there instead of Feedburner, or use a separate WordPress plugin to handle your subscriptions if you choose.</p>
<h3>The CSS</h3>
<div class="codecolorer-container css blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br /></div></td><td><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; <span style="color: #6666ff;">.widget</span> <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">margin-bottom</span><span style="color: #00AA00;">:</span> <span style="color: #933;">40px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">overflow</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">hidden</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #00AA00;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #6666ff;">.widget</span> h3 <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">22px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">15px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #00AA00;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #6666ff;">.widget</span><span style="color: #6666ff;">.subscribe</span> h3 <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">20px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">600</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#4a7aa3</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #00AA00;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #6666ff;">.subscribe</span> <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#f0f8ff</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">13px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #933;">2px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#d5e7ee</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #00AA00;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #6666ff;">.subscribe</span> form <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #933;">15px</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #00AA00;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #6666ff;">.subscribe</span> input<span style="color: #6666ff;">.textfield</span> <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #933;">2px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#e4e9ef</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #00AA00;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #6666ff;">.subscribe</span> input <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">13px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">4px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #00AA00;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #6666ff;">.subscribe</span> input<span style="color: #6666ff;">.submit</span><span style="color: #6666ff;">.button</span> <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">13px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #933;">2px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#3C6F8F</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#3675A5</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">3px</span> <span style="color: #933;">5px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">white</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">cursor</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">pointer</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">15px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">700</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; -moz-border-radius<span style="color: #00AA00;">:</span> <span style="color: #933;">3px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; -webkit-border-radius<span style="color: #00AA00;">:</span> <span style="color: #933;">3px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; border-radius<span style="color: #00AA00;">:</span> <span style="color: #933;">3px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #00AA00;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #6666ff;">.subscribe</span> input<span style="color: #6666ff;">.submit</span><span style="color: #6666ff;">.button</span><span style="color: #3333ff;">:hover </span><span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#488abc</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #00AA00;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #6666ff;">.subscribe</span> p <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#385c7c</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">13px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">20px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">5px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #00AA00;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #6666ff;">.social</span> <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">right</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #00AA00;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #6666ff;">.social</span> li <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">5px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #00AA00;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #6666ff;">.social</span> li a <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">icons.gif</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">no-repeat</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">block</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">26px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">text-indent</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-999em</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">26px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #00AA00;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #6666ff;">.social</span> li a<span style="color: #6666ff;">.facebook</span> <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">-30px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #00AA00;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #6666ff;">.social</span> li a<span style="color: #6666ff;">.rss</span> <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #00AA00;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #6666ff;">.social</span> li a<span style="color: #6666ff;">.twitter</span> <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">-59px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #00AA00;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #6666ff;">.social</span> li a<span style="color: #3333ff;">:hover </span><span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">relative</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-1px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #00AA00;">&#125;</span></div></td></tr></tbody></table></div>
<p>Please be aware that you need to download the <strong><a href="http://demos.devgrow.com/subscribe/icons.gif">icons.gif</a></strong> file if you want to use the social media links.  I&#8217;ve made it into a sprite for faster loading and convenience and if your subscribe box is wider, you can easily fit a lot of other services there as well.</p>
<h3>Thoughts? Feedback?</h3>
<p>I know this is absurdly simple for a lot of you out there but I&#8217;ve had multiple requests to make the Subscribe box into a separate plugin.  Let me know if the above code is good enough or if you guys really do want me to make it into a plugin, and perhaps to make things uber convenient, I may just do so.</p>
<img src="http://devgrow.com/?ak_action=api_record_view&id=2344&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://devgrow.com/how-to-create-a-subscribe-box-for-your-wordpress-sidebar/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
		<item>
		<title>Using the HTML5 ContentEditable Attribute</title>
		<link>http://devgrow.com/html5-contenteditable-attribute/</link>
		<comments>http://devgrow.com/html5-contenteditable-attribute/#comments</comments>
		<pubDate>Tue, 08 Mar 2011 22:35:37 +0000</pubDate>
		<dc:creator>Monjurul Dolon</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[contenteditable]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[editors]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[wysiwyg]]></category>

		<guid isPermaLink="false">http://devgrow.com/?p=2310</guid>
		<description><![CDATA[I&#8217;ve been trying to utilize HTML5 more recently in a few smaller projects and came across a really cool new attribute: ContentEditable. You can add this attribute to any HTML element and it automatically makes that (and any element within it) editable. Live Example Everything in this paragraph is editable in any modern browser that [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been trying to utilize HTML5 more recently in a few smaller projects and came across a really cool new attribute: ContentEditable.  You can add this attribute to any HTML element and it automatically makes that (and any element within it) editable.</p>
<p><span id="more-2310"></span></p>
<h3>Live Example</h3>
<div style="clear:both;"></div>
<p contenteditable>Everything in this paragraph is editable in any modern browser that supports HTML5.  You should see a grey outline when you mouseover it, indicating that it is editable.  One very cool aspect of this is that it retains the CSS styling from the parent document, so the edited elements will still look correct.</p>
<ul class="edited-list" contenteditable>
<li>Feel free to edit this list element.</li>
<li>Or add more by simply pressing enter after the last list item &#8211; no HTML needed!</li>
</ul>
<p>Chris Coyier of <a href="http://css-tricks.com/show-and-edit-style-element/">CSS-Tricks.com</a> pointed out that you can also let users edit CSS styles and have them update in real-time using the ContentEditable attribute.  Try it out by editing the background color of the above list:</p>
<style contenteditable="">.edited-list { background: lightyellow; }</style>
<h3>Adding the MouseOver Outline</h3>
<p>To create the outline effect on mouseover, I had to add the following line to my CSS stylesheet:</p>
<div class="codecolorer-container css blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #00AA00;">&#91;</span>contenteditable<span style="color: #00AA00;">&#93;</span><span style="color: #3333ff;">:hover </span><span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; &nbsp;<span style="color: #000000; font-weight: bold;">outline</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1px</span> <span style="color: #993333;">dotted</span> <span style="color: #cc00cc;">#ccc</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span></div></td></tr></tbody></table></div>
<p>Obviously this can be styled to your liking and since it&#8217;s just using standard CSS, it&#8217;s possible to do some really creative things with this (I&#8217;ll leave that to your imagination).  As for using the ContentEditable attribute itself, it really is as simple as appending it to any tag like so:</p>
<div class="codecolorer-container html4strict blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;make-me-editable&quot;</span> contenteditable&gt;</span><br />
&nbsp; &nbsp; &nbsp;Any text in this DIV will be editable.<br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span></div></td></tr></tbody></table></div>
<h3>Final Thoughts</h3>
<p>This attribute really opens a lot of doors when <a href="https://www.ibm.com/developerworks/mydeveloperworks/blogs/bobleah/entry/html5_code_example_of_contenteditable_and_localstorage_create_a_web_sticky_note?lang=en">paired with HTML5&#8242;s LocalStorage capabilities</a>.  There&#8217;s also the <a href="http://www.aloha-editor.org/">Aloha Editor</a>, a pure HTML5 WYSIWYG editor that utilizes the ContentEditable attribute and generates a nifty real-time editor.</p>
<p>I&#8217;m really looking forward to the day that the majority of internet users have HTML5 capable browsers so that I can more freely use these cool new features! (hopefully soon, fingers crossed)</p>
<img src="http://devgrow.com/?ak_action=api_record_view&id=2310&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://devgrow.com/html5-contenteditable-attribute/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>How to Properly Quote a Client</title>
		<link>http://devgrow.com/how-to-properly-quote-a-client/</link>
		<comments>http://devgrow.com/how-to-properly-quote-a-client/#comments</comments>
		<pubDate>Thu, 17 Feb 2011 23:22:38 +0000</pubDate>
		<dc:creator>Monjurul Dolon</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[client work]]></category>
		<category><![CDATA[entrepreneurship]]></category>
		<category><![CDATA[estimates]]></category>
		<category><![CDATA[freelancing]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[quotes]]></category>
		<category><![CDATA[sales]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://devgrow.com/?p=2293</guid>
		<description><![CDATA[One problem I used to frequently run into in my earlier days of freelancing was that I&#8217;d give a client a quote, start working on the project and halfway through realize that I was charging way too little for way too much work. I had vastly underestimated the scale of the project. Over the past [...]]]></description>
			<content:encoded><![CDATA[<p>One problem I used to frequently run into in my earlier days of freelancing was that I&#8217;d give a client a quote, start working on the project and halfway through realize that I was charging way too little for way too much work.  I had vastly underestimated the scale of the project.  Over the past year, I&#8217;ve been using a technique that is glaringly obvious but often overlooked when determining what to charge a client.<span id="more-2293"></span></p>
<h3>Step 1. Create An Outline</h3>
<p>This step is rather simple: just write down everything you plan on doing for the project along with how many hours each task will take.  It takes some experience to know how long certain tasks can take to complete, however use your best guess when starting out and refine the estimate as you get more clients.  Here&#8217;s an example of a recent estimate I gave a client for the frontend design of an e-commerce website:</p>
<ul>
<li><strong>Research and Planning &#8211; <em>8 hours </em></strong>
<ul>
<li><strong>Competitive analysis &#8211; <em>6 hours </em></strong>
<ul>
<li>What are immediate online competitors and why would customers go there instead of your site?</li>
<li>What is needed to maximize conversions (visitors to customers) and what user interface elements can help with this?</li>
<li>Which market/audience are catering to and does the current design reflect that?</li>
<li>How can we make the site&#8217;s usability and interface stand out from it&#8217;s competitors?</li>
</ul>
</li>
<li><strong>SEO analysis &#8211; <em>2 hours </em></strong>
<ul>
<li>Review issues in current ranking</li>
<li>Outline steps needed to bring the site to front page of Google</li>
</ul>
</li>
</ul>
</li>
<li><strong>Wireframe mockups of new design &#8211; <em>10 hours </em></strong>
<ul>
<li>4-6 wireframe mockups of design ideas/concepts based on research</li>
<li>Pick a few, reiterate repeatedly until we reach the perfect layout and design</li>
<li>Create mockups for landing page, category page, item page and user pages</li>
</ul>
</li>
<li><strong>Full scale, complete/full-detail Photoshop mockups &#8211; <em>22 hours </em></strong>
<ul>
<li>Based on wireframe mockups, the full-scale mockups feature complete design details (nearly a screenshot) so you know exactly what your site will look like</li>
<li>Reiterate 2-3 best Photoshop mockups until we reach perfect design</li>
</ul>
</li>
<li><strong>Conversion of full-scale mockups to XHTML/CSS/JS (frontend code) &#8211; <em>8 hours </em></strong>
<ul>
<li>Add necessary JavaScript effects and elements, including dynamic content sliders</li>
<li>Verify browser compatibility with IE6-8, Firefox, Chrome, Safari and Opera</li>
</ul>
</li>
</ul>
<p>From this estimate, my client knows that I will be spending 8 hours for doing research on his project, which includes finding out information about his competitors in order to make a strong and competitive interface.  Since he&#8217;s asked for help with SEO, I show him that I will spend 2 hours on it &#8211; note that it&#8217;s not an extraordinary amount of time and that I&#8217;m not doing much out of the ordinary, only helping him understand why his rankings are so low.</p>
<p>In terms of mockups, I make sure to clarify to the client that the time estimates I have given will include multiple reiterations of the mockups &#8211; meaning I go back and forth with the client until we reach a design that is truly what they want.  Outlining exactly what I&#8217;m spending my time on adds a level of trust and comfort that improves the overall experience for both myself and my client.</p>
<h3>2. Get Them To Agree On The Outline</h3>
<p>Without getting into any talk of money, show your client the outline you&#8217;ve made and make sure they agree on it.  Once they acknowledge that it will indeed take you 8 hours to convert the many pages of their site, it&#8217;s hard for them to downplay the overall estimate that you provide.  They know how much work you&#8217;re putting in and they know that it&#8217;s unfair to under-compensate you for time and work.</p>
<h3>3. Negotiate Your Hourly Rate + Deadlines</h3>
<p>Ideally, you tell your client what you charge per hour and they are happy with it.  Unfortunately, ideal clients are a rarity that you shouldn&#8217;t expect.  In most cases, you will have to negotiate your rate, where changing just a few dollars can have a big impact on your overall estimate.  Like making estimations on the amount of time it takes you to do certain tasks, setting a high hourly rate is something that comes with experience and a strong portfolio.  Consider your experiences and the work you&#8217;re doing, then try to set a fair rate for both you and your client.</p>
<p>Since you already have a good idea of what you&#8217;re spending your time on, use that knowledge to set realistic deadlines of when you can give your client deliverables.  For less intensive projects, I prefer sending at least 2 updates per week outside of normal communication.  For more urgent projects, I will typically set smaller deadlines every other day or so.  Strong communication and keeping your client in the loop will only increase their sense of satisfaction from your work and show dedication on your part, which is something they&#8217;ll remember for future work or referrals.</p>
<h3>Why This Works For Me</h3>
<p>I love this overall process because I know exactly what I&#8217;m getting into before my first day of work (surprises are bad when freelancing).  I am able to prepare mentally for each day and for each task I&#8217;ll be working on, which helps keep me organized and on top of work.  Using this technique, I&#8217;ve noticed that I meet nearly all of my deadlines and end up getting paid more than when I used to quote somewhat blindly.  It&#8217;s basically a win-win for both parties involved.</p>
<p><strong>Are you guys doing something similar to this?  How do you come up with your estimates for freelance work?</strong></p>
<img src="http://devgrow.com/?ak_action=api_record_view&id=2293&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://devgrow.com/how-to-properly-quote-a-client/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>3 Tips to Improve Your Blog&#8217;s Usability</title>
		<link>http://devgrow.com/3-tips-to-improve-your-blogs-usability/</link>
		<comments>http://devgrow.com/3-tips-to-improve-your-blogs-usability/#comments</comments>
		<pubDate>Wed, 05 Jan 2011 01:34:37 +0000</pubDate>
		<dc:creator>Monjurul Dolon</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[tips and tricks]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://devgrow.com/?p=2145</guid>
		<description><![CDATA[Usability can be defined as the overall user-friendliness and ease of use of your website or product. Having a usable blog means less frustration for your readers, which in turn improves their overall experience, user retention and conversions. Just a few small changes to your blog can have a meaningful impact on usability. In order [...]]]></description>
			<content:encoded><![CDATA[<p>Usability can be defined as the overall user-friendliness and ease of use of your website or product.  Having a usable blog means less frustration for your readers, which in turn improves their overall experience, user retention and conversions.  Just a few small changes to your blog can have a meaningful impact on usability.<span id="more-2145"></span></p>
<p>In order to better understand these suggestions, you should try to see your blog from the perspective of a completely average visitor.  Try to imagine what your readers see and answer these basic questions:</p>
<ul>
<li>Why do your visitors go to your blog in the first place?</li>
<li>Can you view the actual content of your blog without feeling distracted?</li>
<li>Take a step back from your screen.  Does your blog look/feel overwhelming in terms of information being presented?</li>
<li>Is reading a post on your blog an enjoyable experience that you&#8217;d be willing to repeat?</li>
</ul>
<p>The great thing about usability is that often times, simple changes can have a relatively big impact on user experience.  The following ideas are what drove the current redesign of <a href="http://devgrow.com/">DevGrow.com</a>, one that has helped improved reader engagement and participation.</p>
<h2>1. If it&#8217;s not critical, get rid of it</h2>
<p>We live in a world of information and sensory overload.  Everywhere you go you are being fed tons of data, some of it important to the task/topic at hand and a lot of it fairly extraneous.  Websites are no exception &#8211; many feature a wealth of information that can often overwhelm readers, which can increase bounce rates and reduce conversions.</p>
<p>Because we are used to seeing so much information on most websites, it can be pretty difficult to remove things from your own blog.  Remember to think of it in terms of your reader &#8211; what do they want to see?  Take a look at the following screenshot, which shows the DevGrow header before and after the current redesign:</p>
<p><img src="http://cdn.devgrow.com/wp-content/uploads/2011/01/before-after.gif" alt="" title="DevGrow.com Before and After" width="600" height="300" class="aligncenter size-full wp-image-2176" /></p>
<p>If the image is hard to follow, currently the <a href="http://devgrow.com/discuss">discussion forums</a> part of the site is still using the old header &#8211; compare that to the header on this post to get an idea of what has changed.</p>
<p>The old design had navigational links in the header, footer and sometimes even in the sidebar &#8211; this was overkill for the majority of readers.  It also had links to sign up or login, which most users typically don&#8217;t have to do unless they&#8217;re in the forum.  They were just adding to the clutter and causing unnecessary distraction away from the content which, for most blogs, is really the only part of the site readers really care about.  This is not to say that you should remove all navigation elements or other portions of your site, rather take a look at objects that are repeated throughout your design and reevaluate their necessity.</p>
<h2>2. Focus on typography</h2>
<p>Blogs are all about the content, so it only makes sense to make sure your typography is reader-friendly.  You don&#8217;t have to necessarily use a larger font size or particular font family to improve typography, instead focus on making sure your content is clear and legible to the majority of your users.  Content is key but also worthless if your visitors have a difficult time reading it.</p>
<p>The following are a list of resources that discuss typography and it&#8217;s usage on the web:</p>
<ul>
<li><a href="http://www.alistapart.com/articles/on-web-typography/">A List Apart: Articles on Web Typography</a></li>
<li><a href="http://www.yourhtmlsource.com/text/webtypography.html">An Introduction to Web Typography</a></li>
<li><a href="http://www.motive.co.nz/guides/typography/webfonts.php">Web Typography Guide</a></li>
<li><a href="http://www.webmonkey.com/2010/02/web_typography_tutorial_-_lesson_1/">Web Typography Tutorial – Lesson 1</a></li>
<li><a href="http://code.google.com/webfonts/preview#font-family=Allan">Google Font Previewer</a> and <a href="http://code.google.com/webfonts">Google Font Directory</a></li>
</ul>
<h2>3. Utilize white space</h2>
<p>Effective use of white space can also help improve usability, as it can increase focus to your content type.  There are several things you can do to better utilize white space on your blog, including:</p>
<ul>
<li>Increase the content margins/paddings to give your post a greater degree of separation from your sidebar and/or navigation</li>
<li>Increase your paragraph line-height property, which both increases legibility and gives the feeling of added white space</li>
<li>Increase the spacings between your posts, comments, lists and other elements</li>
</ul>
<p>Obviously, all adjustments to your margins and padding should be done with moderation and careful consideration.  Keep in mind that while your goal is to improve the overall experience and readability of your blog, you do not want to hinder other sections and important bits of your site either (like navigation).</p>
<p>The following sites make great use of white space in their designs that forces the reader to focus in on content:</p>
<div id="attachment_2172" class="wp-caption floating" style="width: 610px"><a href="http://www.awayback.com/"><img src="http://cdn.devgrow.com/wp-content/uploads/2011/01/awayback.gif" alt="" title="A Way Back" width="600" height="400" class="with-caption aligncenter boxed size-full wp-image-2172" /></a><p class="wp-caption-text">A Way Back</p></div>
<div id="attachment_2175" class="wp-caption floating" style="width: 610px"><a href="http://www.webdesignledger.com/"><img src="http://cdn.devgrow.com/wp-content/uploads/2011/01/webdesignledger.gif" alt="" title="Web Design Ledger" width="600" height="400" class="with-caption aligncenter boxed size-full wp-image-2175" /></a><p class="wp-caption-text">Web Design Ledger</p></div>
<div id="attachment_2174" class="wp-caption floating" style="width: 610px"><a href="http://usabilitypost.com/"><img src="http://cdn.devgrow.com/wp-content/uploads/2011/01/usabilitypost.gif" alt="" title="Usability Post" width="600" height="400" class="with-caption aligncenter boxed size-full wp-image-2174" /></a><p class="wp-caption-text">Usability Post</p></div>
<div id="attachment_2173" class="wp-caption floating" style="width: 610px"><a href="http://www.bearded.com/blog"><img src="http://cdn.devgrow.com/wp-content/uploads/2011/01/bearded.gif" alt="" title="Bearded Studio Blog" width="600" height="400" class="with-caption aligncenter boxed size-full wp-image-2173" /></a><p class="wp-caption-text">Bearded Studio Blog</p></div>
<h2>Conclusion</h2>
<p>In all honesty, the above is really a minimalistic approach to improving usability.  I&#8217;ve found these methods to be the simplest and quickest to apply to an existing website, since it basically involves reducing and refining existing elements.  If you have suggestions for improving your blog&#8217;s usability and overall user experience, let me know in the comments!</p>
<p>Lastly, please consider subscribing to the <a href="http://feeds.feedburner.com/devgrow">RSS feed</a> (or use the handy form in the sidebar) and <a href="http://twitter.com/ThinkDevGrow">follow us on Twitter</a>.</p>
<img src="http://devgrow.com/?ak_action=api_record_view&id=2145&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://devgrow.com/3-tips-to-improve-your-blogs-usability/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How To Load Social Media Buttons After Everything Else</title>
		<link>http://devgrow.com/loading-social-media-buttons-after-everything-else/</link>
		<comments>http://devgrow.com/loading-social-media-buttons-after-everything-else/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 19:57:47 +0000</pubDate>
		<dc:creator>Monjurul Dolon</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[share buttons]]></category>
		<category><![CDATA[sharebar]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://devgrow.com/?p=2146</guid>
		<description><![CDATA[While working on the new theme for this site, I realized that the various social media buttons I use were making the entire page load considerably slower. As soon as the browser hit that region of the page (the end of each post), everything would stop until those pesky buttons were loaded. Using a little [...]]]></description>
			<content:encoded><![CDATA[<p>While working on the new theme for this site, I realized that the various social media buttons I use were making the entire page load considerably slower.  As soon as the browser hit that region of the page (the end of each post), everything would stop until those pesky buttons were loaded.  Using a little bit of jQuery, however, it&#8217;s possible to get around this and load these heavier elements after the rest of the page has finished loading.<span id="more-2146"></span></p>
<h2>The Code</h2>
<p>In order to load the share buttons after everything else, we need to do two things.  First, we need to edit our post template (<code class="codecolorer text geshi"><span class="text">single.php</span></code>) to call a jQuery function <em>after</em> everything has loaded.  We call this function in <code class="codecolorer text geshi"><span class="text">single.php</span></code> instead of an external JavaScript file since some buttons benefit from the post permalink or title, so we need to make sure our buttons have access to that information as well.</p>
<h3>single.php</h3>
<div class="codecolorer-container html4strict blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">script</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;</span><br />
&nbsp; &nbsp; function get_social(permalink,title){<br />
&nbsp; &nbsp; &nbsp; &nbsp; var url = 'share.php';<br />
&nbsp; &nbsp; &nbsp; &nbsp; $('#sharing-buttons').load(url,{permalink:permalink,title:title});<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; $(window).bind(&quot;load&quot;, function() {<br />
&nbsp; &nbsp; &nbsp; &nbsp; get_social('<span style="color: #009900;">&lt;?php the_permalink<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> ?&gt;</span>','<span style="color: #009900;">&lt;?php the_title<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>; ?&gt;</span>');<br />
&nbsp; &nbsp; });<br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">script</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;sharing-buttons&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>In the code above, we&#8217;re calling the function <code class="codecolorer text geshi"><span class="text">get_social</span></code> using jQuery&#8217;s <a href="http://api.jquery.com/ready/">window load</a> function instead of the typical document ready &#8211; this makes means our function is called after everything has loaded, whereas document ready loads all code immediately after the DOM is ready.  Inside the window load event, we call our function and pass the title and permalink so our buttons have access to it.</p>
<p>In the <code class="codecolorer text geshi"><span class="text">get_social</span></code> function itself, we can use jQuery&#8217;s load function to pass our variables, get the response and populate or <code class="codecolorer text geshi"><span class="text">div</span></code> (with the id of &#8220;sharing-buttons&#8221;).  Please be sure to point to the correct URL of your share.php file (which we&#8217;ll create next) &#8211; you may even want to use the absolute URL to minimize errors (ie http://&#8230;).</p>
<h3>share.php</h3>
<p>The <code class="codecolorer text geshi"><span class="text">share.php</span></code> simply contains all of your dynamic button code.  Here&#8217;s what mine looks like:</p>
<div class="codecolorer-container html4strict blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;?php</span><br />
<span style="color: #009900;">&nbsp; &nbsp; $permalink <span style="color: #66cc66;">=</span> $_GET<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'permalink'</span><span style="color: #66cc66;">&#93;</span> ? $_GET<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'permalink'</span><span style="color: #66cc66;">&#93;</span> : $_POST<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'permalink'</span><span style="color: #66cc66;">&#93;</span>;</span><br />
<span style="color: #009900;">&nbsp; &nbsp; $title <span style="color: #66cc66;">=</span> $_GET<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'title'</span><span style="color: #66cc66;">&#93;</span> ? $_GET<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'title'</span><span style="color: #66cc66;">&#93;</span> : $_POST<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'title'</span><span style="color: #66cc66;">&#93;</span>;</span><br />
<span style="color: #009900;">?&gt;</span><br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;digg&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">script</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; (function() {<br />
&nbsp; &nbsp; &nbsp; &nbsp; var s = document.createElement('SCRIPT'), s1 = document.getElementsByTagName('SCRIPT')[0];<br />
&nbsp; &nbsp; &nbsp; &nbsp; s.type = 'text/javascript';<br />
&nbsp; &nbsp; &nbsp; &nbsp; s.async = true;<br />
&nbsp; &nbsp; &nbsp; &nbsp; s.src = 'http://widgets.digg.com/buttons.js';<br />
&nbsp; &nbsp; &nbsp; &nbsp; s1.parentNode.insertBefore(s, s1);<br />
&nbsp; &nbsp; &nbsp; &nbsp; })();<br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">script</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;DiggThisButton DiggMedium&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;fb-share&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;fb_share&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;box_count&quot;</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.facebook.com/sharer.php&quot;</span>&gt;</span>Share<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a>&gt;&lt;<a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">script</span></a> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://static.ak.fbcdn.net/connect.php/js/FB.Share&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">script</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;tweet&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://twitter.com/share&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;twitter-share-button&quot;</span> data-count<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;vertical&quot;</span> data-via<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;ThinkDevGrow&quot;</span>&gt;</span>Tweet<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a>&gt;&lt;<a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">script</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://platform.twitter.com/widgets.js&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">script</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>In the beginning, I grab the permalink and title variables from either <code class="codecolorer text geshi"><span class="text">$_GET</span></code> or <code class="codecolorer text geshi"><span class="text">$_POST</span></code> (a bit more future-proof in case our function changes) and use the default button codes provided by these services.  Note that I don&#8217;t use the permalink or title in any of the above buttons, as these services automatically detect that information from whatever page they&#8217;re posted on, however it&#8217;s there if you need it!</p>
<p>That should be it though &#8211; if you edited your <code class="codecolorer text geshi"><span class="text">single.php</span></code> and correctly point to your <code class="codecolorer text geshi"><span class="text">share.php</span></code> file in the <code class="codecolorer text geshi"><span class="text">get_social</span></code> function, you should be loading your buttons after the rest of the page is completely loaded!</p>
<h2>See It In Action</h2>
<p>The current DevGrow theme (v3) is using this code in every post.  To see it, go to any article posted on this site and immediately scroll to the &#8216;Share this Article&#8217; section.  You should just see the small icons (RSS, email, reddit, etc.) until the entire page has finished loading, after which 3 additional buttons (Digg, Facebook and Twitter) should pop up above it.  If you take too long to scroll there you may end up missing it but keep an eye on your status bar &#8211; you should see the buttons loaded only after the rest of the page has finished loading.</p>
<h2>Caveats and Conclusion</h2>
<p>While working on this, I found that <strong>some buttons did not function correctly when loaded this way</strong>, such as the one for <a href="http://www.dzone.com/links/index.html">DZone</a>.  I didn&#8217;t spend too much time trying to figure out why but I assume it has to do with the way their button code extracts the host URL, which it may have had difficulty with since it was being loaded from an external file.  While it would&#8217;ve been nice to include that button, I found that having a faster loading site is much more important to me than any single service.</p>
<p>Also, please keep in mind that this won&#8217;t really change your overall page loading times &#8211; it will only make it so that the rest of the site is loaded before the social media buttons.  It&#8217;s useful if you find these buttons to be slow at times and parts of your page render white/blank until they&#8217;re finished loading, which is the issue I was having.</p>
<p>Are any of you doing something similar to this in order to load your content a little faster?  Anyone know why the DZone button isn&#8217;t working or know how to fix it?</p>
<img src="http://devgrow.com/?ak_action=api_record_view&id=2146&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://devgrow.com/loading-social-media-buttons-after-everything-else/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>How I Create Websites: A Look Inside the Creative Process</title>
		<link>http://devgrow.com/how-i-create-websites-a-look-inside-the-creative-process/</link>
		<comments>http://devgrow.com/how-i-create-websites-a-look-inside-the-creative-process/#comments</comments>
		<pubDate>Thu, 11 Nov 2010 21:54:08 +0000</pubDate>
		<dc:creator>Monjurul Dolon</dc:creator>
				<category><![CDATA[Resources]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[creative]]></category>
		<category><![CDATA[creative process]]></category>
		<category><![CDATA[mockups]]></category>
		<category><![CDATA[photoshop]]></category>
		<category><![CDATA[redesign]]></category>

		<guid isPermaLink="false">http://devgrow.com/?p=1959</guid>
		<description><![CDATA[Last week, a friend of mine who recently started freelancing asked me to elaborate on my personal web design process. I&#8217;ve been doing client work for years and now have essentially a standard routine when working on a new project. It goes something like this: 1. Understand the Project The first step is to know [...]]]></description>
			<content:encoded><![CDATA[<p>Last week, a friend of mine who recently started freelancing asked me to elaborate on my personal web design process.  I&#8217;ve been doing client work for years and now have essentially a standard routine when working on a new project.  It goes something like this:<span id="more-1959"></span></p>
<h3>1. Understand the Project</h3>
<p>The first step is to know what you&#8217;re making inside and out.  For every freelance project I work on, I try to understand what it is the client wants, who they are targeting and what role this website will play in their business.  It&#8217;s important to get a clear understanding of these concepts in order to create a product that satisfies the client, the target market and you, the designer/developer, as you should always want to create something you can be proud of.</p>
<p>Nearly every project requires doing some research prior to beginning the design process.  I usually ask the client for a short list of competitors from which to start with, from which I identify the strong and weak points (used later to refine the design).  I also ask for a list of websites the client admires and likes &#8211; this helps to get an idea of the design style that will reflect their personality and in the end result in a overall happy client.  A bit of psychology 101 but if you use some of the underlying influences of the sites they like in your design work, they will hopefully make a link subconsciously and like your work too (familiarity-induced liking).</p>
<h3>2. Brainstorm</h3>
<p>After I have a thorough understanding of the project, the target market and what the client wants, I start to brainstorm features and elements that will be used.  This usually means quick lists of features per page, like so:</p>
<ul>
<li>Homepage
<ul>
<li>Login Box</li>
<li>Top 5 News (blog posts)</li>
<li>Top 5 Discussions (from Newsboard)</li>
<li>Newsboard (latest posts)</li>
</ul>
</li>
<li>Profile Page
<ul>
<li>User Info [name, bio, DOB, gender, joined date, #posts]</li>
<li>Profile pic</li>
<li>Commenting/Wall</li>
<li>Friends</li>
</ul>
</li>
<li>Every Page
<ul>
<li>Header + Footer + Nav</li>
<li>Left Nav with icon links</li>
<li>Top leaderboard ad</li>
</ul>
</li>
<li>Etc..</li>
</ul>
<p>This kind of list doesn&#8217;t have to be that in-depth, it&#8217;s used just to help you formulate ideas for the next step.</p>
<h3>3. Sketch it Out</h3>
<p>Using the list of features and elements I need, I take out a sheet of paper and create a rough sketch of the each of the main sections of the website.  The sketches don&#8217;t have to be polished or too accurate, they are just meant to provide direction for element positioning.  If at all possible, I will sit with my client and do it together with them, as this helps eliminate many future iterations in the actual mockup phase of the design.  Here&#8217;s a sketch a client and I created for a project a few months ago:<br />
<img src="http://cdn.devgrow.com/wp-content/uploads/2010/11/sketch.jpg" alt="" title="Sketch" width="600" height="475" class="aligncenter size-full wp-image-2007" /><br />
In fact, this sketch was mainly done by the client himself, laying out where he wanted certain elements to be in relation to each other.  Most clients will not have this much foresight on content placement and you will likely end up having to do the bulk of it yourself.  If you come to an understanding on this sketch with your client you can focus on polishing the real mockup rather than worrying about placement.</p>
<h3>4. Photoshop Mockups</h3>
<p>Once the paper sketch is done, I open up Photoshop and create a complete mockup.  When I say complete mockup, I mean I reproduce the main pages of the website (homepage, generic page, forum page, etc.) in it&#8217;s entirety, with correct fonts, stylings, features, content placement, etc.  It not only helps me visualize what I will be coding but also keeps the design process somewhat relaxed and enjoyable, at least for me.  I use tons of guides to help get the dimensions of elements correct and also try to keep everything organized into multiple folders.  Sometimes I will have multiple pages in one PSD (under multiple hidden folders), sometimes I split them up into separate PSDs &#8211; it all depends on how many elements are being reused throughout the site.</p>
<p>After creating the initial mockup, I send it to the client for review and then implement his suggested changes.  This process repeats several times until we&#8217;re both satisfied with the end result.  Here are a few of the mockups for the project from the sketch above:<br />
<img src="http://cdn.devgrow.com/wp-content/uploads/2010/11/reiterate.jpg" alt="" title="Iteratations" width="600" height="300" class="aligncenter size-full wp-image-2006" /><br />
I skipped a few in the image above but there were more than 10 different variations and iterations of the mockup, with the final product looking more like this:<br />
<img src="http://cdn.devgrow.com/wp-content/uploads/2010/11/final.jpg" alt="" title="Final Mockup" width="600" height="300" class="aligncenter size-full wp-image-2005" /></p>
<h3>5. HTML/CSS/JS</h3>
<p>From the mockups, I open up Notepad++ if I&#8217;m on my Windows 7 desktop or Textmate if I&#8217;m on a Mac and begin the coding process.  I usually start with a standard group of files, which include:</p>
<ul class="directory">
<li class="folder">css
<ul>
<li class="file">reset.css</li>
<li class="file">main.css</li>
</ul>
</li>
<li class="folder">images</li>
<li class="folder">js
<ul>
<li class="file">functions.js</li>
</ul>
</li>
<li class="file">index.html</li>
</ul>
<p>In the <code class="codecolorer text geshi"><span class="text">reset.css</span></code> file, I usually stick in either <a href="http://meyerweb.com/eric/tools/css/reset/">Eric Meyer&#8217;s CSS Reset</a> or this simpler one I found a while back (can&#8217;t remember where now):</p>
<div class="codecolorer-container css blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">body<span style="color: #00AA00;">,</span>div<span style="color: #00AA00;">,</span>dl<span style="color: #00AA00;">,</span>dt<span style="color: #00AA00;">,</span>dd<span style="color: #00AA00;">,</span>ul<span style="color: #00AA00;">,</span>ol<span style="color: #00AA00;">,</span>li<span style="color: #00AA00;">,</span>h1<span style="color: #00AA00;">,</span>h2<span style="color: #00AA00;">,</span>h3<span style="color: #00AA00;">,</span>h4<span style="color: #00AA00;">,</span>h5<span style="color: #00AA00;">,</span>h6<span style="color: #00AA00;">,</span>pre<span style="color: #00AA00;">,</span>form<span style="color: #00AA00;">,</span>fieldset<span style="color: #00AA00;">,</span>input<span style="color: #00AA00;">,</span>textarea<span style="color: #00AA00;">,</span>p<span style="color: #00AA00;">,</span>blockquote<span style="color: #00AA00;">,</span>th<span style="color: #00AA00;">,</span>td <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span><br />
table <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">border-collapse</span><span style="color: #00AA00;">:</span><span style="color: #993333;">collapse</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">border-spacing</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span><br />
fieldset<span style="color: #00AA00;">,</span>img <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span><br />
address<span style="color: #00AA00;">,</span>caption<span style="color: #00AA00;">,</span>cite<span style="color: #00AA00;">,</span>code<span style="color: #00AA00;">,</span>dfn<span style="color: #00AA00;">,</span>em<span style="color: #00AA00;">,</span>strong<span style="color: #00AA00;">,</span>th<span style="color: #00AA00;">,</span>var <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">font-style</span><span style="color: #00AA00;">:</span><span style="color: #993333;">normal</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span><span style="color: #993333;">normal</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span><br />
ol<span style="color: #00AA00;">,</span>ul <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">list-style</span><span style="color: #00AA00;">:</span><span style="color: #993333;">none</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span><br />
caption<span style="color: #00AA00;">,</span>th <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span><span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span><br />
h1<span style="color: #00AA00;">,</span>h2<span style="color: #00AA00;">,</span>h3<span style="color: #00AA00;">,</span>h4<span style="color: #00AA00;">,</span>h5<span style="color: #00AA00;">,</span>h6 <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span><span style="color: #933;">100%</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span><span style="color: #993333;">normal</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span><br />
q<span style="color: #3333ff;">:before</span><span style="color: #00AA00;">,</span>q<span style="color: #3333ff;">:after </span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span><span style="color: #ff0000;">''</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span><br />
abbr<span style="color: #00AA00;">,</span>acronym <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span></div></td></tr></tbody></table></div>
<p>In terms of converting the Photoshop mockup to HTML, I usually work in this order:</p>
<ol>
<li>Main background</li>
<li>Body wraps to center main content if needed</li>
<li>Header and/or top navigation, then logo and main navigation bar</li>
<li>Sidebar block (in HTML before content block, has float property assigned)</li>
<li>Content block (after sidebar, no float and with padding equal to sidebar width + margin)</li>
<li>Footer</li>
</ol>
<p>I try to finalize each element as I progress down the page, adding the necessary images and styles as I go along.  The images are sliced directly from Photoshop (this is where layering and putting things in folders comes in handy) and are called from the CSS file unless I absolutely need it in the HTML (or unless it&#8217;s dynamic).  Recently, I&#8217;ve been trying to keep images down to an absolute minimum as they can slow your pages, so I&#8217;ll try to use CSS for whatever I can, including rounding corners and glow/shadow effects (taking a slight compatibility hit).  I&#8217;ll also be continuously checking the HTML file in Firefox, Internet Explorer and Chrome during this entire process to make sure everything looks okay (and occasionally Safari and Opera as well).</p>
<p>Here are the files I delivered to the client for the project we&#8217;ve been following:</p>
<ul class="directory">
<li class="folder">css
<ul>
<li class="file"><a href="http://cdn.devgrow.com/examples/ewrestlingnews/css/framework.css">framework.css</a></li>
<li class="file"><a href="http://cdn.devgrow.com/examples/ewrestlingnews/tipsy.css">tipsy.css</a></li>
</ul>
</li>
<li class="folder">images
<ul>
<li class="file">Multiple images&#8230;</li>
</ul>
</li>
<li class="folder">js
<ul>
<li class="file"><a href="http://cdn.devgrow.com/examples/ewrestlingnews/js/functions.js">functions.js</a></li>
<li class="file"><a href="http://cdn.devgrow.com/examples/ewrestlingnews/js/jquery.js">jquery.js</a></li>
<li class="file"><a href="http://cdn.devgrow.com/examples/ewrestlingnews/js/jquery.tipsy.js">jquery.tipsy.js</a></li>
</ul>
</li>
<li class="file"><a href="http://cdn.devgrow.com/examples/ewrestlingnews/elements.html">elements.html</a></li>
<li class="file"><a href="http://cdn.devgrow.com/examples/ewrestlingnews/index.html">index.html</a></li>
<li class="file"><a href="http://cdn.devgrow.com/examples/ewrestlingnews/just-top.html">just-top.html</a></li>
<li class="file"><a href="http://cdn.devgrow.com/examples/ewrestlingnews/page.html">page.html</a></li>
<li class="file"><a href="http://cdn.devgrow.com/examples/ewrestlingnews/page2.html">page2.html</a></li>
<li class="file"><a href="http://cdn.devgrow.com/examples/ewrestlingnews/page3.html">page3.html</a></li>
</ul>
<h3>6. Backend Development</h3>
<p>After the main HTML/CSS/JS framework is complete for the main sections of the website, I&#8217;ll begin any backend development necessary.  Since this relies so much on what the client wants, I&#8217;m not going to get into it much here.  Just make sure to use the absolute minimal code possible in order to keep things fast and CPU-friendly.</p>
<h2>Conclusion</h2>
<p>All web designers and developers have a unique process in which they complete projects, the above outlines the one I most commonly use.  I may have left out a couple of things here and there but it covers the overall big picture of how I get things done.  The project covered in this post was for the redesign of <a href="http://ewrestlingnews.com/">eWrestlingNews.com</a> &#8211; I was responsible only for the HTML/CSS portion of the site while a developer handled the backend.  As you can see, even the final design I submitted ended up changing a bit to the client&#8217;s liking.</p>
<h5>What is your creative process like?  Do you work in the same way I do?  Leave your feedback in the comments below.</h5>
<p>And as always, <a href="http://twitter.com/ThinkDevGrow">follow me on Twitter</a> and <a href="http://feeds.feedburner.com/devgrow">subscribe to the RSS feed</a> for more articles like this!</p>
<img src="http://devgrow.com/?ak_action=api_record_view&id=1959&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://devgrow.com/how-i-create-websites-a-look-inside-the-creative-process/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Mobile Web Development Part 2: Creating a Simple App Using jQuery Mobile</title>
		<link>http://devgrow.com/mobile-web-dev-using-jquery-mobile/</link>
		<comments>http://devgrow.com/mobile-web-dev-using-jquery-mobile/#comments</comments>
		<pubDate>Thu, 21 Oct 2010 18:53:53 +0000</pubDate>
		<dc:creator>Monjurul Dolon</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[jquery mobile]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[mobile development]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://devgrow.com/?p=1924</guid>
		<description><![CDATA[This past weekend, John Resig (creator of jQuery) announced the release of the alpha version of <a href="http://jquerymobile.com/">jQuery Mobile</a>, a simple and lightweight JavaScript framework for mobile web development.  In this article, we'll take a look at how easy it is to create a simple mobile website using framework, complete with dynamic (AJAX) page loading, iOS-style design and slick page transitions.]]></description>
			<content:encoded><![CDATA[<div class="note">
I&#8217;ve released an update to my jQuery Mobile PHP MVC Framework, check out the <a href="http://devgrow.com/updated-jquery-mobile-php-mvc-framework/">blog post</a> for details and to download it!
</div>
<p>This past weekend, John Resig (creator of jQuery) announced the release of the alpha version of <a href="http://jquerymobile.com/">jQuery Mobile</a>, a simple and lightweight JavaScript framework for mobile web development.  In this article, we&#8217;ll take a look at how easy it is to create a simple mobile website using framework, complete with dynamic (AJAX) page loading, iOS-style design and slick page transitions.<span id="more-1924"></span></p>
<h2>Download</h2>
<div class="downloadBox"><a href="http://devgrow.com/examples/jquerymobile/jquerymobile.zip" class="button download">Download Example (zip)</a><a href="http://devgrow.com/examples/jquerymobile/" class="button preview">View Online</a></div>
<p><a href="http://devgrow.com/examples/jquerymobile/"><img src="http://cdn.devgrow.com/wp-content/uploads/2010/10/mobile-dev2-screenshot.png" alt="" title="jQuery Mobile Example" width="600" height="285" class="aligncenter size-full wp-image-1829" /></a></p>
<h2>How to Use jQuery Mobile</h2>
<p>jQuery Mobile is incredibly easy to use, just include the jQuery Mobile files in your header and add a few <code class="codecolorer text geshi"><span class="text">data</span></code> attributes to your markup and you&#8217;re set.  All of the styling is handled by jQuery and the included CSS file, so you can literally create a complete mobile webpage in minutes.  In the example below, we&#8217;ll create a simple page that loads internal links using a variety of transition effects.  The first few steps will outline the generic usage of jQuery Mobile while the rest will take a look at the specific elements used in the demo.</p>
<h5>Step 1. Include the jQuery Mobile Files in Header</h5>
<p>This step is pretty self-explanatory: just include the framework files.  You can download them from the jQuery Mobile site or load the files directly from their site/CDN, which will reduce bandwidth costs and keep your website speedy.</p>
<div class="codecolorer-container html4strict blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/link.html"><span style="color: #000000; font-weight: bold;">link</span></a> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;stylesheet&quot;</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.css&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span> &nbsp;<br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">script</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://code.jquery.com/jquery-1.4.3.min.js&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">script</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">script</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.js&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">script</span></a>&gt;</span></div></td></tr></tbody></table></div>
<h5>Step 2. Use data attribute in HTML markup</h5>
<p>Apply <code class="codecolorer text geshi"><span class="text">data</span></code> attribute tags to your HTML, where <em>n</em> is the available feature you want to set, for example:</p>
<div class="codecolorer-container html4strict blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> data-role<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;page&quot;</span> data-theme<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;b&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> data-role<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;header&quot;</span> data-theme<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;b&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/h1.html"><span style="color: #000000; font-weight: bold;">h1</span></a>&gt;</span>My Site<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/h1.html"><span style="color: #000000; font-weight: bold;">h1</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> data-role<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;content&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/ul.html"><span style="color: #000000; font-weight: bold;">ul</span></a> data-role<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;listview&quot;</span> data-inset<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;true&quot;</span> data-theme<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;c&quot;</span> data-dividertheme<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;a&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a> data-role<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;list-divider&quot;</span>&gt;</span>Transition Effects<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;effects.php?id=slide&quot;</span> data-transition<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;slide&quot;</span>&gt;</span>Slide<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;effects.php?id=slideup&quot;</span> data-transition<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;slideup&quot;</span>&gt;</span>Slide Up<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;effects.php?id=slidedown&quot;</span> data-transition<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;slidedown&quot;</span>&gt;</span>Slide Down<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;effects.php?id=pop&quot;</span> data-transition<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;pop&quot;</span>&gt;</span>Pop<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;effects.php?id=flip&quot;</span> data-transition<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;flip&quot;</span>&gt;</span>Flip<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;effects.php?id=fade&quot;</span> data-transition<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;fade&quot;</span>&gt;</span>Fade<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/ul.html"><span style="color: #000000; font-weight: bold;">ul</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/br.html"><span style="color: #000000; font-weight: bold;">br</span></a> <span style="color: #66cc66;">/</span>&gt;&lt;<a href="http://december.com/html/4/element/br.html"><span style="color: #000000; font-weight: bold;">br</span></a> <span style="color: #66cc66;">/</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/ul.html"><span style="color: #000000; font-weight: bold;">ul</span></a> data-role<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;listview&quot;</span> data-dividertheme<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;e&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a> data-role<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;list-divider&quot;</span>&gt;</span>Seamless List (margin-less)<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span> data-transition<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;slide&quot;</span>&gt;</span>Example Item 1<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span> data-transition<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;slide&quot;</span>&gt;</span>Example Item 2<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span> data-transition<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;slide&quot;</span>&gt;</span>Example Item 3<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/ul.html"><span style="color: #000000; font-weight: bold;">ul</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> data-role<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;footer&quot;</span> data-position<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;fixed&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/h1.html"><span style="color: #000000; font-weight: bold;">h1</span></a>&gt;</span><span style="color: #ddbb00;">&amp;copy;</span> Copyright Info or Site URL<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/h1.html"><span style="color: #000000; font-weight: bold;">h1</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>The <code class="codecolorer text geshi"><span class="text">data-role</span></code> element specifies which DIV/block should be used for the header, footer and content, all of which are inside the main <em>page</em> wrapper.  Here are the <code class="codecolorer text geshi"><span class="text">data</span></code> attributes used in this example:</p>
<ul>
<li><strong>data-role</strong> &#8211; specifies the nature of the wrapper element, can be set to: <em>page</em>, <em>header</em>, <em>content</em>, <em>footer</em>.  Two other settings were used in the example to indicate list elements and list dividers, for which the attribute was set to: <em>listview</em> for the main list element and <em>list-divider</em> for the list divider.  There are a few other available settings, including <em>collapsible</em>, which creates a collapsible/show-hide block (<a href="http://jquerymobile.com/demos/1.0a1/#docs/content/content-collapsible.html">more info</a>).</li>
<li><strong>data-position</strong> &#8211; specifies whether the element should be <em>fixed</em>, in which case it will render at the top (for header) or bottom (for footer)</li>
<li><strong>data-inset</strong> &#8211; specifies whether element should be within content margins or outside of it (flush or with margin) &#8211; set to <em>true</em> or <em>false</em></li>
<li><strong>data-transition</strong> &#8211; specifies which transition to use when loading new pages, can be set to: <em>slide</em>, <em>slideup</em>, <em>slidedown</em>, <em>pop</em>, <em>flip</em> or <em>fade</em></li>
<li><strong>data-theme</strong> &#8211; specifies which design theme to use for elements within container, can be set to: <em>a</em>, <em>b</em>, <em>c</em>, <em>d</em>, <em>e</em></li>
<li><strong>data-dividertheme</strong> &#8211; specifies the theme for the list dividers using same options as <strong>data-theme</strong></li>
</ul>
<h5>Step 3. Add content and publish online!</h5>
<p>Using the above example, the <a href="http://jquerymobile.com/demos/1.0a1/#docs/pages/docs-pages.html">template found on jQueryMobile.com</a> or creating your own layout, populate the blocks with your own content and upload the files.  Currently, jQuery Mobile renders the pages the same on mobile and desktop browsers, so you don&#8217;t necessarily need a smartphone to test it out (though having one can help ironing out bugs).</p>
<h2>Accessibility and Precautions</h2>
<p>Right now, the alpha version of jQuery Mobile (the only one currently available) is compatible with all versions of Safari for iOS and for most browsers on Android.  BlackBerry is partially supported and Windows Mobile is sketchy at best, but rest assured that compatibility will only get better with time, as that is the main goal of jQuery Mobile &#8211; creating a widely compatible mobile JavaScript framework.  You can view the <a href="http://jquerymobile.com/gbs/">compatibility chart</a> on the official site but should also <a href="http://jquerymobile.com/blog/">follow their blog</a> to get the latest updates too.</p>
<p>That said, is it worth investing the time and energy to use jQuery Mobile over the other available mobile frameworks, even though it&#8217;s in the alpha development phase right now?  I would say <strong>yes, absolutely</strong> &#8211; this is a framework that has huge momentum behind it right now and will only get better with time.  As long as you&#8217;re staying on top of updates and changes, you should definitely start getting familiar with this framework if you&#8217;re planning on doing some mobile-friendly web development.</p>
<p>An additional benefit of jQuery Mobile is that it makes loading pages using AJAX automatic.  Add an <a href="http://www.askdavetaylor.com/how_to_create_custom_apple_iphone_website_icon.html">iPhone home screen icon</a> to your application and iOS will cleverly hide Safari controls, mimicking native applications.</p>
<h2>About the Example</h2>
<p>The downloadable example above includes is split into a header and footer file for the sake of convenience, feel free to use whatever coding method you prefer.  I may end up creating a simple MVC framework using jQuery Mobile that makes it easier to develop a dynamic mobile app, in which case I&#8217;ll be sure to post it on this blog.  If you&#8217;d be interested in something like that, leave a comment below and I&#8217;ll try to bump up it&#8217;s priority on my huge list of to-dos.</p>
<div class="note">
The first iteration of the <a href="http://devgrow.com/jquery-mobile-php-mvc-framework/">jQuery Mobile PHP/MVC Framework</a> is complete.
</div>
<h2>Conclusion</h2>
<p>That wraps it up for part 2 of the Mobile Web Development series.  Be sure to check out part 1, an <a href="http://devgrow.com/intro-to-mobile-web-dev/">Introduction to Mobile Web Development</a>, if you missed it earlier.  In the next part, we&#8217;ll take a look at the various other mobile web frameworks out there, so stay tuned!</p>
<p><strong>Also a reminder:</strong> the <a href="http://devgrow.com/appsumo-giveaway/">AppSumo giveaway contest</a> ends tomorrow &#8211; be sure to <a href="http://devgrow.com/appsumo-giveaway/">check out the details</a> and enter (it takes 30 seconds and is free), you could win nearly $400 worth of support products.</p>
<p>And as always, <a href="http://feeds.feedburner.com/devgrow">subscribe to our RSS feed</a> and <a href="http://twitter.com/ThinkDevGrow">follow us on Twitter</a> if you haven&#8217;t already!</p>
<img src="http://devgrow.com/?ak_action=api_record_view&id=1924&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://devgrow.com/mobile-web-dev-using-jquery-mobile/feed/</wfw:commentRss>
		<slash:comments>67</slash:comments>
		</item>
		<item>
		<title>Quick Tip: Preventing Right-Click Context Menu with jQuery</title>
		<link>http://devgrow.com/quick-tip-preventing-right-click-context-menu-with-jquery/</link>
		<comments>http://devgrow.com/quick-tip-preventing-right-click-context-menu-with-jquery/#comments</comments>
		<pubDate>Sat, 04 Sep 2010 19:33:32 +0000</pubDate>
		<dc:creator>Monjurul Dolon</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[quick tips]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://devgrow.com/?p=1783</guid>
		<description><![CDATA[One of my clients recently asked for an image slideshow on his blog to showcase his photography. When I asked him how he wanted it to be, he was insistent on using a Flash slideshow over JavaScript. It turns out that although the Flash gallery was far less useful for him, as he couldn&#8217;t view [...]]]></description>
			<content:encoded><![CDATA[<p><em></em>One of my clients recently asked for an image slideshow on his blog to showcase his photography.  When I asked him how he wanted it to be, he was insistent on using a Flash slideshow over JavaScript.  It turns out that although the Flash gallery was far less useful for him, as he couldn&#8217;t view it on the iPhone or iPad, he preferred it anyways because it prevented people from right-clicking on his images and saving them to their hard drives.<span id="more-1783"></span></p>
<p>I spent a good bit of time attempting to explain to him that while people couldn&#8217;t right-click, they could still easily rip the photos using the Print Screen button or using any screen capture tool.  My suggestion was to simply watermark the images, however he was insistent on having no context-menus show up on right-click.  Ultimately, I ended up using a bit of jQuery to disable all context-menus in any images on the site, which allowed him to use the more compatible JS slideshows:</p>
<div class="codecolorer-container javascript blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'img'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;contextmenu&quot;</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span></div></td></tr></tbody></table></div>
<p>That should do the trick!  While I still don&#8217;t think it&#8217;s the best solution, if you run into the need to disable context menus for any element, feel free to use the snippet above (replace the img with anything else).</p>
<h3>Edit: Compatibility and Demo</h3>
<p>Someone mentioned it doesn&#8217;t work in Firefox in the comments &#8211; I&#8217;ve tested the code in the latest beta build of Chrome, IE8, Firefox 3.6.8, Safari and Opera &#8211; it <strong>does</strong> work in all of these browsers, at least in my Windows 7 x64 build.</p>
<p>Feel free to view the source of the demo to see how the exact implementation.  Also, keep in mind that this is certainly not a fool-proof solution (not even a great one) at preventing image theft.  It&#8217;s useful in deterring the subset of people who are less tech-savvy and are likely to give up after being unable to right-click.</p>
<p><center><a href="http://devgrow.com/examples/nocontext.html" class="download-button">Live Example</a></center></p>
<h3>Edit 2: I am not suggesting this!</h3>
<p>A number of comments make the assumption that I am recommending this technique for preventing image theft.  Let me be clear: I am not endorsing this technique for that purpose.  There are many ways around it and I made that clear to my client.</p>
<p>Since my client, however, was insistent on specifically disabling right-click for images, the above is the method I used.  It was somewhat difficult finding this information online so I decided to share it with others here on my blog.  It is certainly not the best solution (not even a good one) for preventing image theft, in my opinion a watermark works much better for that.  It may be useful for you in some circumstances, so use the knowledge however you&#8217;d like.</p>
<img src="http://devgrow.com/?ak_action=api_record_view&id=1783&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://devgrow.com/quick-tip-preventing-right-click-context-menu-with-jquery/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using apc
Page Caching using apc
Database Caching 27/61 queries in 0.342 seconds using apc
Object Caching 1685/1767 objects using apc
Content Delivery Network via cdn.devgrow.com

Served from: devgrow.com @ 2012-05-16 18:29:58 -->
