<?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>CSSKarma &#187; Web Development</title>
	<atom:link href="http://www.csskarma.com/blog/category/web-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.csskarma.com/blog</link>
	<description>display your &#60;style&#62;</description>
	<lastBuildDate>Sun, 11 Jul 2010 04:57:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Sliding Labels Official Plugin Release [ver. 3.2]</title>
		<link>http://www.csskarma.com/blog/sliding-labels-plugin/</link>
		<comments>http://www.csskarma.com/blog/sliding-labels-plugin/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 12:27:23 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[javascipt]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://www.csskarma.com/blog/?p=805</guid>
		<description><![CDATA[View Demo Plugin Minified Plugin Version: 3.2 – Added a &#8220;className&#8221; option so you don&#8217;t have to use &#8220;.slider&#8221; as the wrapper Version 3.1: Changed &#8220;children&#8221; to &#8220;find&#8221; so it will work with a UL. Thanks to Oro for the feedback Version 3 of Sliding Labels brought some big changes, the largest being that I [...]]]></description>
			<content:encoded><![CDATA[<div id="slidinglabels-plugin-release">
<ul class="demo">
<li><a href="http://www.csskarma.com/lab/plugin_slidinglabels/">View Demo</a></li>
<li><a href="http://www.csskarma.com/lab/plugin_slidinglabels/js/jquery.slidinglabels.js">Plugin</a></li>
<li><a href="http://www.csskarma.com/lab/plugin_slidinglabels/js/jquery.slidinglabels.min.js">Minified Plugin</a></li>
</ul>
<p><strong>Version: 3.2 – Added a &#8220;className&#8221; option so you don&#8217;t have to use &#8220;.slider&#8221; as the wrapper</strong></p>
<p>Version 3.1: Changed &#8220;children&#8221; to &#8220;find&#8221; so it will work with a UL. Thanks to <a href="http://www.csskarma.com/blog/sliding-labels-plugin/comment-page-1/#comment-85490">Oro</a> for the feedback</p>
<p>Version 3 of Sliding Labels brought some big changes, the largest being that I finally converted it into a working jQuery plugin.</p>
<p>Maybe it was the 200 e-mails requesting an official plugin, maybe it was my curiosity. Whatever it was, I heard everyone and I wanted to let you know that I&#8217;m listening to all the feature requests and bug reports; and I really do appreciate them.</p>
<h3>Additions to version 3</h3>
<p><strong>Plugin status</strong>: Obviously creating an official plugin was the biggest change</p>
<p><strong>Position: relative</strong>: It seemed like a lot of the questions I was getting had to do with adding <code>position:relative</code> to the .slider element in the CSS, so I just moved that into the script.</p>
<p><strong>Animation speed</strong>: I added an option to easily control the animation speed. It can take strings like &#8220;fast&#8221; and &#8220;slow&#8221; or any numeric value.</p>
<p><strong>Axis option</strong>: I got a lot of requests to add in some functionality to have the label slide up rather than only to the left. I added this in with an &#8220;axis&#8221; variable which can take either &#8220;x&#8221; or &#8220;y&#8221; for sliding direction</p>
<h3>Subtractions to version 3</h3>
<p><strong>Label Color</strong>: Originally I had this in the script so it looked nicer inline to the field, but I got to thinking that this really should be defined in the CSS, and it&#8217;s just color; so I took it out.</p>
<h3>Using the plugin</h3>
<p>Just like the previous version, you need an element wrapping the <code>&lt;label&gt;</code> and <code>&lt;input&gt;</code> elements. I use a <code>&lt;div&gt;</code> in the demo, but you can use whatever you&#8217;d like. The only requirement is that it have the class name &#8220;slider&#8221;. I can change that if anyone finds it to be annoying, but <strong>let me know and I&#8217;ll update the script</strong></p>
<h4>HTML</h4>
<pre><code>&lt;div class="form-slider"&gt;
&lt;label for="user"&gt;User name&lt;/label&gt;
&lt;input type="text" id="user" name="user"&gt;
&lt;/div&gt;</code></pre>
<h4>JavaScript</h4>
<pre><code>$(function(){

	$('#contactform').slidinglabels({

		/* these are all optional */
                className    : 'form-slider', // the class you're wrapping the label &amp; input with -&gt; default = slider
		topPosition  : '5px',  // how far down you want each label to start
		leftPosition : '5px',  // how far left you want each label to start
		axis         : 'x',    // can take 'x' or 'y' for slide direction
		speed        : 'fast'  // can take 'fast', 'slow', or a numeric value

	});

});</code></pre>
<p>That&#8217;s all there is to it. Let me know what you think, any extra features you&#8217;d like and any bugs. I should be submitting this to <a href="http://jquery.com">jQuery.com</a> in the next few days.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.csskarma.com/blog/sliding-labels-plugin/feed/</wfw:commentRss>
		<slash:comments>46</slash:comments>
		</item>
		<item>
		<title>Redirection Options</title>
		<link>http://www.csskarma.com/blog/redirection-options/</link>
		<comments>http://www.csskarma.com/blog/redirection-options/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 15:40:58 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[beginner]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[meta]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.csskarma.com/blog/?p=736</guid>
		<description><![CDATA[Lately, I&#8217;ve been having to work with a lot of redirects and I was going through different redirection options with a client. So I thought I would do a quick write up about the different types of redirection. I also haven&#8217;t seen a collection of these in one place, so I thought I would put [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.csskarma.com/blog/wp-content/uploads/banner_redirection.png" alt="article banner"></p>
<p>Lately, I&#8217;ve been having to work with a lot of redirects and I was going through different redirection options with a client. So I thought I would do a quick write up about the <strong>different types of redirection</strong>.</p>
<p>I also haven&#8217;t seen a collection of these in one place, so I thought I would put this together.</p>
<p>There are a few different types that are commonly use when redirecting users:</p>
<ul>
<li>.htaccess / apache</li>
<li>php header</li>
<li>javascript</li>
<li>meta refresh</li>
</ul>
<p>The top two are the one&#8217;s you&#8217;ll be using most often, I don&#8217;t really recommend the last two. But they <em>are</em> available, so I think they&#8217;re worth noting. So here they are in the order I would recommend: </p>
<h3>.htaccess / apache redirects</h3>
<pre><code>Redirect /old_directory http://example.com/newdirectory</code></pre>
<p>This redirection is most efficient at the apache level, but if you&#8217;re like me and are on shared hosting, getting into the apache installation probably isn&#8217;t an option. In that case you can put this in an <a href="http://www.csskarma.com/blog/creating-an-htaccess-template/">.htaccess file</a> in the root directory of your site.</p>
<p>Using an .htaccess redirection is great for moving entire sites because you can not only redirect a page, but you can redirect entire sites and subdirectories with one line of code.</p>
<h3>PHP header redirects</h3>
<pre><code>&lt;?php header('Location: http://example.com/newdirectory/'); ?&gt;</code></pre>
<p>PHP header redirects are good for single page redirects and if you&#8217;re not comfortable working with the .htaccess file. This code goes at the very top of the page you&#8217;re trying to redirect. If it&#8217;s not there you may get a &#8220;headers already sent&#8221; error.</p>
<p>If you&#8217;re publishing out static HTML files, you can still use this by adding this code into your .htaccess file:</p>
<pre><code>AddType application/x-httpd-php .php .html .htm</code></pre>
<p>This will let you <strong>execute PHP in an HTML file</strong>.</p>
<h3>JavaScript redirects</h3>
<pre><code>&lt;script type="text/javascript"&gt;
&lt;!--
window.location = "http://example.com/newdirectory"
//--&gt;
&lt;/script&gt;</code></pre>
<p>JavaScript redirects are generally not used unless you&#8217;ve exhausted the other two options. If you don&#8217;t have access to the .htaccess file AND you can&#8217;t run server-side script on your page, this is an OK fallback option, but you have to make sure to provide a link to the forwarding page incase a user is browsing without JavaScript.</p>
<h3>Meta redirects</h3>
<pre><code>&lt;meta http-equiv="refresh" content="0;URL=http://example.com/newdirectory"&gt;</code></pre>
<p>As your last option, I don&#8217;t see this in the wild anymore, but it&#8217;s worth mentioning that it does exist and does technically work (I&#8217;m not sure about it&#8217;s validity in HTML 5). You would place this in the document HEAD with the rest of the meta elements.</p>
<p>content=0 is a second timer for the redirect, I have this one set to 0 so it will redirect immediately.</p>
<p><strong>Those are the options I&#8217;ve used in the past; did I miss anything? Maybe an ASP redirect? Let me know!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.csskarma.com/blog/redirection-options/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>What You Need to Know About Behavioral CSS</title>
		<link>http://www.csskarma.com/blog/behavioral-css/</link>
		<comments>http://www.csskarma.com/blog/behavioral-css/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 16:46:32 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[article]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[smashing magazine]]></category>

		<guid isPermaLink="false">http://www.csskarma.com/blog/?p=681</guid>
		<description><![CDATA[Hi all, I had a new article published over the weekend at Smashing Magazine. Check it out and let me know what you think! Behavioral CSS I wrote it quite a while ago and it seems to be showing a bit in the comments, but overall, I&#8217;m pretty happy with the way it came out [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.csskarma.com/blog/wp-content/uploads/smashing-banner1.png" alt="" title="smashing-banner" class="article-banner"/></p>
<p>Hi all,<br />
I had a new article published over the weekend at Smashing Magazine. Check it out and let me know what you think!</p>
<p><a href="http://www.smashingmagazine.com/2009/12/19/what-you-need-to-know-about-behavioral-css/">Behavioral CSS</a></p>
<p>I wrote it quite a while ago and it seems to be showing a bit in the comments, but overall, I&#8217;m pretty happy with the way it came out and the reader responses it&#8217;s getting. Hope you enjoy <a href="http://www.smashingmagazine.com/2009/12/19/what-you-need-to-know-about-behavioral-css/">Behavioral CSS</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.csskarma.com/blog/behavioral-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS Techniques I Wish I Knew When I Started Designing Websites</title>
		<link>http://www.csskarma.com/blog/css-techniques-i-wish-i-knew-when-i-started-designing-websites/</link>
		<comments>http://www.csskarma.com/blog/css-techniques-i-wish-i-knew-when-i-started-designing-websites/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 15:30:42 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[article]]></category>
		<category><![CDATA[noupe]]></category>

		<guid isPermaLink="false">http://www.csskarma.com/blog/?p=675</guid>
		<description><![CDATA[I know I haven&#8217;t posted in a while, but I wanted to stop by and let everyone know that I have a new article out on Noupe.com called &#8220;CSS Techniques I Wish I Knew When I Started Designing Websites&#8221; It was pretty fun to write trying to think back to my beginnings in the Web [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.csskarma.com/blog/wp-content/uploads/noupeheader.png" alt="noupeheader" title="noupeheader" width="580" height="176" class="article-banner" /></p>
<p>I know I haven&#8217;t posted in a while, but I wanted to stop by and let everyone know that I have a new article out on <a href="http://www.noupe.com/css/css-techniques-i-wish-i-knew-when-i-started-designing-websites.html">Noupe.com</a> called &#8220;<a href="http://www.noupe.com/css/css-techniques-i-wish-i-knew-when-i-started-designing-websites.html">CSS Techniques I Wish I Knew When I Started Designing Websites</a>&#8221;</p>
<p>It was pretty fun to write trying to think back to my beginnings in the Web and sort of relive that frustration. I tried to include something for beginners and some for the more advanced users, so hopefully everyone will be able to take something away from the article.</p>
<p>Let me know what you think!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.csskarma.com/blog/css-techniques-i-wish-i-knew-when-i-started-designing-websites/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Quick Tip #3 &#8211; Textarea Fonts</title>
		<link>http://www.csskarma.com/blog/qt3-textarea-fonts/</link>
		<comments>http://www.csskarma.com/blog/qt3-textarea-fonts/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 02:28:27 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[beginner]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[quick tip]]></category>

		<guid isPermaLink="false">http://www.csskarma.com/blog/?p=558</guid>
		<description><![CDATA[The Problem The font family in this text area default to Courier New, but that&#8217;s pretty ugly. The Goal Look at the nice font in this textarea! The Solution You have to redefine the font-family for a textarea. Just a weird quirk. textarea{ font-family:Verdana, Arial, Sans-Serif; }]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.csskarma.com/images/articles/textarea-fonts.jpg" alt="article banner"/></p>
<h4>The Problem</h4>
<p><textarea cols="40" rows="10" class="testfield courier">The font family in this text area default to Courier New, but that&#8217;s pretty ugly.</textarea></p>
<h4>The Goal</h4>
<p><textarea cols="40" rows="10" style="font-family: verdana">Look at the nice font in this textarea!</textarea></p>
<h4>The Solution</h4>
<p>You have to redefine the font-family for a <code>textarea</code>. Just a weird quirk.</p>
<pre><code>textarea{
font-family:Verdana, Arial, Sans-Serif;
}</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.csskarma.com/blog/qt3-textarea-fonts/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Selectable RSS with SimplePie and jQuery</title>
		<link>http://www.csskarma.com/blog/selectable-rss/</link>
		<comments>http://www.csskarma.com/blog/selectable-rss/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 05:45:45 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[advanced]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[simplepie]]></category>
		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://www.csskarma.com/blog/?p=632</guid>
		<description><![CDATA[I was building an RSS reader for a project last week and it turned out to be a cool little app. So I thought I&#8217;d share some of the code. View demo Download demo files Let&#8217;s start off with the HTML we need to get some user interaction with the form. It&#8217;s a pretty basic, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.csskarma.com/images/articles/simplepieloader.jpg" alt="banner" /></p>
<p>I was building an RSS reader for a project last week and it turned out to be a cool little app. So I thought I&#8217;d share some of the code.</p>
<p class="demo"><a href="http://www.csskarma.com/articles/examples/simplepieloader/">View demo</a></p>
<p class="demo"><a href="http://www.csskarma.com/articles/examples/simplepieloader/simplepieloader.zip">Download demo files</a></p>
<p>Let&#8217;s start off with the HTML we need to get some user interaction with the form. It&#8217;s a pretty basic, just some of checkboxes.</p>
<p><img src="http://www.csskarma.com/images/articles/simplepie_form.png" alt="form with 4 checkboxes" /></p>
<h5>HTML</h5>
<pre><code>&lt;form action="" method="post" id="selection"&gt;
  &lt;h2&gt;Choose your news sources&lt;/h2&gt;
 <span>&lt;!--
  Setting all the checkbox names to "source[] helps us build the array on submit"
  We're also adding the RSS feed url to the checkbox value so we can save it in the array values
  --&gt;</span>
  &lt;ul&gt;
  &lt;li&gt;&lt;input type="checkbox" id="csskarma" name="source[]" value="http://www.csskarma.com/blog/feed/"/&gt;&lt;label for="csskarma"&gt;CSSKarma&lt;/label&gt;&lt;/li&gt;
  &lt;li&gt;&lt;input type="checkbox" id="cnn" name="source[]" value="http://rss.cnn.com/rss/cnn_topstories.rss"/&gt;&lt;label for="cnn"&gt;CNN&lt;/label&gt;&lt;/li&gt;
  &lt;li&gt;&lt;input type="checkbox" id="espn" name="source[]" value="http://sports-ak.espn.go.com/espn/rss/news"/&gt;&lt;label for="espn"&gt;ESPN&lt;/label&gt;&lt;/li&gt;
  &lt;li&gt;&lt;input type="checkbox" id="vitamin" name="source[]" value="http://feeds.feedburner.com/vitaminmasterfeed"/&gt;&lt;label for="vitamin"&gt;Think Vitamin&lt;/label&gt;&lt;/li&gt;
  &lt;/ul&gt;

  <span>&lt;!-- Setting the submit name to "btn" --&gt;</span>
  &lt;input type="submit" value="submit" name="btn" id="btn-submit"/&gt;
  &lt;/form&gt;
  &lt;/div&gt;&lt;!--/#selectnews--&gt;</code></pre>
<p>The only real thing worth noting in the form code are the names of the checkboxes. We use all the same name to group them together and the [ ] helps create the array on submit. I just chose to use <code>source[]</code> because it made sense to me, but you can use anything as long as the names are consistent and the brackets are there. Just adjust your PHP accordingly.</p>
<h5>SimplePie PHP</h5>
<pre><code>&lt;?php
<span>/* Get the SimplePie library */</span>
require_once ('inc/simplepie.inc');

<span>/* Create a new instance of SimplePie */</span>
$feed = new SimplePie();

<span>/* Get array */</span>
<span>// If the form has been submitted and the user selected news sources</span>
if (isset ($_POST['btn']) &amp;&amp; isset($_POST['source'])) {

    <span>// Save the array of news sources to a variable $checked</span>
    $checked = $_POST['source'];

    <span>// Pass the array of news sources through the SimplePie set_feed_url() function</span>
    $feed-&gt;set_feed_url($checked);

    <span>// Also, save this data to a cookie called "feedurls" that will expire when the browser closes</span>
    setcookie('feedurls', serialize($checked));

<span>// If the form wasn't submitted look for the "feedurls" cookie</span>
} else if (isset ($_COOKIE['feedurls'])) {

	<span>// If the cookie was found, pass the data through set_feed_urls()</span>
	$feed-&gt;set_feed_url(unserialize($_COOKIE['feedurls']));
}

<span>/* Set item limit */</span>
$feed-&gt;set_item_limit(3);

<span>/* Enable caching */</span>
$feed-&gt;enable_cache(true);

<span>/* Provide the caching folder */</span>
$feed-&gt;set_cache_location('cache');

<span>/* Set the amount of seconds you want to cache the feed */</span>
$feed-&gt;set_cache_duration(1800);

<span>/* I don't know what "init" means */</span>
$feed-&gt;init();

<span>/* Handle the content type (atom, RSS...) */</span>
$feed-&gt;handle_content_type();
?&gt;</code></pre>
<p>This is nothing that can&#8217;t be read in the comments, but the guts of the PHP comes in right under the &#8220;Get Array&#8221; comment. We&#8217;re checking to see if the form was submitted and the user selected news sources; if so, dump the values into SimplePie and save them to a cookie we can refer to later. The initial idea was for this to live at a pretty open place (a computer lab or something), that&#8217;s why the cookie expires on browser close.</p>
<p>I limited the per-feed output to 3 to keep it a little clean, but you can set that to whatever you want. It&#8217;d be pretty easy to let the user choose this as well with a select menu:</p>
<pre><code>&lt;select name="displayNumber"&gt;
&lt;option value="1"&gt;1&lt;/option&gt;
&lt;option value="2"&gt;2&lt;/option&gt;
&lt;option value="3"&gt;3&lt;/option&gt;
&lt;/select&gt;</code></pre>
<p>And replace <code>$feed-&gt;set_item_limit(3);</code> with <code>$feed-&gt;set_item_limit($_POST['displayNumber']);</code>. There may be some extra tweaking beyond that, but the general idea is to pass the submitted value into SimplePie.</p>
<h5>jQuery</h5>
<p>Now that we have the form fully functional we can layer some JavaScript on top of it to make it a little more <em>nifty</em>. This is using the <a rel="external" href="http://malsup.com/jquery/form/">jQuery Form Plugin</a>. It&#8217;s the first time I&#8217;ve really used this plugin, but it&#8217;s actually pretty nice and easy to use. I had some little quirks with it, but nothing too major.</p>
<pre><code>$(function() {

<span>/* If JavaScript is active create a link to slide the form out */</span>
$('#getform a').click(function(){
	$('#selection').slideToggle('slow');
	return false;
});<span>//</span>

<span>/* make it look like something happened */</span>
$('#selection, #reader').hide(); <span>//</span>
$('#reader').fadeIn('slow'); <span>//</span>

<span> /* bind form using 'ajaxForm' */</span>
$('#selection').ajaxForm(options); 

<span>/* Submit form via Ajax */</span>
var options = {
    target:       '#rssloader',
}; <span>//</span>

});<span>// End jQuery</span></code></pre>
<p class="demo"><a href="http://www.csskarma.com/articles/examples/simplepieloader/">View demo</a></p>
<p class="demo"><a href="http://www.csskarma.com/articles/examples/simplepieloader/simplepieloader.zip">Download demo files</a></p>
<p>Anyway, that&#8217;s all I have for today. It&#8217;s a pretty unpolished demo so let me know what you think, where I screwed up and if you can build on it and make it better. I&#8217;ll try to write some more soon.</p>
<h5>Ingredient list</h5>
<ul>
<li><a rel="external" href="http://simplepie.org/downloads/">SimplePie</a></li>
<li><a rel="external" href="http://css-tricks.com/video-screencasts/55-adding-rss-content-with-simplepie/">Starter files from CSS-Tricks</a></li>
<li><a rel="external" href="http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.3.2.min.js&amp;downloadBtn=">jQuery</a></li>
<li><a rel="external" href="http://malsup.com/jquery/form/">jQuery Form Plugin</a></li>
<li><a href="http://sharkcool.net" rel="external">Hill&#8217;s Brain</a></li>
<li>Coffee</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.csskarma.com/blog/selectable-rss/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>10 Videos for the Web Community</title>
		<link>http://www.csskarma.com/blog/10-videos-for-the-web-community/</link>
		<comments>http://www.csskarma.com/blog/10-videos-for-the-web-community/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 15:07:40 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[beginner]]></category>
		<category><![CDATA[kindalame]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.csskarma.com/blog/?p=612</guid>
		<description><![CDATA[I was poking around YouTube last night watching some design videos and I thought I&#8217;d share them since it&#8217;s been my RSS feed has been a bit stale lately (I&#8217;ve been working on a pretty big redesign for this site). Enjoy! Web Design Mistakes Duration: 3m 52s Watching someone use a screen reader Duration: 3m [...]]]></description>
			<content:encoded><![CDATA[<p>I was poking around YouTube last night watching some design videos and I thought I&#8217;d share them since it&#8217;s been my RSS feed has been a bit stale lately (I&#8217;ve been working on a pretty big redesign for this site). <strong>Enjoy</strong>!</p>
<h4>Web Design Mistakes</h4>
<p class="duration">Duration: 3m 52s</p>
<p><object width="420" height="280"><param name="movie" value="http://www.youtube-nocookie.com/v/vPO7lDZbcfA&#038;hl=en&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube-nocookie.com/v/vPO7lDZbcfA&#038;hl=en&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="420" height="280"></embed></object></p>
<h4>Watching someone use a screen reader</h4>
<p class="duration">Duration: 3m 31s</p>
<p>This is really boring but any designer/developer really should watch it.</p>
<p><object width="420" height="280"><param name="movie" value="http://www.youtube-nocookie.com/v/VGeppPO5lQ0&#038;hl=en&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube-nocookie.com/v/VGeppPO5lQ0&#038;hl=en&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="420" height="280"></embed></object></p>
<h4>SxSW 08 with Jeffrey Zeldman</h4>
<p class="duration">Duration: 9m 12s</p>
<p><object width="420" height="280"><param name="movie" value="http://www.youtube-nocookie.com/v/cjEb2NmheuQ&#038;hl=en&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube-nocookie.com/v/cjEb2NmheuQ&#038;hl=en&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="420" height="280"></embed></object></p>
<h4>Design Coding</h4>
<p class="duration">Duration: 3m 22s</p>
<p><object width="420" height="280"><param name="movie" value="http://www.youtube-nocookie.com/v/a0qMe7Z3EYg&#038;hl=en&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube-nocookie.com/v/a0qMe7Z3EYg&#038;hl=en&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="420" height="280"></embed></object></p>
<h4>Web Design in 2 Minutes</h4>
<p class="duration">Duration: 2m 17s</p>
<p><object width="420" height="280"><param name="movie" value="http://www.youtube-nocookie.com/v/J0NZ4ekNZoI&#038;hl=en&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube-nocookie.com/v/J0NZ4ekNZoI&#038;hl=en&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="420" height="280"></embed></object></p>
<h4>CSS3 Rounded Corners</h4>
<p class="duration">Duration: 3m 25s</p>
<p><object width="420" height="280"><param name="movie" value="http://www.youtube-nocookie.com/v/sZqbUsZRLyk&#038;hl=en&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube-nocookie.com/v/sZqbUsZRLyk&#038;hl=en&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="420" height="280"></embed></object></p>
<h4>ExpressionEngine 2.0 Preview</h4>
<p class="duration">Duration: 7m 52s</p>
<p><object width="420" height="280"><param name="movie" value="http://www.youtube-nocookie.com/v/YiefzD2J1_U&#038;hl=en&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube-nocookie.com/v/YiefzD2J1_U&#038;hl=en&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="420" height="280"></embed></object></p>
<h4>Dan Rubin Singing Piano Man</h4>
<p class="duration">Duration: 2m 55s</p>
<p><object width="420" height="280"><param name="movie" value="http://www.youtube-nocookie.com/v/7p7I8orjytc&#038;hl=en&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube-nocookie.com/v/7p7I8orjytc&#038;hl=en&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="420" height="280"></embed></object></p>
<h4>SxSW 2008 with Kevin Lawver</h4>
<p class="duration">Duration: 9m 17s</p>
<p><object width="420" height="280"><param name="movie" value="http://www.youtube-nocookie.com/v/Ikh6sCjzzZs&#038;hl=en&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube-nocookie.com/v/Ikh6sCjzzZs&#038;hl=en&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="420" height="280"></embed></object></p>
<h4>Faster HTML and CSS: Layout Engine Internals for Web Developers</h4>
<p class="duration">Duration: 1hr 1m</p>
<p><object width="420" height="280"><param name="movie" value="http://www.youtube-nocookie.com/v/a2_6bGNZ7bA&#038;hl=en&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube-nocookie.com/v/a2_6bGNZ7bA&#038;hl=en&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="420" height="280"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.csskarma.com/blog/10-videos-for-the-web-community/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Quick Tip #2  &#8211; Bringing Back Search with jQuery</title>
		<link>http://www.csskarma.com/blog/qt2-bringing-search-back/</link>
		<comments>http://www.csskarma.com/blog/qt2-bringing-search-back/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 14:29:05 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.csskarma.com/blog/?p=546</guid>
		<description><![CDATA[This is something I use on all my projects now. It&#8217;s designed for a search box, but can be used with any sort of input field. The great thing about this is that the field value &#8220;Search&#8221; will only come back onBlur if the field is empty (or doesn&#8217;t say &#8220;Search&#8221;). So if you started [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.csskarma.com/images/articles/bringing-back-search.jpg" alt="article banner"/></p>
<p>This is something I use on all my projects now. It&#8217;s designed for a search box, but can be used with any sort of input field.</p>
<p>The great thing about this is that the field value &#8220;Search&#8221; will only come back onBlur if the field is empty (or doesn&#8217;t say &#8220;Search&#8221;). So if you started typing something it won&#8217;t erase your text, which is something that has always irritated me about search boxes.</p>
<p>Anyway, I&#8217;ve been sitting on this post for a while, but I really wanted to get it out. So here it is:</p>
<h5>XHTML</h5>
<pre><code>&lt;div id=&quot;search&quot;&gt;
&lt;form method=&quot;post&quot; action=&quot;&quot;&gt;
   &lt;label for=&quot;field&quot;&gt;search&lt;/label&gt;
   &lt;input type=&quot;text&quot; id=&quot;field&quot;/&gt;
   &lt;button type=&quot;submit&quot;&gt;go&lt;/button&gt;
&lt;/form&gt;
&lt;/div&gt;<span>&lt;!--/search--&gt;</span></code></pre>
<h5>jQuery</h5>
<pre><code>$("#search input").focus( function() {
if ($(this).val()=="Search") {$(this).val("");}
});

$("#search input").blur( function() {
if ($(this).val()=="") {$(this).val("Search");}
});</code></pre>
<p>The word &#8220;Search&#8221; in the jQuery is case sensitive, so watch out for that.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.csskarma.com/blog/qt2-bringing-search-back/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Quick Tip #1 &#8211; Image Replacement</title>
		<link>http://www.csskarma.com/blog/qt1-image-replacement/</link>
		<comments>http://www.csskarma.com/blog/qt1-image-replacement/#comments</comments>
		<pubDate>Thu, 28 May 2009 14:19:57 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.csskarma.com/blog/?p=535</guid>
		<description><![CDATA[Problem Image replacement can be easily abused; but when used properly (like replacing logo text) it&#8217;s a great resource. Image replacement without extra markup usually means setting text-indent:-9999px on your link. And this works great great. But in a lot of browsers it leaves a focus outline that runs way off the page to the [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.csskarma.com/images/articles/image-replacement.jpg" alt="article banner"/></p>
<h4>Problem</h4>
<p>Image replacement can be easily <a href="http://www.csszengarden.com" rel="external">abused</a>; but when used properly (like replacing logo text) it&#8217;s a great resource.</p>
<p>Image replacement without extra markup usually means setting <code>text-indent:-9999px</code> on your link. And this works great great. But in a lot of browsers it leaves a focus outline that runs way off the page to the left on click.</p>
<p><img src="http://www.csskarma.com/images/articles/logo_beans_error.jpg" alt="welovebeans.com logo with a :focus outline the runs off the page" /></p>
<p>We need to keep the outline there for accessibility reasons, so most developers just leave it alone. But there&#8217;s a way to make, both, designers and accessibility gurus happy.</p>
<p class="viewdemo"><a href="http://www.csskarma.com/articles/examples/image-replacement/">view demo</a></p>
<h5>Problem CSS</h5>
<pre><code>
#branding h1 a{
display:block;
height:70px;
width:289px;
background:url(../images/logo.png) no-repeat 0 0;
<strong>text-indent:-9999px;</strong>
}</code></pre>
<h4>Goal</h4>
<p><img src="http://www.csskarma.com/images/articles/logo_beans_clean.jpg" alt="welovebeans.com logo with proper :focus outline" /></p>
<h4>Solution</h4>
<p>By adding <code>overflow:hidden</code> to the link we can cut off the extended :focus outline.</p>
<h5>Solution CSS</h5>
<pre><code>
#branding h1 a{
display:block;
height:70px;
width:289px;
background:url(../images/logo.png) no-repeat 0 0;
<strong>text-indent:-9999px;
overflow:hidden;</strong>
}</code></pre>
<p class="viewdemo"><a href="http://www.csskarma.com/articles/examples/image-replacement/">view demo</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.csskarma.com/blog/qt1-image-replacement/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Twitter and the Downfall of Social Networking</title>
		<link>http://www.csskarma.com/blog/twitter-and-the-downfall-of-social-networking/</link>
		<comments>http://www.csskarma.com/blog/twitter-and-the-downfall-of-social-networking/#comments</comments>
		<pubDate>Sun, 17 May 2009 23:51:29 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.csskarma.com/blog/?p=502</guid>
		<description><![CDATA[One of the great things about the folks at Twitter is that they really stick to what they&#8217;re good at and they let the community define what they want out of the service. So much so that they&#8217;ve responded with some really great community-driven Twitter services. MySpace The downfall of MySpace started when users were [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.csskarma.com/images/articles/downfall.jpg" alt="article banner" /></p>
<p class="intro">One of the great things about the folks at <a rel="external" href="http://twitter.com/">Twitter</a> is that they really stick to what they&#8217;re good at and they let the community define what they want out of the service. So much so that they&#8217;ve responded with some really great community-driven Twitter services.</p>
<p><strong>MySpace</strong></p>
<p>The downfall of <a rel="external" href="http://www.myspace.com">MySpace</a> started when users were given too much control in design their profiles. Then the spam started pouring in like crazy. Everyone had a MySpace account, even corporations, and they were all collecting &#8220;friends&#8221;. Profiles became bloated and ugly; and shortly after that, a viable alternative came along and users started migrating over to <a rel="external" href="http://www.facebook.com">Facebook</a> in an attempt to flee the spam.</p>
<p><strong>Facebook</strong></p>
<p>Facebook solved the MySpace design problem by removing that level of control from the users. Then (maybe to make up for it) they opened up to customizations through user-created applications. And the downward spiral began, yet again.</p>
<p>Users began abusing the apps and we were all subject to invites to Mafia teams and Vampire squads.</p>
<p>It&#8217;s gotten so bad that I can&#8217;t log into Facebook without some sort of asinine notification or spam coming from one of these wonderful apps generated by the &#8220;community&#8221;. You know there&#8217;s no way Facebook will step in and take control of the apps, so we just have to find ways around them as they add in (false sense of) security features.</p>
<p>Unfortunately, when we look at these 2 monsters of social networking, it appears that the problems all start with giving users too much control.</p>
<h4>Do they actually want control?</h4>
<p>Where&#8217;s the problem? Is it a perception of the user? Or is it that I&#8217;m way off base here, and the user actually wants a web site they can be totally engulfed in all day long? I&#8217;m not convinced users want the amount of control sites like Facebook and MySpace give them.</p>
<p>I know millions of people use Facebook apps, but maybe they&#8217;re just using them because they&#8217;re available. I don&#8217;t get the feeling that if all these apps never existed anyone would really care. I didn&#8217;t hear anyone complain about lack of control in Facebook before the apps came along; not a single person.  They were just happy to get out of MySpace.</p>
<p><strong>Look at what Twitter&#8217;s done so far: </strong></p>
<ul>
<li>They&#8217;ve stripped down user profiles &#8211; no one cares</li>
<li>They gave you very controlled design options &#8211; there&#8217;s been no outcry</li>
<li>The pretty much made your personal Twitter page useless &#8211; I&#8217;m not even sure anyone has noticed</li>
<li>They allow almost anyone to follow your updates &#8211; so what?</li>
</ul>
<p>If anything, the Twitter model is showing us users just want some core functionality. They really don&#8217;t want a place they can list their favorite books, movies and TV shows; it&#8217;s all just fluff.</p>
<h4>Telling the user no</h4>
<p>Twitter&#8217;s found a way to let us know that what we want isn&#8217;t a priority for them. And by using a &#8220;Do it yourself&#8221; attitude and releasing a well thought out and flexible API<strong>, we love them for it</strong>. It&#8217;s a little twisted, but it&#8217;s working really well. They&#8217;re picking and choosing what users have requested they want to address.</p>
<p>By releasing an API with so many options Twitter&#8217;s essentially hired thousands of developers for free to build add-ons to their site that are completely independent from Twitter (<strong>that have nothing to do with pirates OR vampires</strong>). And it allows them to really focus on features they think are important like search and giving a false sense of control.</p>
<p>Telling the community &#8220;if you want it, build it yourself, but keep it out of my site&#8221; accomplishes something Facebook really fails at: <strong>keeping out the crap</strong>. By forcing these user apps to be external you can cut out the spam and let users find them on their own. Of course, we&#8217;re already starting to see the much anticipated &#8220;Twitter Trends&#8221; starting to get hit with spam.</p>
<h4>Great services that came from the community</h4>
<ul>
<li><a rel="external" href="http://twitpic.com">TwitPic</a></li>
<li><a rel="external" href="http://wefollow.com/">WeFollow</a></li>
<li><a rel="external" href="http://www.twitlonger.com/login">TwitLonger</a></li>
<li><a rel="external" href="http://www.rememberthemilk.com/services/twitter/">Remember the Milk for Twitter</a></li>
<li><a rel="external" href="http://twitterfeed.com/">TwitterFeed</a></li>
<li><a rel="external" href="http://twitter.polldaddy.com/">Twitter PollDaddy</a></li>
</ul>
<p>Giving power to the community is a good thing, but if we learned anything from MySpace and Facebook it&#8217;s that this power needs to be well thought out and controlled in a way where the users don&#8217;t feel like they&#8217;re being controlled.</p>
<p>Whomever can come up with that will come out as the real social networking giant.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.csskarma.com/blog/twitter-and-the-downfall-of-social-networking/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>
