<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>schoberg.net</title>
	
	<link>http://schoberg.net</link>
	<description />
	<lastBuildDate>Fri, 20 Jan 2012 22:10:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/schoberg" /><feedburner:info uri="schoberg" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>PHP Conditional Statement – In Between Dates</title>
		<link>http://feedproxy.google.com/~r/schoberg/~3/BIGSb1PbIXY/</link>
		<comments>http://schoberg.net/2012/01/php-conditional-statement-in-between-dates/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 22:09:36 +0000</pubDate>
		<dc:creator>Jesse Schoberg</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[php snippets]]></category>

		<guid isPermaLink="false">http://schoberg.net/?p=237</guid>
		<description><![CDATA[I&#8217;m always using little php snippets in tons of projects. Here&#8217;s one I needed today that is very useful.  If you want a specific item to show only between a group of dates you can use this. No big function, just slap in your dates and go! 

&#60;?php if (date('Ymd') &#62;= '20120120' and date('Ymd') &#60;= [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m always using little php snippets in tons of projects. Here&#8217;s one I needed today that is very useful.  If you want a specific item to show only between a group of dates you can use this. No big function, just slap in your dates and go! <span id="more-237"></span></p>
<pre class="php">
<span class="phpScriptTag"><span class="phpOperator">&lt;</span><span class="phpOperator">?</span>php</span><span class="phpKeyword"> if </span><span class="phpOperator">(</span><span class="phpFunction">date</span><span class="phpOperator">(</span><span class="phpString">'Ymd'</span><span class="phpOperator">)</span> <span class="phpOperator">&gt;</span><span class="phpOperator">=</span> <span class="phpString">'20120120'</span><span class="htmlText"> and </span><span class="phpFunction">date</span><span class="phpOperator">(</span><span class="phpString">'Ymd'</span><span class="phpOperator">)</span> <span class="phpOperator">&lt;</span><span class="phpOperator">=</span> <span class="phpString">'20120125'</span> <span class="phpOperator">)</span><span class="phpOperator">:</span> <span class="phpScriptTag"><span class="phpOperator">?</span><span class="phpOperator">&gt;</span></span>
<span class="htmlText">
Show the promo banner</span>
<span class="phpScriptTag"><span class="phpOperator">&lt;</span><span class="phpOperator">?</span>php</span><span class="phpKeyword"> else<span class="phpOperator">:</span></span> <span class="phpScriptTag"><span class="phpOperator">?</span><span class="phpOperator">&gt;</span></span>
<span class="htmlText">
Show the normal banner</span>
<span class="phpScriptTag"><span class="phpOperator">&lt;</span><span class="phpOperator">?</span>php</span><span class="phpKeyword"> endif<span class="phpText">;</span></span> <span class="phpScriptTag"><span class="phpOperator">?</span><span class="phpOperator">&gt;</span></span>
</pre>
<p>So in english that says.. if today&#8217;s date is greater than or equal to 2012-01-20 and it&#8217;s less than or equal to 2012-01-25 show the promo banner. Otherwise show the normal banner.</p>
<p>Or if you only want to show the promo banner during some dates and do not have alternative content you can just end the statement like this:</p>
<pre class="php">
<span class="phpScriptTag"><span class="phpOperator">&lt;</span><span class="phpOperator">?</span>php</span><span class="phpKeyword"> if </span><span class="phpOperator">(</span><span class="phpFunction">date</span><span class="phpOperator">(</span><span class="phpString">'Ymd'</span><span class="phpOperator">)</span> <span class="phpOperator">&gt;</span><span class="phpOperator">=</span> <span class="phpString">'20120120'</span><span class="htmlText"> and </span><span class="phpFunction">date</span><span class="phpOperator">(</span><span class="phpString">'Ymd'</span><span class="phpOperator">)</span> <span class="phpOperator">&lt;</span><span class="phpOperator">=</span> <span class="phpString">'20120125'</span><span class="phpOperator">)</span><span class="phpOperator">:</span> <span class="phpScriptTag"><span class="phpOperator">?</span><span class="phpOperator">&gt;</span></span>
<span class="htmlText">
Show the promo banner</span>
<span class="phpScriptTag"><span class="phpOperator">&lt;</span><span class="phpOperator">?</span>php</span><span class="phpKeyword"> endif<span class="phpText">;</span></span> <span class="phpScriptTag"><span class="phpOperator">?</span><span class="phpOperator">&gt;</span></span>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://schoberg.net/2012/01/php-conditional-statement-in-between-dates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://schoberg.net/2012/01/php-conditional-statement-in-between-dates/</feedburner:origLink></item>
		<item>
		<title>Facebook “Fan Us” fixed position side tab button</title>
		<link>http://feedproxy.google.com/~r/schoberg/~3/n-MLnA9o4MM/</link>
		<comments>http://schoberg.net/2010/03/facebook-fan-us-fixed-position-side-tab-button/#comments</comments>
		<pubDate>Sat, 20 Mar 2010 08:01:59 +0000</pubDate>
		<dc:creator>Jesse Schoberg</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[facebook]]></category>

		<guid isPermaLink="false">http://schoberg.net/?p=206</guid>
		<description><![CDATA[Recently I&#8217;ve been seeing these &#8220;feedback&#8221; tabs fixed to the left or right side of websites that open up customer feedback forms by companies like UserVoice.  While browsing websites that use this product, these buttons have really gotten my attention. So I thought.. why not make one to promote a website&#8217;s Facebook Fan Page, [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I&#8217;ve been seeing these &#8220;feedback&#8221; tabs fixed to the left or right side of websites that open up customer feedback forms by companies like <a href="http://uservoice.com">UserVoice</a>.  While browsing websites that use this product, these buttons have really gotten my attention. So I thought.. why not make one to promote a website&#8217;s Facebook Fan Page, so more users become a fan? So I did, and here&#8217;s the code <img src='http://schoberg.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <span id="more-206"></span></p>
<h2>Examples</h2>
<h3>Hotel Spinner Example</h3>
<p>First I&#8217;ll show you a live example on a production website. We have it running on the detail pages of our site, <a href="http://www.hotelspinner.com/en/City/London.htm?label=scho-net-FB">Hotel Spinner</a>. See how the tab stays in the same position on your screen no matter where you scroll? It&#8217;s a pretty sweet floating effect that&#8217;s quite hard to ignore, and that&#8217;s why it&#8217;s so effective. (Oh and while you&#8217;re checking out the demo, you might as well <a href="http://facebook.com/hotelspinner">become a fan of Hotel Spinner</a> &#8217;cause it rocks!)</p>
<p style="text-align: center;"><a href="http://www.hotelspinner.com/en/City/London.htm?label=scho-net-FB"><img class="aligncenter size-full wp-image-208" title="Hotel Spinner &gt; Facebook &quot;Fan Us&quot; example" src="http://schoberg.net/wp-content/uploads/2010/03/spinner-screen.png" alt="" width="581" height="308" /></a></p>
<h3>Basic Example</h3>
<p>I&#8217;ve also put together a <a href="http://schoberg.net/lab/facebook-fixed-tab/">basic example</a> where you can view all the code without all the clutter. (Experts can grab what you need here and have this up in 2 minutes.)</p>
<h2>How To Install the Facebook &#8220;Fan Us&#8221; (Become a Fan) fixed tab / button / can&#8217;t get it off my screen thingy</h2>
<h3>Step 1.</h3>
<p>Right click and save this image <img class="alignnone" title="Facebook &quot;Fan Us&quot; Image" src="http://schoberg.net/lab/facebook-fixed-tab/icon-fbtab.png" alt="" width="30" height="41" /> to your computer. Then, FTP it into the images folder on your website.</p>
<h3>Step 2.</h3>
<p>Insert the following <code>CSS</code> into your style sheet. Be sure to set the image path to the location of the Facebook &#8220;Fan Us&#8221; image you downloaded in Step 1.<br />
<strong>Hint: To make your tab on the left side of your page change the &#8220;<code>right</code>&#8221; to &#8220;<code>left</code>&#8221; in the css below. </strong></p>
<pre class="css">
<span class="cssComment">/* ==== START Facebook Tab by Schoberg.net ==== */</span>
<span class="cssSelector">#fbtab{</span>
<span class="cssProperty">background</span><span class="cssRest">:</span><span class="cssValue"> url(icon-fbtab.png) no-repeat</span><span class="cssRest">;</span> <span class="cssComment">/* Path to Image */</span>
<span class="cssProperty">right</span><span class="cssRest">:</span><span class="cssValue">1px</span><span class="cssRest">;</span>  <span class="cssComment">/* change this to <span class="cssProperty">left</span><span class="cssRest">:</span><span class="cssValue"> 1px</span><span class="cssRest">;</span> to put it on the left of the screen */</span>
<span class="cssProperty">top</span><span class="cssRest">:</span><span class="cssValue">40%</span><span class="cssRest">;</span><span class="cssProperty">height</span><span class="cssRest">:</span><span class="cssValue">41px</span><span class="cssRest">;</span><span class="cssProperty">width</span><span class="cssRest">:</span><span class="cssValue">30px</span><span class="cssRest">;</span><span class="cssProperty">margin</span><span class="cssRest">:</span><span class="cssValue">0;padding:0</span><span class="cssRest">;</span><span class="cssProperty">position</span><span class="cssRest">:</span><span class="cssValue">fixed</span><span class="cssRest">;</span><span class="cssProperty">z-index</span><span class="cssRest">:</span><span class="cssValue">5000</span><span class="cssRest">;</span><span class="cssSelector">}</span>
<span class="cssSelector">#fbtab a{</span><span class="cssProperty">display</span><span class="cssRest">:</span><span class="cssValue">block</span><span class="cssRest">;</span><span class="cssProperty">width</span><span class="cssRest">:</span><span class="cssValue">100%</span><span class="cssRest">;</span><span class="cssProperty">height</span><span class="cssRest">:</span><span class="cssValue">100%</span><span class="cssRest">;</span><span class="cssSelector">}</span>
<span class="cssComment">/* ==== END Facebook Tab by Schoberg.net ==== */</span>
</pre>
<h3>Step 3.</h3>
<p>Finally insert the below <code>HTML</code> just before the closing  <code>&lt;/body&gt;</code> tag of your website. Be sure to update the <code>href</code> value to the destination of your Facebook Fan Page.</p>
<pre class="html">
<span class="htmlComment"><span class="htmlOtherTag">&lt;!-- Start Schoberg.net Fb Tab --&gt;</span></span>
<span class="htmlOtherTag">&lt;p id=<span class="htmlAttributeValue">&quot;fbtab&quot;</span>&gt;</span><span class="htmlAnchorTag">&lt;a href=<span class="htmlAttributeValue">&quot;http://facebook.com/hotelspinner&quot;</span>&gt;</span><span class="htmlAnchorTag">&lt;/a&gt;</span><span class="htmlOtherTag">&lt;/p&gt;</span>
<span class="htmlComment"><span class="htmlOtherTag">&lt;!-- End Schoberg.net Fb Tab --&gt;</span></span>
</pre>
<h2>Compatibility</h2>
<p>This code will works perfectly in all modern Mac and PC browsers including: IE7+, Firefox, Safari, Chrome, Opera, etc. Basically it just doesn&#8217;t work in (<a href="http://ie6funeral.com/">the finally dying</a>) IE6 since it doesn&#8217;t support <code>position:fixed;</code> without a bunch of hacks.</p>
<p>The image is an 8bit Transparent PNG that will look good on both <a href="http://schoberg.net/lab/facebook-fixed-tab/">dark and light backgrounds</a>.</p>
<h2>Taking it Further</h2>
<p>This concept doesn&#8217;t just have to be for your Facebook Fan Page. It could easily be extended to promote anything you want. (Think: Twitter, mailing list signup, RSS feed, featured product, donation cup, your sister-in-law&#8217;s <a href="http://wandaswax.com">candle</a> company) The possibilities are really endless.</p>
<p>To do this is simple. Create your own image. Tweak the <code>css</code> to the <code>height</code>,  <code>width</code> and path of the new image. Then change the <code>href</code> in your <code>html</code> to point at whatever you want. Shazam!</p>
<h2>Are you using the Schoberg.net Facebook &#8220;Fan Us&#8221; Tab?</h2>
<p><a href="http://schoberg.net/contact/">Let me know</a> if you&#8217;re using it and I&#8217;ll link up the best sites in this post!</p>
]]></content:encoded>
			<wfw:commentRss>http://schoberg.net/2010/03/facebook-fan-us-fixed-position-side-tab-button/feed/</wfw:commentRss>
		<slash:comments>42</slash:comments>
		<feedburner:origLink>http://schoberg.net/2010/03/facebook-fan-us-fixed-position-side-tab-button/</feedburner:origLink></item>
		<item>
		<title>Degradable PNG Transparency for IE6</title>
		<link>http://feedproxy.google.com/~r/schoberg/~3/5SndfWsoHYk/</link>
		<comments>http://schoberg.net/2009/07/degradable-png-transparency-for-ie6/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 23:24:00 +0000</pubDate>
		<dc:creator>Jesse Schoberg</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[adobe fireworks]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[png transparency]]></category>
		<category><![CDATA[web standards]]></category>

		<guid isPermaLink="false">http://schoberg.net/?p=179</guid>
		<description><![CDATA[All (sane) web developers are eagerly awaiting the day Internet Explorer 6 dies. While there are a number of opinions in the community on when we should drop support and how we should encourage users to upgrade, the (sad) fact is that (as of this writing) roughly 25% of the world is still using it. [...]]]></description>
			<content:encoded><![CDATA[<p>All (sane) web developers are eagerly awaiting the day Internet Explorer 6 dies. While there are a <a href="http://robertnyman.com/2009/02/09/stop-developing-for-internet-explorer-6/">number</a> <a href="http://37signals.blogs.com/products/2008/07/basecamp-phasin.html">of</a> <a href="http://creativity.newsvine.com/_news/2008/11/10/2094746-stop-being-a-dick-support-ie6">opinions</a> <a href="http://superfluousbanter.org/archives/2008/09/the-final-word-on-ie6/">in</a> <a href="http://www.usabilitypost.com/2008/09/05/drop-ie6-support-give-people-a-reason-to-upgrade/">the</a> <a href="http://www.0xdeadbeef.com/weblog/?p=1045">community</a> on when we should drop support and how we should <a href="http://ie6update.com/">encourage</a> <a href="http://www.stopie6.org/">users</a> <a href="http://www.bringdownie6.com/">to</a> <a href="http://iedeathmarch.org/">upgrade</a>, the (sad) fact is that (<a href="http://www.w3counter.com/globalstats.php?date=2009-06-30">as of this writing</a>) roughly 25% of the world is still using it. That being said, I am still going to be at a minimum, creating sites that degrade gracefully and function fully for IE6 for some time to come. OK now what were we talking about?<span id="more-179"></span></p>
<h2>What is PNG Alpha Transparency?</h2>
<p>In the old days <a href="http://en.wikipedia.org/wiki/Gif">GIF</a> was the most popular type of image compression for graphics. GIFs did a pretty good job and they still do. However, they only support binary (index) transparency. This basically means it can have transparent pixels, but they must be completely transparent.</p>
<p>Then the <a href="http://en.wikipedia.org/wiki/Portable_Network_Graphics">PNG</a> started to rise in popularity and developers started taking advantage of the <a href="http://en.wikipedia.org/wiki/Alpha_transparency">alpha</a> transparency that makes your web graphics look beautiful on any background. The fact of the matter is that PNGs with alpha transparency pretty much open up the possibilities of much more creative web design.</p>
<h2>The Problem with IE6 and Transparent PNGs</h2>
<p>Well it&#8217;s simple, IE6 does not support transparent PNGs correctly. Not only does it not support them, but in most cases it will turn all the transparent and semi-transparent pixels to an ugly blue/gray color that can really muck up a web page (see below for examples).</p>
<h2>The Solution</h2>
<p>While the world runs on <a href="http://www.adobe.com/products/photoshop/">PhotoShop</a>, I like to keep another image editing tool in my back pocket: <a href="http://www.adobe.com/products/fireworks/">Adobe Fireworks</a>. Fireworks has many of the same features as PhotoShop, and now that they are both under the Adobe roof they are getting even more similar. However, Fireworks has one tiny additional feature that makes all the difference in this case.</p>
<ol>
<li>Open or create your graphic in Fireworks (on a transparent background).</li>
<li>Select the &#8220;Preview&#8221; tab.</li>
<li>Be sure the Optimize toolbar is open (window &gt; optimize).</li>
<li>Then select &#8220;PNG 8&#8243; and &#8220;Alpha Transparency&#8221;.</li>
</ol>
<p><img class="aligncenter size-full wp-image-181" title="fireworks" src="http://schoberg.net/wp-content/uploads/2009/06/fireworks.png" alt="" width="500" height="269" /></p>
<p>That is the main key right there. Use 8bit and not 32bit. Photoshop does not offer alpha transparency with 8 bit images, but Fireworks does. And for some reason IE6 renders transparent and semi-transparent pixels of 8bit PNGs as fully transparent. So while it isn&#8217;t a perfect alpha transparency solution, it degrades gracefully by eliminating the ugly blue/gray color it puts on all transparent or semi-transparent pixels of 32bit PNGs, and it give the image binary transparency. It also saves you from implementing a <a href="http://www.twinhelix.com/css/iepngfix/">hack solution</a> to fix the PNG.</p>
<h2>Examples</h2>
<p>Most modern browsers support alpha transparency natively. This includes Firefox, Opera, Safari, Chrome and IE 7+. Here are 2 examples of the same image saved as 8 bit and 32 bit in Adobe Fireworks shown on a white and colored background. They both have full alpha transparency, and look about the same. Since the 8bit supports less colors it is naturally a smaller file size as well. Note how on the example with the angled background, the shadow is nicely transparent to the page behind it.</p>
<h3>Modern Browsers</h3>
<p><span style="padding: 10px; display:block;float:left;width:220px;"><img class="alignnone size-full wp-image-183" title="8bit-alpha" src="http://schoberg.net/wp-content/uploads/2009/06/8bit-alpha.png" alt="" width="110" height="120" /><img class="alignnone size-full wp-image-184" title="32bit-alpha" src="http://schoberg.net/wp-content/uploads/2009/06/32bit-alpha.png" alt="" width="110" height="120" /></span><span style="padding: 10px; background: transparent url(http://schoberg.net/wp-content/uploads/2009/07/bg.gif) repeat scroll 0% 0%; display:block;float:left;width:220px;"><img class="alignnone size-full wp-image-183" title="8bit-alpha" src="http://schoberg.net/wp-content/uploads/2009/06/8bit-alpha.png" alt="" width="110" height="120" /><img class="alignnone size-full wp-image-184" title="32bit-alpha" src="http://schoberg.net/wp-content/uploads/2009/06/32bit-alpha.png" alt="" width="110" height="120" /></span></p>
<h3 class="clear">What IE 6 Sees</h3>
<p><span style="padding: 10px; display:block;float:left;width:220px;"><img class="alignnone size-full wp-image-187" title="8bit-alpha-ie" src="http://schoberg.net/wp-content/uploads/2009/06/8bit-alpha-ie.png" alt="" width="110" height="120" /><img class="alignnone size-full wp-image-188" title="32bit-alpha-ie" src="http://schoberg.net/wp-content/uploads/2009/06/32bit-alpha-ie.png" alt="" width="110" height="120" /></span><span style="padding: 10px; background: transparent url(http://schoberg.net/wp-content/uploads/2009/07/bg.gif) repeat scroll 0% 0%; display:block;float:left;width:220px;"><img class="alignnone size-full wp-image-187" title="8bit-alpha-ie" src="http://schoberg.net/wp-content/uploads/2009/06/8bit-alpha-ie.png" alt="" width="110" height="120" /><img class="alignnone size-full wp-image-188" title="32bit-alpha-ie" src="http://schoberg.net/wp-content/uploads/2009/06/32bit-alpha-ie.png" alt="" width="110" height="120" /></span><br />
<br class="clear" /><br />
So you&#8217;ll notice that in IE6 in the 8bit example, the alpha transparent shadow does not work. However, all of these semi-transparent pixels become fully transparent. This gives a much better effect than the 32bit option which renders all the transparent pixels an odd blue/gray opaque color. So while the shadow and antialiasing don&#8217;t come through, it&#8217;s a great option for degradable png transparency for IE6 that doesn&#8217;t use javascript or any other hacks that leave a bad taste in a web standard enthusiast&#8217;s mouth. Now while this surely isn&#8217;t a solution for every situation, we&#8217;ve found it a very usefull way for degrading gracefully for IE6 while avoiding waisting our time implamenting fixes for a dying browser.</p>
]]></content:encoded>
			<wfw:commentRss>http://schoberg.net/2009/07/degradable-png-transparency-for-ie6/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		<feedburner:origLink>http://schoberg.net/2009/07/degradable-png-transparency-for-ie6/</feedburner:origLink></item>
		<item>
		<title>Making better Forms: Clickable text for Radio Button and Checkbox Fields</title>
		<link>http://feedproxy.google.com/~r/schoberg/~3/uHwf2qhPIjw/</link>
		<comments>http://schoberg.net/2008/10/making-better-forms-clickable-text-for-radio-button-and-checkbox-fields/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 01:26:16 +0000</pubDate>
		<dc:creator>Jesse Schoberg</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[input]]></category>
		<category><![CDATA[label]]></category>
		<category><![CDATA[web standards]]></category>

		<guid isPermaLink="false">http://schoberg.net/?p=160</guid>
		<description><![CDATA[I&#8217;ve never been a big fan of building web forms, and I don&#8217;t know many people who are. However, the fact of the matter is that almost every website has a few forms, and these forms play a key roll in the user experience.  Larger websites have huge, complex forms, that we as web developers [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve never been a big fan of building web forms, and I don&#8217;t know many people who are. However, the fact of the matter is that almost every website has a few forms, and these forms play a key roll in the user experience.  Larger websites have huge, complex forms, that we as web developers spend a lot of time building, and thousands of users spend even more time filling out. That being said I think it&#8217;s important to become well versed in the ins and outs of building a proper form.<span id="more-160"></span></p>
<h2>Checkboxes and Radio Fields</h2>
<p>Yes, <code>checkbox</code> and <code>radio</code> fields, the little squares and circles we all must click to indicate the important decisions of our internet life. When you fill out a web form that has one of these fields you can sometimes click anywhere on the text describing the element. However, other (most?) times, this is not the case, and you have to click directly on the small circle or box of the field element to indicate your choice.  Now for most experienced web users this is mear annoyance, but the whole point of the web is we want it to be easily accessible to everyone. Forms take a long time to fill out and no one likes entering all that info, and answering all those questions. The last thing we want to do is make it difficult.</p>
<p style="text-align:center"><img class="aligncenter size-full wp-image-161" title="clickable-checkboxs" src="http://schoberg.net/wp-content/uploads/2008/10/clickable-checkboxs.png" alt="" width="468" height="150" /></p>
<h2>Web Developer&#8230; meet &lt;label&gt; Tag</h2>
<p>So what is the solution to all this. Well it&#8217;s surprisingly simple, you add a new tag to your arsenal: the <code>&lt;label&gt;</code> tag. <strong>In simple terms, the <code>&lt;label&gt;</code> tag indicates in the <code>html</code> which text goes with which form field.</strong> Let me show you how the code should look:</p>
<h3>Checkbox Example</h3>
<p><label for="RememberMe"><br />
<input id="RememberMe" name="RememberMe" type="checkbox" value="yes" /> Remember me on this computer.</label></p>
<h3>Checkbox Example Code</h3>
<pre class="html"><span class="htmlOtherTag">&lt;label for=<span class="htmlAttributeValue">&quot;RememberMe&quot;</span>&gt;</span>
<span class="htmlFormTag">&lt;input type=<span class="htmlAttributeValue">&quot;checkbox&quot;</span> name=<span class="htmlAttributeValue">&quot;RememberMe&quot;</span> id=<span class="htmlAttributeValue">&quot;RememberMe&quot;</span> value=<span class="htmlAttributeValue">&quot;yes&quot;</span> /&gt;</span>
Remember me on this computer.
<span class="htmlOtherTag">&lt;/label&gt;</span></pre>
<p>See how easy that was? We simply wrap the <code>&lt;input&gt;</code> tag with a <code>&lt;label&gt;</code> tag. Then we use the <code>for</code> attribute to indicate which form field we are talking about. When working with checkbox fields the <code>for</code> of the <code>&lt;label&gt;</code> needs to be the same as the <code>id</code> and the <code>name</code> of the <code>&lt;input&gt;</code>. For radio buttons it&#8217;s exactly the same except for the <code>name</code> attribute will be the same for all the items in the group like this:</p>
<h3>Radio Button Example</h3>
<p><label for="goodIdea"><br />
<input id="goodIdea" name="idea" type="radio" value="good" /> Good Idea</label><br />
<label for="badIdea"><br />
<input id="badIdea" name="idea" type="radio" value="bad" /> Bad Idea</label></p>
<h3>Radio Button Example Code</h3>
<pre class="html"><span class="htmlOtherTag">&lt;label for=<span class="htmlAttributeValue">&quot;goodIdea&quot;</span>&gt;</span>
<span class="htmlFormTag">&lt;input type=<span class="htmlAttributeValue">&quot;radio&quot;</span> name=<span class="htmlAttributeValue">&quot;idea&quot;</span> id=<span class="htmlAttributeValue">&quot;goodIdea&quot;</span> value=<span class="htmlAttributeValue">&quot;good&quot;</span> /&gt;</span>
Good Idea
<span class="htmlOtherTag">&lt;/label&gt;</span>
<span class="htmlOtherTag">&lt;br /&gt;</span>
<span class="htmlOtherTag">&lt;label for=<span class="htmlAttributeValue">&quot;badIdea&quot;</span>&gt;</span>
<span class="htmlFormTag">&lt;input type=<span class="htmlAttributeValue">&quot;radio&quot;</span> name=<span class="htmlAttributeValue">&quot;idea&quot;</span> id=<span class="htmlAttributeValue">&quot;badIdea&quot;</span> value=<span class="htmlAttributeValue">&quot;bad&quot;</span> /&gt;</span>
Bad Idea
<span class="htmlOtherTag">&lt;/label&gt;</span></pre>
<h2>Not just for Checkboxes and Radio Buttons</h2>
<p>Now even thought that&#8217;s where I&#8217;m putting all the focus on this article, doesn&#8217;t mean the <code>&lt;label&gt;</code> tag is just for checkboxes and radio buttons. It should be used on your <code>&lt;input&gt;</code> (text, radio and checkbox), <code>&lt;select&gt;</code>, and <code>&lt;textarea&gt;</code> fields. This will keep solid accessibility to browsers, screen readers, and search engines. Creating accessible forms is a key element to developing with web standards.</p>
<h2>A Call to Google and the Rest</h2>
<p>Using <code>&lt;label&gt;</code> tags as <a href="http://www.w3.org/TR/html401/interact/forms.html#h-17.9.1">recommended by the w3c</a> is nothing new. In fact, the recommendation for <a href="http://www.w3.org/TR/html401/">HTML 4.01</a> was published 9 years ago! Yet somehow, some of the biggest sites on the web are STILL not using <code>&lt;label&gt;</code> tags on the main signup forms on their websites.</p>
<p><strong>Here is a list of big name sites that are NOT utilizing <code>&lt;label&gt;</code> tags at the time of this writing on their primary signup forms:</strong></p>
<ul>
<li><a href="https://www.google.com/accounts/NewAccount">Google</a></li>
<li><a href="https://scgi.ebay.com/ws/eBayISAPI.dll?RegisterEnterInfo">eBay</a></li>
<li><a href="http://www.nytimes.com/gst/regi.html">The New York Times</a></li>
<li><a href="http://signups.myspace.com/index.cfm?fuseaction=signup">MySpace</a></li>
<li><a href="https://r.espn.go.com/espn/memberservices/pc/register?registrationFormId=espn">ESPN</a></li>
<li><a href="https://secure.imdb.com/register-imdb/">IMDB</a></li>
<li><a href="http://www.foxnews.com/foxfan/registration.html">Fox News</a></li>
<li><a href="https://www.walmart.com/subflow/YourAccountLoginContext/770345805/sub_generic_login/create_account.do">Wal-Mart</a></li>
<li><a href="http://www.sportsline.com/registration?master_product=150&amp;end=/">CBS Sports</a></li>
<li><a href="http://www.washingtonpost.com/ac2/wp-dyn?node=admin/registration/register&amp;destination=register&amp;nextstep=gather&amp;application=reg30-globalnav&amp;applicationURL=http://www.washingtonpost.com">Washington Post</a></li>
<li><a href="http://www.answers.com/main/transoptform?gwp=8">Answers.com</a></li>
<li><a href="https://activate.verizon.net/">Verizon</a></li>
<li><a href="https://www.wireless.att.com/olam/dashboardAction.olamexecute">AT&amp;T Wireless</a></li>
<li><a href="https://ecomm.dell.com/dellstore/myaccount/signup.aspx?c=us&amp;l=en&amp;s=dhs&amp;cs=19">Dell</a></li>
<li><a href="http://my.monster.com/Account/Account.aspx">Monster.com</a></li>
<li><a href="https://commerce.us.reuters.com/registration/pages/registration/begin.do?go=http%3A%2F%2Fwww.reuters.com%2F">Reuters</a></li>
<li><a href="http://www.ups.com/content/global/index.jsx?">UPS</a></li>
</ul>
<p>So this is a public call to all the big guys listed above. How is it that you are the most popular sites on the internet, yet you are still ignoring web standards and usability? Isn&#8217;t it time you stepped it up?</p>
<h2>Additional Resources</h2>
<p>For more information on creating and styling forms using label tags and other good practices check out:</p>
<ul>
<li><a href="http://www.themaninblue.com/writing/perspective/2004/03/24/">The Man in Blue &gt;  Accessible, stylish form layout</a></li>
<li><a href="http://www.htmldog.com/guides/htmladvanced/forms/">Accessible Forms | HTML Dog</a></li>
<li><a href="http://webdesign.about.com/od/forms/a/aa052206.htm">The HTML Label Tag &#8211; Make Your Forms Accessible</a></li>
<li><a href="http://www.alistapart.com/articles/prettyaccessibleforms">A List Apart: Articles: Prettier Accessible Forms</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://schoberg.net/2008/10/making-better-forms-clickable-text-for-radio-button-and-checkbox-fields/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://schoberg.net/2008/10/making-better-forms-clickable-text-for-radio-button-and-checkbox-fields/</feedburner:origLink></item>
		<item>
		<title>How to Avoid Paying $10-$15 per Night for Hotel Internet Access</title>
		<link>http://feedproxy.google.com/~r/schoberg/~3/2y0v0t1sW2E/</link>
		<comments>http://schoberg.net/2008/10/how-to-avoid-paying-10-15-per-night-for-hotel-internet-access/#comments</comments>
		<pubDate>Tue, 14 Oct 2008 17:58:41 +0000</pubDate>
		<dc:creator>Jesse Schoberg</dc:creator>
				<category><![CDATA[Travel]]></category>
		<category><![CDATA[deals]]></category>
		<category><![CDATA[hotel]]></category>
		<category><![CDATA[internet]]></category>

		<guid isPermaLink="false">http://schoberg.net/?p=147</guid>
		<description><![CDATA[Internet has become a mandatory part of most of our lives. It&#8217;s a bit annoying when you get to a hotel and they want you to pay an extra $9.95, $14.95, or sometimes even $19.95 per night for internet! If you&#8217;re at a conference for a weekend or week this can get a bit costly. [...]]]></description>
			<content:encoded><![CDATA[<p>Internet has become a mandatory part of most of our lives. It&#8217;s a bit annoying when you get to a hotel and they want you to pay an extra $9.95, $14.95, or sometimes even $19.95 per night for internet! If you&#8217;re at a conference for a weekend or week this can get a bit costly. I&#8217;m going to show you how get a deal and minimize that cost so you&#8217;re not dropping an extra $50 or $100 on internet access for a few days. <span id="more-147"></span></p>
<h2>Step 1.  Ask the Hotel</h2>
<p>Before you make your reservation, look on the hotel&#8217;s website or call the hotel and see if there is a cost to their internet. This is a good time to ask a few questions about the net situation at your hotel:</p>
<ol>
<li>Do they have free access in the lobby?</li>
<li>Is there a business center?</li>
<li>Are there computers available for your use?</li>
<li>How about by the pool?</li>
<li>Is there a charge in the room?</li>
</ol>
<p>Depending on your trip length and amount of access you require, free net in the lobby may be enough for you. Or, if there is a business center you may not need to bring your laptop. If you have a choice of what hotel you are going to stay at (i.e. This is not a conference where you must stay at a particular place), this may be a good time to <a href="http://www.travelpost.com/hotel-internet-access.aspx">locate a hotel with free internet access</a>. You will notice that the mid priced 3 Star hotels are more likely to have free internet, and the higher priced 4 Star hotels are more likely to charge a fee. Now if you&#8217;re like me and enjoy staying at better hotels, continue on to learn how to minimize this cost.</p>
<h2>Step 2. Minimize the Cost of the Hotel Internet</h2>
<p>If the hotel you are staying at is going to be charging you a daily fee for internet access you can reduce this by <strong>becoming a member of a 3rd Party Wifi Subscription Service</strong>. These Wifi Subscription Services charge a monthly fee and allow you to access internet at thousands of locations across the country or even the globe (depending on the plan). <strong>The idea here is instead of paying a daily fee for internet, you pay for a month from a 3rd Party Subscription Service. The fee for 1 month of service from a 3rd Party Wifi provider, actually turns out be cheaper than paying the hotel day by day. </strong></p>
<p style="text-align:center"><img class="aligncenter size-full wp-image-158" title="Hotel Internet Cost Comparison" src="http://schoberg.net/wp-content/uploads/2008/10/graph2.png" alt="" width="400" height="321" /></p>
<p>So I hear you saying &#8220;Well this sounds great for someone who travels all the time, but I don&#8217;t want to subscribe to a monthly service&#8230; I&#8217;m only going to be staying in Chicago for 4 nights for a conference.&#8221; Don&#8217;t worry, you are only paying for 1 month of the subscription then canceling before the 2nd month starts. Now if you do travel a lot, you may want to keep your subscription up. However, the technique shown here is aimed at saving you money for one short stay.</p>
<h3>How it Works</h3>
<ol>
<li><strong>Before you leave for your trip</strong>, see which 3rd Party Service (see below) is partnered with the hotel you are staying at.</li>
<li>Signup for the service (again see below)</li>
<li>Once you arrive at the hotel open your laptop and go to any website. You will then be redirected to the hotel login page.</li>
<li>This page will likely be trying to sell you their overpriced daily internet service. Look for a link on the page that says &#8220;Roaming Login&#8221;. Here you can login using the service you have subscribed to.</li>
<li><strong>After you return from your trip, cancel your service so you don&#8217;t end up paying the monthly recurring fee.</strong></li>
</ol>
<h3>3rd Party Wifi Subscription Services</h3>
<p>There are currently 3 major service providers available. These are <a href="http://www.att.com/attwifi/">AT&amp;T Wi-Fi</a>, <a href="https://hotspot.t-mobile.com/">T-Mobile Hot Spot</a>, and <a href="http://www.boingo.com">Boingo</a>. All 3 services have pretty extensive coverage, however at the time of this writing Boingo is the best deal. They currently offer $9.95 / month for the first 3 months, but there is no contract. So before you leave on your trip, you can just subscribe for the first month, and pay $9.95 which will cover your entire stay vs. paying $14.95 / night. Then you can just cancel the service when you return. You will then have <strong>only paid a total of $9.95 instead of $50 to $100 at the hotel</strong>. The cool thing is Boingo lets you use the $9.95 promo price over and over. It&#8217;s not just for new customers. So each time you go on a trip, you can just turn the service back on for a single month.</p>
<p>In addition to your hotel, the 3rd Party Wifi Subscription Services also include internet access at many airports, restaurants, and coffee shops. So not only will you have internet access at your hotel, you may also have access while grabbing your Starbuck&#8217;s or waiting in the airport. You can look over the above websites for a full list of access spots for each provider.</p>
<p>Using this technique, an example 4 night stay that would normally cost $60.00 in daily internet access fees from the hotel will only cost you $9.95. Now that&#8217;s smart traveling!</p>
]]></content:encoded>
			<wfw:commentRss>http://schoberg.net/2008/10/how-to-avoid-paying-10-15-per-night-for-hotel-internet-access/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://schoberg.net/2008/10/how-to-avoid-paying-10-15-per-night-for-hotel-internet-access/</feedburner:origLink></item>
		<item>
		<title>Ray Lamontagne – “Gossip in the Grain” Exclusive Live Videos</title>
		<link>http://feedproxy.google.com/~r/schoberg/~3/aRPRHXon1Z4/</link>
		<comments>http://schoberg.net/2008/10/ray-lamontagne-gossip-in-the-grain-exclusive-live-videos/#comments</comments>
		<pubDate>Sun, 05 Oct 2008 01:27:08 +0000</pubDate>
		<dc:creator>Jesse Schoberg</dc:creator>
				<category><![CDATA[music]]></category>
		<category><![CDATA[Burn]]></category>
		<category><![CDATA[Empty]]></category>
		<category><![CDATA[Gossip in the Grain]]></category>
		<category><![CDATA[Hey Me Hey Mama]]></category>
		<category><![CDATA[Ray Lamontagne]]></category>
		<category><![CDATA[Roses & Cigarettes]]></category>
		<category><![CDATA[Sarah]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[Winter Birds]]></category>

		<guid isPermaLink="false">http://schoberg.net/?p=129</guid>
		<description><![CDATA[Here are some exclusive videos of songs from Ray Lamontagne&#8217;s new album &#8220;Gossip in the Grain&#8221; due out on October 15th. These were taken at last night&#8217;s (October 3rd) show at the Wisconsin Union Theater in Madison, WI. They were recorded using my Cannon PowerShot SD1000 and a mini tripod.
If you&#8217;ve ever been to a [...]]]></description>
			<content:encoded><![CDATA[<p>Here are some exclusive videos of songs from <a href="http://en.wikipedia.org/wiki/Ray_lamontagne">Ray Lamontagne</a>&#8217;s new album &#8220;<a href="http://en.wikipedia.org/wiki/Gossip_in_the_Grain">Gossip in the Grain</a>&#8221; due out on October 15th. These were taken at last night&#8217;s (October 3rd) show at the <a href="http://www.union.wisc.edu/">Wisconsin Union Theater</a> in Madison, WI. They were recorded using my Cannon PowerShot SD1000 and a mini tripod.</p>
<p>If you&#8217;ve ever been to a Ray show you&#8217;ll know he plays in almost pure darkness. So you&#8217;ll notice the clips are pretty dark. If you listen close on &#8220;Winter Birds&#8221; at 16s in you&#8217;ll hear him say &#8220;I can&#8217;t even see the fret board.&#8221;<span id="more-129"></span></p>
<p>The new album is going to be exciting. Some of the tracks like &#8220;Hey Me, Hey Mama&#8221; are a bit more upbeat then his normal sound incorporating some new instruments and techniques. Other tracks are soft and deep keeping more consistent with his previous works. And the lyrics, it&#8217;s Ray.. need I say more? Overall I think &#8220;Gossip in the Grain&#8221; is going to be a solid installment in the library of Ray Lamontagne.</p>
<p>OK enough talk.. here&#8217;s the vids&#8230;.</p>
<h2>Gossip in the Grain</h2>
<ul>
<li><a title="Ray Lamontagne - Roses &amp; Cigarettes (Live Video)" rel="shadowbox;width=480;height=397" href="http://www.youtube.com/v/RJVz4CtQVV8&amp;rel=0&amp;color1=0x006699&amp;color2=0x54abd6&amp;autoplay=1&amp;ap=%2526fmt%3D18">Ray Lamontagne &#8211; Roses &amp; Cigarettes (Live Video)</a></li>
<li><a title="Ray Lamontagne - Sarah (Live Video)" rel="shadowbox;width=480;height=397" href="http://www.youtube.com/v/-fhfY8T0U48&amp;rel=0&amp;color1=0x006699&amp;color2=0x54abd6&amp;autoplay=1&amp;ap=%2526fmt%3D18">Ray Lamontagne &#8211; Sarah (Live Video)</a></li>
<li><a title="Ray Lamontagne - Winter Birds (Live Video)" rel="shadowbox;width=480;height=397" href="http://www.youtube.com/v/KZBJMjB18fo&amp;rel=0&amp;color1=0x006699&amp;color2=0x54abd6&amp;autoplay=1&amp;ap=%2526fmt%3D18">Ray Lamontagne &#8211; Winter Birds (Live Video)</a></li>
<li><a title="Ray Lamontagne - Hey Me, Hey Mama (Live Video)" rel="shadowbox;width=480;height=397" href="http://www.youtube.com/v/LTxB6ezkuZA&amp;rel=0&amp;color1=0x006699&amp;color2=0x54abd6&amp;autoplay=1&amp;ap=%2526fmt%3D18">Ray Lamontagne &#8211; Hey Me, Hey Mama (Live Video)</a></li>
</ul>
<h2>Trouble</h2>
<p>Ray also preformed a number of tracks from his first (studio) album.</p>
<ul>
<li><a title="Ray Lamontagne - Burn (Live Video)" rel="shadowbox;width=480;height=397" href="http://www.youtube.com/v/cgfD7MQVx8w&amp;rel=0&amp;color1=0x006699&amp;color2=0x54abd6&amp;autoplay=1&amp;ap=%2526fmt%3D18">Ray Lamontagne &#8211; Burn (Live Video)</a></li>
</ul>
<h2>Till the Sun Turns Black</h2>
<p>And finally here&#8217;s one of my favorites. (sorry I missed the first verse)</p>
<ul>
<li><a title="Ray Lamontagne - Empty (Live Video)" rel="shadowbox;width=480;height=397" href="http://www.youtube.com/v/Ust5lh-6wtc&amp;rel=0&amp;color1=0x006699&amp;color2=0x54abd6&amp;autoplay=1&amp;ap=%2526fmt%3D18">Ray Lamontagne &#8211; Empty (Live Video)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://schoberg.net/2008/10/ray-lamontagne-gossip-in-the-grain-exclusive-live-videos/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://schoberg.net/2008/10/ray-lamontagne-gossip-in-the-grain-exclusive-live-videos/</feedburner:origLink></item>
		<item>
		<title>Custom Image Bullets for Unordered Lists using CSS</title>
		<link>http://feedproxy.google.com/~r/schoberg/~3/LMOu5UION_g/</link>
		<comments>http://schoberg.net/2008/10/custom-image-bullets-for-unordered-lists-using-css/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 01:17:11 +0000</pubDate>
		<dc:creator>Jesse Schoberg</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[bullets]]></category>
		<category><![CDATA[lists]]></category>
		<category><![CDATA[print style]]></category>

		<guid isPermaLink="false">http://schoberg.net/?p=84</guid>
		<description><![CDATA[Unordered lists &#60;ul&#62; have become quite a staple in the modern web developer&#8217;s tool box. We&#8217;ve taken them quite far with fancy menus and the like. However, we seem to forget about styling good &#8216;ol lists! While we often put basic lists onto our sites, they do sometimes get a bit bland and it would [...]]]></description>
			<content:encoded><![CDATA[<p>Unordered lists <code>&lt;ul&gt;</code> have become quite a staple in the modern web developer&#8217;s tool box. We&#8217;ve taken them quite far with fancy menus and the like. However, we seem to forget about styling good &#8216;ol lists! While we often put basic lists onto our sites, they do sometimes get a bit bland and it would be nice to spice them up a bit. Well here comes your guide to making your lists a bit more visually stimulating using a little css.<span id="more-84"></span></p>
<h2>Example 0 (the pre basic)</h2>
<p>Before we start getting fancy with replacing our bullets with images, let me show you what you can do using <em>only</em> css changes. There is a nice property in css called <code>list-style-type</code> which can be used on unordered <code>&lt;ul&gt;</code> and ordered <code>&lt;ol&gt;</code> lists. There are a number of <a href="http://www.w3.org/TR/CSS2/generate.html#propdef-list-style-type">declarations available</a> with a range of <a href="http://www.quirksmode.org/css/lists.html">browser compatibility</a>.<a href="http://www.quirksmode.org/css/lists.html"></a></p>
<p><strong><a href="http://schoberg.net/lab/custom-image-bullets/0.html">View Example 0 Demo »</a></strong></p>
<h3>HTML</h3>
<pre class="html"><span class="htmlOtherTag">&lt;ul&gt;</span>
    <span class="htmlOtherTag">&lt;li&gt;</span>Lorem ipsum dolor sit amet<span class="htmlOtherTag">&lt;/li&gt;</span>
    <span class="htmlOtherTag">&lt;li&gt;</span>Consectetuer adipiscing elit. Etiam sollicitudin<span class="htmlOtherTag">&lt;/li&gt;</span>
    <span class="htmlOtherTag">&lt;li&gt;</span>Capibus velit. Praesent eget dui.<span class="htmlOtherTag">&lt;/li&gt;</span>
    <span class="htmlOtherTag">&lt;li&gt;</span>Duis non elit et massa ultrices vehicula.<span class="htmlOtherTag">&lt;/li&gt;</span>
    <span class="htmlOtherTag">&lt;li&gt;</span>Aliquam fermentum ipsum auctor enim.<span class="htmlOtherTag">&lt;/li&gt;</span>
<span class="htmlOtherTag">&lt;/ul&gt;</span></pre>
<h3>CSS</h3>
<pre class="css"><span class="cssSelector">ul {</span>
    <span class="cssProperty">list-style-type</span><span class="cssRest">:</span><span class="cssValue">square</span><span class="cssRest">;</span>
<span class="cssSelector">}</span></pre>
<h2>Example 1 (the basic)</h2>
<p>OK, so now you&#8217;re (sarcastically) thinking &#8220;Wow Jesse, you turned the circle bullet into a square!&#8221;. Yea, I know that wasn&#8217;t too exciting, the good stuff is on the way. I just thought it would be nice for you to be fully versed in the bullet options (Hey I called it &#8220;Example 0&#8243; didn&#8217;t I?). Now, when following the links above you may have ran across another css declaration called <code>list-style-image</code>. In <em>theory</em> this is used to do what we are trying to accomplish here: Replace the bullet with a custom image. However, in practice this CSS declaration does not work dependably across browsers. Particularly regarding exact position of the bullet image. That being said we will <em>not</em> be using this declaration, instead will be putting the image onto the <code>&lt;li&gt;</code> using the <code>background:</code> property.</p>
<p><strong><a href="http://schoberg.net/lab/custom-image-bullets/1.html">View Example 1 Demo »</a></strong></p>
<h3>CSS</h3>
<pre class="css"><span class="cssSelector">ul{</span>
    <span class="cssProperty">list-style</span><span class="cssRest">:</span><span class="cssValue">none</span><span class="cssRest">;</span>
    <span class="cssProperty">margin</span><span class="cssRest">:</span><span class="cssValue">0 0 1em 15px</span><span class="cssRest">;</span>
    <span class="cssProperty">padding</span><span class="cssRest">:</span><span class="cssValue"> 0</span><span class="cssRest">;</span>
<span class="cssSelector">}</span>
<span class="cssSelector">ul li{</span>
    <span class="cssProperty">line-height</span><span class="cssRest">:</span><span class="cssValue">1.3em</span><span class="cssRest">;</span>
    <span class="cssProperty">margin</span><span class="cssRest">:</span><span class="cssValue"> .25em 0</span><span class="cssRest">;</span>
    <span class="cssProperty">padding</span><span class="cssRest">:</span><span class="cssValue"> 0 0 0 15px</span><span class="cssRest">;</span>
    <span class="cssProperty">background</span><span class="cssRest">:</span><span class="cssValue">url(scho-arrow.gif) no-repeat 0 7px</span><span class="cssRest">;</span>
<span class="cssSelector">}</span></pre>
<p style="text-align:center;"><img class="size-full wp-image-91" title="custom-image-bullets" src="http://schoberg.net/wp-content/uploads/2008/10/custom-image-bullets.png" alt="Custom Image Bullets - diagram" width="359" height="168" /></p>
<p>Now to explain the CSS a bit. First the <code>&lt;ul&gt;</code>. We remove the bullets with <code>list-style:none;</code>. Next we set the <code>margin</code>. We remove any default margins set by the browsers, set the left margin to <code>15px</code> to indent the list, and set the bottom margin to <code>1em</code> to offset the entire list from the content that follows it on the page. We do this by using the CSS shorthand <code>margin:[top] [right] [bottom] [left];</code>. We then set <code>padding:0;</code> to remove any default padding set by the browsers.</p>
<p>Next we adjust the <code>&lt;li&gt;</code>. We set the <code>line-height:1.3em;</code> to give the text some vertical spacing. We then set the top and bottom <code>margin</code> to <code>.25em</code> to give the line items a bit of vertical spacing and the left and right <code>margin</code> to <code>0</code> to reset any defaults set by the browsers. Next, we set the <code>padding</code> using shorthand like we did with the <code>margin</code>. We set the top, right and bottom paddings to <code>0</code> and then set the left to <code>15px</code>. This <code>15px</code> of <code>&lt;li&gt;</code> padding intents the text to make room for the image. You will want to adjust this to a couple px more than the width of your bullet image to make room for the image and give a little extra space before the text starts. Now to keep a uniform indent, I suggest keeping the total of the <code>padding-left</code> of the <code>&lt;li&gt;</code> and the <code>margin-left</code> of the <code>&lt;ul&gt;</code> to <code>30px</code>. So if you have a smaller image you may end up setting the <code>&lt;li&gt;</code> <code>padding-left</code> to <code>10px</code> and then setting the <code>&lt;ul&gt;</code> <code>margin-left</code> to <code>20px</code>. This keeps the text indented <code>30px</code> from the left side. Finally, we declare the <code>background</code> using the following CSS shorthand: <code>background:[image url] [repeat] [image left pos] [image top pos];</code> Here you see we&#8217;ve declared the <code>background-image</code>, set it to <code>no-repeat</code>, set the left postion to <code>0</code> and then the top position to <code>7px</code>. Now, depending on the height of your bullet image and the size of your text,  you&#8217;ll likely want to adjust this top positioning to vertically center your image on the text.</p>
<h2>Example 2 (adding polish)</h2>
<p>Example 1 got us rolling with the basic idea, but has a few minor issues to work out. First of all, since we set <code>margin-bottom:1em;</code> on the <code>&lt;ul&gt;</code> it causes nested lists to have too much space between the end of a 2nd level list and the next line item of the 1st level list. To fix that, we need to set <code>bottom-margin:0;</code> to all <code>&lt;ul&gt;</code> inside of <code>&lt;li&gt;</code>. Next, there is a small bug that plagues (you guessed it) IE 6 regarding background images that we apply the <a href="http://www.communitymx.com/content/article.cfm?page=2&amp;cid=C37E0">holly hack</a> to fix. In this example, I&#8217;ve added a 2nd level list and a really long <code>&lt;li&gt;</code>. By doing this, you can see why we set the <code>line-height</code> and the top and bottom <code>margin</code> on the<code> &lt;li&gt;</code> in Example 1. Notice how the <code>&lt;li&gt;</code> that wraps still has spacing above and below it to separate it from the surrounding line items? That&#8217;s the top and bottom margin at work.</p>
<p><strong><a href="http://schoberg.net/lab/custom-image-bullets/2.html">View Example 2 Demo »</a></strong></p>
<h3>CSS &#8211; Added</h3>
<pre class="css"><span class="cssSelector">li ul{</span>
    margin-bottom:0;
<span class="cssSelector">}</span>
<span class="cssComment">/* Holly Hack to fix ie6 li bg */</span>
<span class="cssComment">/* Hides from IE-mac \*/</span>
<span class="cssSelector">* html li{</span><span class="cssProperty">height</span><span class="cssRest">:</span><span class="cssValue"> 1%</span><span class="cssRest">;</span><span class="cssSelector">}</span>
<span class="cssComment">/* End hide from IE-mac */</span></pre>
<h2>Example 3 (real world example)</h2>
<p>Now that you&#8217;ve got the idea, I&#8217;m going to show you a real world example where we tweak a couple things. First, we&#8217;re going to set the 2nd level lists back to bullets instead of images. Then we&#8217;re going to drop in some print styles so that when the page is printed it shows the default bullets.  We&#8217;re doing this because most browsers do not print background images by default and our custom bullets are background images! (Try a Print Preview of Example 3 on your browser to check it out.)</p>
<p><strong><a href="http://schoberg.net/lab/custom-image-bullets/3.html">View Example 3 Demo »</a></strong></p>
<h3>CSS</h3>
<pre class="css"><span class="cssSelector">ul{</span>
    <span class="cssProperty">list-style</span><span class="cssRest">:</span><span class="cssValue">none</span><span class="cssRest">;</span>
    <span class="cssProperty">margin</span><span class="cssRest">:</span><span class="cssValue">0 0 1em 15px</span><span class="cssRest">;</span>
    <span class="cssProperty">padding</span><span class="cssRest">:</span><span class="cssValue"> 0</span><span class="cssRest">;</span>
<span class="cssSelector">}</span>
<span class="cssSelector">ul li{</span>
    <span class="cssProperty">line-height</span><span class="cssRest">:</span><span class="cssValue">1.3em</span><span class="cssRest">;</span>
    <span class="cssProperty">margin</span><span class="cssRest">:</span><span class="cssValue"> .25em 0</span><span class="cssRest">;</span>
    <span class="cssProperty">padding</span><span class="cssRest">:</span><span class="cssValue"> 0 0 0 15px</span><span class="cssRest">;</span>
    <span class="cssProperty">background</span><span class="cssRest">:</span><span class="cssValue">url(scho-arrow.gif) no-repeat 0 4px</span><span class="cssRest">;</span>
<span class="cssSelector">}</span>
<span class="cssSelector">li ul{</span>
    <span class="cssProperty">margin</span><span class="cssRest">:</span><span class="cssValue">0 0 0 30px</span><span class="cssRest">;</span>
    <span class="cssProperty">list-style</span><span class="cssRest">:</span><span class="cssValue">disc</span><span class="cssRest">;</span>
<span class="cssSelector">}</span>
<span class="cssSelector">li ul li{</span>
    padding-left:0;
    <span class="cssProperty">background</span><span class="cssRest">:</span><span class="cssValue">none</span><span class="cssRest">;</span>
<span class="cssSelector">}</span>
<span class="cssComment">/* Holly Hack to fix ie6 li bg */</span>
<span class="cssComment">/*  Hides from IE-mac \*/</span>
<span class="cssSelector">* html li{</span><span class="cssProperty">height</span><span class="cssRest">:</span><span class="cssValue"> 1%</span><span class="cssRest">;</span><span class="cssSelector">}</span>
<span class="cssComment">/* End hide from IE-mac */</span>
<span class="cssMedia">@media print{</span>
<span class="cssSelector">ul {</span>
    <span class="cssProperty">list-style</span><span class="cssRest">:</span><span class="cssValue">disc</span><span class="cssRest">;</span>
    <span class="cssProperty">margin-left</span><span class="cssRest">:</span><span class="cssValue">30px</span><span class="cssRest">;</span>
<span class="cssSelector">}</span>
<span class="cssSelector">ul li {</span>
    <span class="cssProperty">padding-left</span><span class="cssRest">:</span><span class="cssValue">0px</span><span class="cssRest">;</span>
    <span class="cssProperty">background</span><span class="cssRest">:</span><span class="cssValue">none</span><span class="cssRest">;</span>
<span class="cssSelector">}</span>
<span class="cssMedia">}</span> <span class="cssComment">/* end print */</span></pre>
<h2>Example 4 (getting creative)</h2>
<p>Once you get the hang of this the possibilities are really endless. In this final example I&#8217;ll throw a few more styles in there to show you what we could do with a &#8220;Yes/No&#8221; type of list. I&#8217;ve defaulted the list items to &#8220;Yes&#8221;, but then added a <code>class="no"</code> to <code>&lt;li&gt;</code> that I want to have the &#8220;No&#8221; look. This could be used in a list of product features etc. To keep the usability, I&#8217;ve even set the print styles to an open circle for the &#8220;No&#8221; items and filled circle for the &#8220;Yes&#8221;. <small>(yes/no icons from <a href="http://sweetie.sublink.ca/">sweetie</a>)</small></p>
<p><strong><a href="http://schoberg.net/lab/custom-image-bullets/4.html">View Example 4 Demo »</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://schoberg.net/2008/10/custom-image-bullets-for-unordered-lists-using-css/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://schoberg.net/2008/10/custom-image-bullets-for-unordered-lists-using-css/</feedburner:origLink></item>
		<item>
		<title>Ultimate Image Replacement</title>
		<link>http://feedproxy.google.com/~r/schoberg/~3/76H9zLHKyes/</link>
		<comments>http://schoberg.net/2008/09/ultimate-image-replacement/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 17:44:49 +0000</pubDate>
		<dc:creator>Jesse Schoberg</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[fir]]></category>
		<category><![CDATA[image replacement]]></category>
		<category><![CDATA[logos]]></category>
		<category><![CDATA[print style]]></category>

		<guid isPermaLink="false">http://schoberg.net/?p=38</guid>
		<description><![CDATA[What is image replacement? If you are a web developer who cares about standards you have surely come across CSS image replacement techniques. If not, you can do a bit of research on the available methods of image replacement and the original Fahrner Image Replacement (FIR). The basic idea here is to use standard html [...]]]></description>
			<content:encoded><![CDATA[<p>What is image replacement? If you are a web developer who cares about standards you have surely come across CSS image replacement techniques. If not, you can do a bit of research on the <a href="http://www.mezzoblue.com/tests/revised-image-replacement/">available methods of image replacement</a> and <a href="http://stopdesign.com/articles/replace_text/">the original Fahrner Image Replacement (FIR)</a>. The basic idea here is to use standard html markup containing text, and then replace it with an image using CSS. Using this method search engines and screen readers can understand the HTML, while at the same time your users get to see the image of the text. This is generally used when a web developer (or client) <span style="text-decoration: line-through;">needs</span> wants to use a specialized font for page headings instead of a web friendly font.<span id="more-38"></span></p>
<h2>When to use CSS image replacement</h2>
<p>The typical use of image replacement is for replacing page headings with an image of that text. While I avoid this when I can, I do <strong>promote and use this technique for site logos</strong> on almost every site I develop. As 99% of companies have logos that can not be created with web fonts, this is a real world application for image replacement that can and should be used on production web sites. Furthermore, <a href="http://mezzoblue.com/archives/2008/05/05/image_replac/">Google is OK with image replacement</a> and has confirmed it will help your search engine placement as long as you aren&#8217;t falsely representing the image.</p>
<h2>Ultimate Image Replacement (The Schoberg Method)</h2>
<p>At <a href="http://ljhost.com">LJ Host</a> we build a lot of websites, and I have toyed around with a number of different methods over the years and they all do the job to some extent. However, there are a number of caveats with some of the methods including inaccessibility to screen readers and the text being hidden when images are turned off. My method is based on the cover up method created by <a href="http://www.pixy.cz/">Petr Staníček [aka -pixy-]</a> and showcased on his site <a href="http://www.wellstyled.com/css-replace-text-by-image.html">wellstyled.com</a>. My method has added support for linking of the object (I always think it&#8217;s a good idea to link the logo to the home page), and making the text printer friendly using print sytles.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-58" title="Ultimate Image Replacement diagram" src="http://schoberg.net/wp-content/uploads/2008/09/layers.png" alt="" width="404" height="92" /></p>
<h2>Example 1 (the basic)</h2>
<p>In the first example I have shown the technique in it&#8217;s most simple state. Note the empty <code>&lt;span&gt;</code> tag inside the <code>&lt;a&gt;</code>. This is what allows this method to work. If css is off you see the text. If css is on but images are off, you see the text. However, if css is on and images are on, the <code>&lt;span&gt;</code> is set to the same height and width of the containing <code>&lt;a&gt;</code> and <code>&lt;h1&gt;</code> and then positioned absolutely with the logo image set as the background of the <code>&lt;span&gt;</code>. The logo then overlays the text, showing only the image of the logo, and hiding the text behind it. (Note: Your image must be fully opaque or you will see the text through it.)</p>
<p><strong><a href="http://schoberg.net/lab/ultimate-image-replacement/1.html">View Example 1 Demo »</a></strong></p>
<h3>HMTL</h3>
<pre class="html"><span class="htmlOtherTag">&lt;h1 class=<span class="htmlAttributeValue">&quot;logo&quot;</span>&gt;</span><span class="htmlAnchorTag">&lt;a href=<span class="htmlAttributeValue">&quot;/&quot;</span>&gt;</span>Company Name<span class="htmlOtherTag">&lt;span&gt;</span><span class="htmlOtherTag">&lt;/span&gt;</span><span class="htmlAnchorTag">&lt;/a&gt;</span><span class="htmlOtherTag">&lt;/h1&gt;</span>
</pre>
<h3>CSS</h3>
<pre class="css">
<span class="cssSelector">.logo {</span>
margin:0;
padding:0;
<span class="cssProperty">height</span><span class="cssRest">:</span><span class="cssValue">45px</span><span class="cssRest">;</span> <span class="cssComment">/* Height of logo */</span>
<span class="cssProperty">width</span><span class="cssRest">:</span><span class="cssValue"> 210px</span><span class="cssRest">;</span> <span class="cssComment">/* Width of logo */</span>
<span class="cssProperty">overflow</span><span class="cssRest">:</span><span class="cssValue">hidden</span><span class="cssRest">;</span>  <span class="cssComment">/* Stops text from protruding if  H1 text is larger than logo */</span>
<span class="cssProperty">position</span><span class="cssRest">:</span><span class="cssValue">relative</span><span class="cssRest">;</span> <span class="cssComment">/*must be relative or absolute */</span>
<span class="cssSelector">}</span>
<span class="cssSelector">.logo a{</span>
<span class="cssProperty">display</span><span class="cssRest">:</span><span class="cssValue">block</span><span class="cssRest">;</span>
<span class="cssProperty">height</span><span class="cssRest">:</span><span class="cssValue">100%</span><span class="cssRest">;</span>
<span class="cssProperty">width</span><span class="cssRest">:</span><span class="cssValue">100%</span><span class="cssRest">;</span>
<span class="cssSelector">}</span>
<span class="cssSelector">.logo a span{</span>
<span class="cssProperty">display</span><span class="cssRest">:</span><span class="cssValue">block</span><span class="cssRest">;</span>
<span class="cssProperty">height</span><span class="cssRest">:</span><span class="cssValue">100%</span><span class="cssRest">;</span>
<span class="cssProperty">width</span><span class="cssRest">:</span><span class="cssValue">100%</span><span class="cssRest">;</span>
<span class="cssProperty">position</span><span class="cssRest">:</span><span class="cssValue">absolute</span><span class="cssRest">;</span>
top:0;
left:0;
<span class="cssProperty">background</span><span class="cssRest">:</span><span class="cssValue">url(logo.gif) no-repeat left top</span><span class="cssRest">;</span>
<span class="cssProperty">cursor</span><span class="cssRest">:</span><span class="cssValue">pointer</span><span class="cssRest">;</span> <span class="cssComment">/* ie demands we reinstate the pointer cursor */</span>
<span class="cssSelector">}</span>
</pre>
<h2>Example 2 (with print styles)</h2>
<p>In example 2 we take things a bit further by adding the print styles. The print styles are essentially reverse engineering the first styles we set. Different browsers handle printing differently. By default, Internet Explorer does not show background images and Firefox does. Furthermore, depending on your logo dimensions and length of company name text, you could run into a number of issues with spacing. We alleviate all these problems by adding print styles. First, we use <code>display:none;</code> to hide the <code>&lt;span&gt;</code> which is the layer containing the logo image. Then we reset the widths and heights of the <code>&lt;h1&gt;</code> and the <code>&lt;a&gt;</code>. Finally we add some margin to the bottom of the <code>&lt;h1&gt;</code> to add some space between it and any following elements on the page for aesthetics. Compare a print preview of the Example 1 and Example 2 demos in a few different browsers to see for yourself.</p>
<p><strong><a href="http://schoberg.net/lab/ultimate-image-replacement/2.html">View Example 2 Demo »</a></strong></p>
<h3>CSS &#8211; Added</h3>
<pre class="css"><span class="cssComment">/* == Optional Print Styles =================================================
===== Put this at the end of your style sheet or in your print style sheet */</span>
<span class="cssMedia">@media print{</span>
<span class="cssSelector">.logo a span{</span>
    <span class="cssProperty">display</span><span class="cssRest">:</span><span class="cssValue">none</span><span class="cssRest">;</span>
<span class="cssSelector">}</span>
<span class="cssSelector">.logo, .logo a{</span>
    <span class="cssProperty">width</span><span class="cssRest">:</span><span class="cssValue"> auto</span><span class="cssRest">;</span>
    <span class="cssProperty">height</span><span class="cssRest">:</span><span class="cssValue">auto</span><span class="cssRest">;</span>
    text-indent:0;
    top:0;
    left:0;
<span class="cssSelector">}</span>
<span class="cssSelector">.logo{</span>
    <span class="cssProperty">margin-bottom</span><span class="cssRest">:</span><span class="cssValue">1em</span><span class="cssRest">;</span>
<span class="cssSelector">}</span>
<span class="cssMedia">}</span> <span class="cssComment">/* end print */</span></pre>
<h2>Example 3 (real world example)</h2>
<p>In the final example I&#8217;ve altered the code just a touch by setting the <code>position:absolute;</code> and defining the exact location using <code>top:</code> and <code>left:</code>. I then dropped it into a layout so you can see how it would work in a normal situation, along with some final print styles for the whole layout. (Note: If you use <code>position:absolute;</code> for the <code>h1.logo</code> you must set the containing element to <code>position:relative;</code>)</p>
<p><strong><a href="http://schoberg.net/lab/ultimate-image-replacement/3.html">View Example 3 Demo »</a></strong></p>
<h3>CSS &#8211; Tweaked</h3>
<pre class="css"><span class="cssSelector">.logo {</span>
    margin:0;
    padding:0;
    <span class="cssProperty">height</span><span class="cssRest">:</span><span class="cssValue">45px</span><span class="cssRest">;</span> <span class="cssComment">/* Height of logo */</span>
    <span class="cssProperty">width</span><span class="cssRest">:</span><span class="cssValue"> 210px</span><span class="cssRest">;</span> <span class="cssComment">/* Width of logo */</span>
    <span class="cssProperty">overflow</span><span class="cssRest">:</span><span class="cssValue">hidden</span><span class="cssRest">;</span>  <span class="cssComment">/* Stops text from protruding if  H1 text is larger than logo */</span>
    <span class="cssProperty">position</span><span class="cssRest">:</span><span class="cssValue">absolute</span><span class="cssRest">;</span> <span class="cssComment">/*must be relative or absolute */</span>
    <span class="cssProperty">top</span><span class="cssRest">:</span><span class="cssValue">25px</span><span class="cssRest">;</span>
    <span class="cssProperty">left</span><span class="cssRest">:</span><span class="cssValue">30px</span><span class="cssRest">;</span>
<span class="cssSelector">}</span></pre>
<h2>Final Notes</h2>
<p>Even though I have called it the &#8220;Ultimate&#8221; Image Replacement technique there are a couple issues to be aware of.</p>
<ol>
<li>Your image must be opaque. If you have a transparent gif or png then the text from the <code>&lt;h1&gt;</code> will show right through. So this creates a few situations where this method will not work.</li>
<li>It does require an empty<code> &lt;span&gt;</code> tag just before the closing <code>&lt;/a&gt;</code>. While this doesn&#8217;t cause any real performance issues, html purists (myself included) are never too enthused about adding extra markup that has no structural meaning. That being said, I think the cost is worth the benefit in this case.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://schoberg.net/2008/09/ultimate-image-replacement/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://schoberg.net/2008/09/ultimate-image-replacement/</feedburner:origLink></item>
		<item>
		<title>Hello world!</title>
		<link>http://feedproxy.google.com/~r/schoberg/~3/eAoTQVuk82Q/</link>
		<comments>http://schoberg.net/2008/09/hello-world/#comments</comments>
		<pubDate>Sat, 20 Sep 2008 09:48:30 +0000</pubDate>
		<dc:creator>Jesse Schoberg</dc:creator>
				<category><![CDATA[Site]]></category>
		<category><![CDATA[alex king]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[tasks]]></category>
		<category><![CDATA[tasks pro]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://hendrix.ljnetworks.com/~schoberg/?p=1</guid>
		<description><![CDATA[Yes after all this time, I have decided to start a blog. &#8220;Why?&#8221; you ask. Well, I&#8217;ve been a web developer for over 7 years, and it just got to the point where I had too many ideas, experiences and work I wanted to publish. So, if you want to hear my tips and tricks [...]]]></description>
			<content:encoded><![CDATA[<p>Yes after all this time, I have decided to start a blog. &#8220;Why?&#8221; you ask. Well, I&#8217;ve been a web developer for over 7 years, and it just got to the point where I had too many ideas, experiences and work I wanted to publish. So, if you want to hear my tips and tricks ranging from css to javascript to design be sure to subscribe to the RSS feed. I also hope to throw in some occasional posts on tech gear, software, music, travel, and fashion as well.<span id="more-1"></span></p>
<h2>Why choose WordPress?</h2>
<p>I originally heard about <a href="http://wordpress.org">WordPress</a> sometime back in 2003 from a developer named <a href="http://alexking.org/">Alex King</a>. At the time I was searching for a task management program for my company <a href="http://ljhost.com">LJ Host</a>. After quite a bit of research I decided to use his creation called <a href="http://alexking.org/projects/tasks">Tasks</a> (which has now greatly evolved into <a href="http://crowdfavorite.com/tasks-pro/">TasksPro</a> which we still use). Anyway, while doing this research I noticed on his blog that he was involved in developing a number of plugins for WordPress, which is how I found the project.</p>
<p>I fell in love with the project instantly as they were building things in a nice modular manner and using these little known things (at the time) called Web Standards, and CSS! Needless to say I had my eye on the project ever since and it has become quite an amazing project. I have worked with it on a number of client sites and finally was able to get down and dirty with the script for my own blog here.</p>
<h2>Site Design</h2>
<p>The development of this site was quite a bit of fun. I was able to throw out all the normal client requests and do something for myself. Once the design and xhtml/css was completed it was really a breeze to drop it into the WordPress Theme system.</p>
<p>Well that&#8217;s all for now!<br />
Here we go&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://schoberg.net/2008/09/hello-world/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://schoberg.net/2008/09/hello-world/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.397 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-01-20 18:56:55 -->

