<?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>Six Revisions &#187; CSS</title>
	<atom:link href="http://sixrevisions.com/category/css/feed/" rel="self" type="application/rss+xml" />
	<link>http://sixrevisions.com</link>
	<description></description>
	<lastBuildDate>Thu, 18 Mar 2010 21:58:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Basic CSS3 Techniques That You Should Know</title>
		<link>http://sixrevisions.com/css/basic-css3-techniques-that-you-should-know/</link>
		<comments>http://sixrevisions.com/css/basic-css3-techniques-that-you-should-know/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 13:21:09 +0000</pubDate>
		<dc:creator>Jacob Gube</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://sixrevisions.com/?p=2140</guid>
		<description><![CDATA[We'll be looking at a few of the essential things you need to know about CSS3. With all of these new features, it's important to place emphasis on the most important ones to get you up to speed.]]></description>
			<content:encoded><![CDATA[<p>After 13 years of being a vital part  of web  designs, Cascading Style Sheets (CSS) has evolved into a powerful tool, allowing  you to develop more efficient and better-looking sites. Many of the new  features in the latest CSS revision (CSS3) are rich and take the quality of our  designs to the next level.</p>
<p><img src="http://images.sixrevisions.com/2009/12/11-01_css3_basic_techniques_lead.jpg" width="550" height="200" alt="Basic Techniques That You Need to Know About CSS3" /></p>
<p><span id="more-2140"></span></p>
<p>We&#8217;ll be looking at a few of the essential things you need  to know about CSS3. With all of these new features, it&#8217;s important to place  emphasis on the most important ones to get you up to speed. Even though only  the most modern of web browsers (Safari, Mozilla, Opera) currently (partially  or fully) support CSS3 specs, it&#8217;s an exciting time for those who like to  experiment!</p>
<p>This is a follow-up of a previous article called <a href="http://sixrevisions.com/css/css3-techniques-you-should-know/">CSS3 Techniques You Should Know</a> which you should also check out.</p>
<h3>Multiple Backgrounds</h3>
<p>CSS3 lets you apply multiple backgrounds to an element using  several properties. Included in this list of properties is <code>background-image</code>,  <code>background-repeat</code>, <code>background-position</code> and <code>background-size</code>. In  order to include these multiple backgrounds within a single element, you must  specify the correct properties separated by commas.</p>
<pre>body {
  background:
    url(../images/bottom-left.png) top right fixed no-repeat,
    url(../images/bottom-right.png) top left fixed no-repeat,
    url(../images/top-left.png) bottom left fixed no-repeat,
    url(../images/top-right.png) bottom right fixed no-repeat;
  background-color:#ffffff;
}</pre>
<h3>Selectors</h3>
<p>CSS3 selectors allow you to select elements to apply style  properties  with greater specificity, giving you opportunities to select  complex groups of elements. The new selectors not only save you time, but also  help you keep your HTML markup to a minimum. You&#8217;ll inevitably reduce the  number of classes and IDs you&#8217;ll need, allowing you to become a bit more  organized with your stylesheet.</p>
<h4>The general sibling combinator</h4>
<p>There is a new kind of <a href="http://reference.sitepoint.com/css/combinators">combinator</a> that is being introduced in  CSS3, the general sibling selector. This selector targets all of the siblings of  a particular element. For example, if you wanted to target paragraphs in the  same hierarchy as your level-1 headings, you would do:</p>
<pre>
h1~p {
  color: red;
}</pre>
<p>The selector above will match the first <code>p</code> element  below (giving it a red color), but not the second <code>p</code> element, because it is not on the same level  (e.g. not a sibling) as the <code>h1</code> element.</p>
<pre>&lt;h1&gt;Heading&lt;/h1&gt;
<strong>&lt;p&gt;</strong>This paragraph is a match<strong>&lt;/p&gt;</strong>
&lt;div&gt;
  <strong>&lt;p&gt;</strong>This paragraph is not a match<strong>&lt;/p&gt;</strong>
&lt;/div&gt;</pre>
<h4>New pseudo-classes for greater specificity without scripting</h4>
<p>New pseudo-classes introduced in CSS3 specifications allow  you to select a group of elements that, before, would&#8217;ve required DOM selection  using a scripting language such as JavaScript, or additional classes/ID&#8217;s.</p>
<p>Here are some new pseudo-classes:</p>
<ul>
<li><code>:last-child</code> selects only the last child element.</li>
<li><code>:nth-child(n)</code> selects the <code>n</code><sup>th</sup> child, useful for <a href="http://www.alistapart.com/articles/zebratables/">zebra-striping tables</a>.</li>
<li><code>:not(e)</code> selects everything except <code>e</code>.</li>
</ul>
<p>SitePoint has a complete <a href="http://reference.sitepoint.com/css/css3psuedoclasses">list of CSS3  psuedo-classes</a>.</p>
<h3>Resizing Elements</h3>
<p>With CSS3, you can now resize your elements using the <a href="http://www.css3.info/preview/resize/"><code>resize</code></a> property. Nice  right? The catch: it only works in Safari right now. The following code block  makes it possible to have a tiny triangle appear in the bottom right corner of  an element that you can then drag to resize.</p>
<pre>div {
  resize: both;
}</pre>
<h3>Better Fonts</h3>
<p>The most commonly used fonts on the web are Arial,  Helvetica, Verdana and Georgia  because most computers have them preinstalled. With CSS3, you can break away  from these fonts and use various types of fonts as long as it can be called  from an internet-enabled location. When you call on your font, it will be  displayed anywhere on the site. Because of copyright issues, you have to make  sure that you can use the font before using the <a href="https://developer.mozilla.org/index.php?title=En/CSS/%40font-face"><code>@font-face</code></a> feature.</p>
<p>In the following example, the <code>@font-face</code> feature declares the  name of the font family (you can name it anything you want) and the location of  the font file (in this case a <a href="http://en.wikipedia.org/wiki/TrueType">TrueType  fon</a>t file). Once it&#8217;s declared, you can use the <code>font-family</code> property  to set the font of an element.</p>
<pre>@font-face {
  <strong>font-family</strong>: SketchRockwell;
  <strong>src</strong>: url('http://example.com/fonts/SketchRockwell.ttf');
}
h1 {
  <strong>font-family: SketchRockwell;</strong>
  font-size: 3.2em;
  letter-spacing: 1px;
  text-align: center;
}</pre>
<h3>Text Shadows</h3>
<p>The <a href="http://www.w3.org/Style/Examples/007/text-shadow"><code>text-shadow</code></a> property allows you to add a dropshadow underneath HTML text elements. You  should always make sure your text is readable in case the user&#8217;s browser doesn&#8217;t  support advanced CSS3 properties.</p>
<p> In the following example, we apply a dark blue (#003471) text-shadow that&#8217;s 2px to the right and 5px to the  bottom of the text and with a blur of radius of 2px, to  all <code>h1</code> elements.</p>
<pre>h1 {
  text-shadow: #003471 2px 5px 2px;
}</pre>
<p><img src="http://images.sixrevisions.com/2009/12/11-02_text_shadow.jpg" width="550" height="54" alt="Preview of text shadow CSS3 property in Firefox 3.5.5" /><span class="figure-caption">Preview of text shadow CSS3 property  in Firefox 3.5.5.</span></p>
<h3>Rounded Corners</h3>
<p>Creating rounded corners can be a bit of a task. However,  with CSS3, it can be a breeze when using a new property called <a href="http://www.w3.org/TR/css3-background/#the-border-radius"><code>border-radius</code></a>.  This property sets the curvature for every corner of the box.</p>
<p>For example, the below code will produce 10px-rounded  corners for divs:</p>
<pre>div {
  border: 2px solid #434343;
  padding: 10px;
  background: #e3e3e3;
<strong>  -moz-border-radius: 10px;
  -webkit-border-radius: 10px;</strong>
  width: 500px;
}</pre>
<p>In the above code, <code>-moz</code> is for Firefox and  <code>-webkit</code> is for Safari and Chrome.</p>
<p><img src="http://images.sixrevisions.com/2009/12/11-03_rounded_corners.jpg" width="550" height="58" alt="Rounded corners in Firefox 3.5.5" /><span class="figure-caption">Rounded corners in Firefox 3.5.5.</span></p>
<h3>Summary</h3>
<p>CSS3 gives us better control over our HTML elements, opening  up possibilities of creating complex and flexible designs that have a reduced  reliance on static graphics and scripting. We talked about some basic stuff  that works in most modern web browsers (except IE8). To learn more about CSS3,  check out the <a href="http://www.w3.org/Style/CSS/current-work">W3C CSS3 Current  Work</a> page and see <a href="http://www.css3.info/">CSS3 .Info</a> for the  latest news about the newest version of CSS.</p>
<h3>Related Content</h3>
<ul>
<li><a href="http://sixrevisions.com/interviews/six-questions-eric-meyer-on-css3/">Six  Questions: Eric Meyer on CSS3</a></li>
<li><a href="http://sixrevisions.com/css/20-useful-resources-for-learning-about-css3/">20  Useful Resources for Learning about CSS3</a></li>
<li><a href="http://sixrevisions.com/css/30-exceptional-css-navigation-techniques/">30  Exceptional CSS Navigation Techniques</a></li>
<li><em>Related categories</em>: <a href="http://sixrevisions.com/category/css/">CSS</a> and <a href="http://sixrevisions.com/category/web-development/">Web Developement</a></li>
</ul>
<h3>About the Author</h3>
<p class="about-author"><img src="http://images.sixrevisions.com/authors/joel_reyes_small.jpg" alt="" width="80" height="80" /><span class="author-bio-text"><strong>Joel Reyes</strong> is a web designer and web developer with years of experience in the industry. He runs a development studio called <strong><a href="http://www.looneydesigner.com/">Looney Designer</a></strong>. He works with standards-compliant HTML/CSS, PHP, JavaScript and WordPress development and design. Connect with the author <strong><a href="http://twitter.com/grindsmart">via Twitter</a></strong>.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://sixrevisions.com/css/basic-css3-techniques-that-you-should-know/feed/</wfw:commentRss>
		<slash:comments>42</slash:comments>
		</item>
		<item>
		<title>CSS3 Techniques You Should Know</title>
		<link>http://sixrevisions.com/css/css3-techniques-you-should-know/</link>
		<comments>http://sixrevisions.com/css/css3-techniques-you-should-know/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 13:47:05 +0000</pubDate>
		<dc:creator>Jacob Gube</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://sixrevisions.com/?p=2539</guid>
		<description><![CDATA[Many of you have probably heard all the buzz around CSS3, but exactly which techniques can we use today? In this article I'll show you some different CSS3 techniques that work great in some of the leading browsers (i.e. Firefox, Chrome, Safari, Opera ), and how they will degrade well in the non-supported browsers (i.e. Internet Explorer).]]></description>
			<content:encoded><![CDATA[<p>Many of you have probably heard all the buzz around CSS3, but exactly which techniques can we use today? In this article I&#8217;ll show you some <strong>different CSS3 techniques</strong> that work great in some of the leading browsers (i.e. Firefox, Chrome, Safari, Opera ), and how they will degrade well in the non-supported browsers (i.e. Internet Explorer). Using browser specific extensions, many of the proposed CSS3 styles can be used today!</p>
<p><a href="http://sixrevisions.com/css/css3-techniques-you-should-know/"><img src="http://images.sixrevisions.com/2010/02/14-01_css3_u_know_lead_image.jpg" width="550" height="200" alt="CSS Techniques You Should KNow" /></a></p>
<p><span id="more-2539"></span></p>
<p>If you aren&#8217;t aware of the browser extensions, these are CSS styles with a vendor specific prefix. Since CSS3 is not fully supported yet, we must use these extensions. They are as follows:</p>
<ul>
<li>Mozilla/Firefox/Gecko: <code>-moz-</code></li>
<li>Webkit (Safari/Chrome): <code>-webkit-</code> (note: Some webkit prefixes only work in Safari, and not Chrome)</li>
</ul>
<p>As you might have guessed, one of the downsides of using these extensions is the fact that we must use all of the above prefixes to get the CSS3 style to render in Firefox, Safari, and Chrome. And no surprise to anyone, IE does not support CSS3 or do they have extensions like the other leading browsers. Alright, enough talking, lets dive right in! <em>Note: styles without a prefix are the actual W3 specification proposal.</em></p>
<h3>A Note About Demos on This Page</h3>
<p>The examples are all on this page, so if you&#8217;re not seeing some examples properly (or not at all), then the browser you&#8217;re using doesn&#8217;t support the particular CSS3 technique.</p>
<p><!--DROP SHADOWS SECTION--></p>
<h3>Drop Shadows</h3>
<p>The drop shadow effect accepts multiple values. First is simply the color of the shadow. It will accept four <code>length</code> values, and the first two are the x (horizontal) offset and the y (vertical) offset. The next value is the amount of blur added to the shadow. The fourth and final value is the spread amount of the blur. Box shadow will also accept an <code>inset</code> keyword that will create an inset shadow.</p>
<pre>
box-shadow: #333 3px 3px 4px;
-moz-box-shadow: #333 3px 3px 4px;
-webkit-box-shadow: #333 3px 3px 4px;
</pre>
<h4>Drop Shadow Demo:</h4>
<p><iframe src="http://downloads.sixrevisions.com/css3-ysk-dropshadows.html" width="100%" height="120" frameBorder="0" scrolling="no"></p>
<p>Your browser does not support iframes.</p>
<p></iframe><br />
<!--GRADIENT SECTION--></p>
<h3>Gradients</h3>
<p>Gradients can be pretty confusing at first, especially when comparing the differences between <code>-moz</code> and <code>-webkit</code>. With <code>-moz</code> you first define the direction of the gradient, then determine the starting and ending color. <code>-webkit</code> gradients take a little more code. First you define the type of gradient. The next two values define the direction. Finally, the last two values define the starting and ending color of the gradient.</p>
<pre>
-moz-linear-gradient(-90deg,#1aa6de,#022147);
-webkit-gradient(linear, left top, left bottom, from(#1aa6de), to(#022147));
</pre>
<h4>Gradients Demo:</h4>
<p><iframe src="http://downloads.sixrevisions.com/css3-ysk-gradients.html" width="100%" height="120" frameBorder="0" scrolling="no"></p>
<p>Your browser does not support iframes.</p>
<p></iframe><br />
<!--RGBA SECTION--></p>
<h3>RGBA</h3>
<p>The RGBA color method is actually easier than it may look at first. It takes four values, and in order they are: the amount of red, amount of green, amount of blue, and the level of opacity. Instead of using a hex (<code>#</code>) color, you set the color in RGB mode, while the level of opacity can give the color a transparent look. The opacity accepts values between <code>0</code> and <code>1</code>, with <code>0</code> being fully opaque and <code>1</code> being the actual defined color. The example below has an opacity value of <code>.5</code>, causing the element to be 50% transparent. <code>rgba</code> doesn&#8217;t actually require any of the browser extensions.</p>
<pre>
background-color: rgba(0, 54, 105, .5);
</pre>
<h4>RGBA Demo:</h4>
<p><iframe src="http://downloads.sixrevisions.com/css3-ysk-rgba.html" width="100%" height="230" frameBorder="0" scrolling="no"></p>
<p>Your browser does not support iframes.</p>
<p></iframe><br />
<!--HSL SECTION--></p>
<h3>HSL</h3>
<p>Along with RGBA, CSS3 may make the HSL color model available to us. This could give us a whole arsenal of colors and tones. In this color model, <code>HSL</code> stands for Hue, Saturation, and Lightness. Hue is a degree on the color wheel, while  Saturation and Lightness are percentage values of the colors.</p>
<pre>
background-color: hsl(209,41.2%, 20.6%);
</pre>
<h4>HSL Demo:</h4>
<p><iframe src="http://downloads.sixrevisions.com/css3-ysk-hsl.html" width="100%" height="120" frameBorder="0" scrolling="no"></p>
<p>Your browser does not support iframes.</p>
<p></iframe><br />
<!--BORDER COLOR SECTION--></p>
<h3>Border Color</h3>
<p>With this style, you must define <code>border-top</code>, <code>border-right</code>, <code>border-bottom</code>, and <code>border-left</code> separately to get the effect below. You will notice that I have defined an 8px border along with 8 different colors for each border color style. That&#8217;s because the same amount of colors needs to match the amount of pixels in the <code>border</code> definition.</p>
<pre>
border: 8px solid #000;
-moz-border-bottom-colors: #555 #666 #777 #888 #999 #aaa #bbb #ccc;
-moz-border-top-colors:    #555 #666 #777 #888 #999 #aaa #bbb #ccc;
-moz-border-left-colors:   #555 #666 #777 #888 #999 #aaa #bbb #ccc;
-moz-border-right-colors:  #555 #666 #777 #888 #999 #aaa #bbb #ccc;
</pre>
<h4>Border Color Demo:</h4>
<p><iframe src="http://downloads.sixrevisions.com/css3-ysk-bordercolor.html" width="100%" height="135" frameBorder="0" scrolling="no"></p>
<p>Your browser does not support iframes.</p>
<p></iframe><br />
<!--TEXT SELECTION COLOR--></p>
<h3>Text Selection Color</h3>
<p>I have to say I think that changing the text selection color is a pretty exciting new feature. I first saw this on <a href="http://www.css-tricks.com">css-tricks</a> and thought it was pretty sweet. With the <code>::selection</code> pseudo-element, you can change the <code>color</code> and <code>background</code> when the user highlights a text element. Pretty nifty if you ask me. <code>::selection</code> was removed form the current CSS3 draft, but lets hope they add it back in later!</p>
<pre>
::selection {
background: #3C0; /* Safari */
color: #90C;
}
::-moz-selection {
background: #3C0; /* Firefox */
color: #90C;
}
</pre>
<h4>Text Selection Color Demo:</h4>
<p><iframe src="http://downloads.sixrevisions.com/css3-ysk-textselectioncolor.html" width="100%" height="120" frameBorder="0" scrolling="no"></p>
<p>Your browser does not support iframes.</p>
<p></iframe><br />
<!-- --></p>
<h3>Transform</h3>
<p>With the <code>transform</code> style, you can make elements appear to &#8220;grow&#8221; when hovered. With a value above <code>1</code> added to <code>scale</code>, the element will increase in size. On the other hand, a value below <code>1</code> will cause the element to decrease in size. Along with <code>scale</code>, their are many different transforms available to use. Visit <a href="https://developer.mozilla.org/En/CSS/-moz-transform">Firefox&#8217;s developer page</a> to see what else you can use.</p>
<pre>
-moz-transform: scale(1.15);
-webkit-transform: scale(1.15);
</pre>
<h4>Transform Demo:</h4>
<p><iframe src="http://downloads.sixrevisions.com/css3-ysk-transform.html" width="100%" height="200" frameborder="0" scrolling="no"></p>
<p>Your browser does not support iframes.</p>
<p></iframe><br />
<!-- --></p>
<h3>Multi-column Layout</h3>
<p>With this new multi-column layout style, we can give our text a &#8220;newspaper&#8221; type look. This is very simple to implament compared to the normal way of doing this through CSS. Below I specified how many columns I want, what type of rule I want to seperate them, and how big of a gap I want between the columns. Simple huh?</p>
<pre>
-moz-column-count:3;
-moz-column-rule: solid 1px black;
-moz-column-gap: 20px;
</pre>
<h4>Multi-column Layout Demo:</h4>
<p><iframe src="http://downloads.sixrevisions.com/css3-ysk-multicolumn.html" width="100%" height="280" frameBorder="0" scrolling="no"></p>
<p>Your browser does not support iframes.</p>
<p></iframe><br />
<!--SUMMARY SECTION--></p>
<h3>Summary</h3>
<p>I hope you all are as excited about CSS3 as I am. It gives us so much more power as web designers and developers, and makes many aspects much more simple. Now, if we could only get <strong>ALL</strong> browsers to support it! Of course, what I just showed you are only some of the potential new features of CSS3. If you want more information, tips, and help, I encourage you to visit any and all of the websites below:</p>
<ul>
<li><a href="http://www.w3.org/Style/CSS/current-work">CSS: Current Work</a></li>
<li><a href="http://www.css3.info/">CSS3.info</a></li>
<li><a href="https://developer.mozilla.org/en/CSS_Reference/Mozilla_Extensions">Mozilla CSS Extensions</a></li>
<li><a href="http://webkit.org/">The WebKit Open Source Project</a></li>
</ul>
<h3>Related Content</h3>
<ul>
<li><a href="http://sixrevisions.com/interviews/six-questions-eric-meyer-on-css3/">Six Questions: Eric Meyer on CSS3</a></li>
<li><a href="http://sixrevisions.com/css/20-useful-resources-for-learning-about-css3/">20 Useful Resources for Learning about CSS3</a></li>
<li><a href="http://sixrevisions.com/javascript/10-easy-jquery-tricks-for-designers/">10 Easy jQuery Tricks for Designers</a></li>
<li><em>Related categories</em>: <a href="http://sixrevisions.com/category/css/">CSS</a> and <a href="http://sixrevisions.com/category/web-development/">Web Development</a></li>
</ul>
<h3>About the Author</h3>
<p class="about-author"><img src="http://images.sixrevisions.com/authors/andrew_roberts_small.jpg" alt="" width="80" height="80" /><strong>Andrew Roberts</strong> is first and foremost a Christian, with a passion for  web design and development. His web interests focus mostly on HTML/CSS, JavaScript, &amp; PHP/MySQL. When he&#8217;s not glued to the computer,  he&#8217;s  spending time with his girlfriend Kaitlynn, <a href="http://www.flickr.com/photos/zoonino">photographing  animals</a>, or reading. His  goal is to attend graduate school for  Biblical studies  &amp; ministry.</p>
]]></content:encoded>
			<wfw:commentRss>http://sixrevisions.com/css/css3-techniques-you-should-know/feed/</wfw:commentRss>
		<slash:comments>78</slash:comments>
		</item>
		<item>
		<title>10 Top-Notch CSS Editors</title>
		<link>http://sixrevisions.com/css/10-top-notch-css-editors/</link>
		<comments>http://sixrevisions.com/css/10-top-notch-css-editors/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 22:00:37 +0000</pubDate>
		<dc:creator>Jacob Gube</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://sixrevisions.com/?p=1504</guid>
		<description><![CDATA[In this article, you'll find some of the more popular CSS editors available on the market.]]></description>
			<content:encoded><![CDATA[<p><strong>CSS editors</strong> are  editors that focus solely on generating Cascading Style Sheets. Though you  could scrape by using a fully-featured IDE or source code editor &#8211; CSS editors  may offer specialized functions and features to help you write better CSS,  quicker.</p>
<p>In this article, you&#8217;ll find some of the more <em>popular CSS editors</em> available on the  market.</p>
<h3><a href="http://www.skybound.ca/">Stylizer</a></h3>
<p><a href="http://www.skybound.ca/"><img src="http://images.sixrevisions.com/2009/08/25-01_stylizer.png" width="546" height="329" alt="Stylizer" /></a></p>
<p><span id="more-1504"></span></p>
<p><em>Stylizer</em> is a  visual CSS code editor. It has real-time preview that renders changes on your  web browser on the fly as you make them. It also has a point-and-click  interface (called &quot;Bullseye&quot;) which allows you to target page  elements by clicking on them, making CSS editing a cinch. Stylizer is available  only for Windows and Mac OS.</p>
<h3><a href="http://westciv.com/style_master/">Style Master</a></h3>
<p><a href="http://westciv.com/style_master/"><img src="http://images.sixrevisions.com/2009/08/25-02_stylemaster.png" width="478" height="303" alt="Style Master" /></a></p>
<p><em>Style Master</em> is a cross-platform  CSS development application that comes with a robust set of features such as  auto-completion, on the fly code editing and rendering of dynamically-generated  pages (such as PHP, .NET, and Ruby on Rails), and  a hierarchic display of CSS fields. It also  has a feature called Support Watcher which warns you of potential CSS bugs for  certain browsers.</p>
<h3><a href="http://www.blumentals.net/rapidcss/">RapidCSS</a></h3>
<p><a href="http://www.blumentals.net/rapidcss/"><img src="http://images.sixrevisions.com/2009/08/25-03_rapidcss.png" width="546" height="374" alt="RapidCSS" /></a></p>
<p><em>RapidCSS</em> is ideal  for writing CSS code; it is lightweight and offers a wide range of features  like code auto complete, syntax highlighting, built-in CSS references and  various shortcuts for CSS tags.</p>
<h3><a href="http://www.blumentals.net/csstool/">Free CSS Toolbox</a></h3>
<p><a href="http://www.blumentals.net/csstool/"><img src="http://images.sixrevisions.com/2009/08/25-04_freecss_toolbox.png" width="546" height="315" alt="Free CSS Toolbox" /></a></p>
<p><em>Free CSS toolbox</em> is a simple text editor for CSS. It&#8217;s very lightweight and simple to use. It  has a syntax highlighter feature, code auto-complete, CSS checker, CSS  validator and compressor.</p>
<h3><a href="http://www.coffeecup.com/stylesheet-maker/">CoffeeCup StyleSheet  Maker</a></h3>
<p><a href="http://www.coffeecup.com/stylesheet-maker/"><img src="http://images.sixrevisions.com/2009/08/25-05_coffeecup_stylesheet_maker.png" width="546" height="386" alt="CoffeeCup StyleSheet Maker" /></a></p>
<p><em>CoffeeCup StyleSheet Maker</em> is another CSS editor which offers many functionalities to edit CSS, but still  not very flexible to increase productivity to its highest level. It has support  for shortcut keys for tags, classes, and margins to reduce the amount of typing  you need to do. It also comes jam-packed with premade code snippets for common  CSS styles.</p>
<h3><a href="http://enginsite.com/css-editor.htm">EnginSite CSS Editor</a></h3>
<p><a href="http://enginsite.com/css-editor.htm"><img src="http://images.sixrevisions.com/2009/08/25-06_enginesite_css.png" width="546" height="436" alt="EnginSite CSS Editor" /></a></p>
<p><em>EnginSite CSS Editor</em> is a good CSS editor with &quot;instant&quot; preview. This editor is ideal for  beginning designers focused on simple tasks and designs.</p>
<h3><a href="http://macrabbit.com/cssedit/">CSSEdit</a></h3>
<p><a href="http://macrabbit.com/cssedit/"><img src="http://images.sixrevisions.com/2009/08/25-07_css_edit.jpg" width="550" height="386" alt="CSS Edit" /></a></p>
<p><em>CSSEdit</em> stands in  the middle between sophisticated web development editors and basic ones. CSS Edit  is sleek and clean. It&#8217;s best suited for first time and casual CSS coders.</p>
<h3><a href="http://www.apple.com/downloads/macosx/internet_utilities/jellyfishcss.html">JellyFish-CSS</a></h3>
<p><a href="http://www.apple.com/downloads/macosx/internet_utilities/jellyfishcss.html"><img src="http://images.sixrevisions.com/2009/08/25-08_jellyfish-css.png" width="510" height="365" alt="JellyFish-CSS" /></a></p>
<p><em>JellyFish CSS </em> is a smart and simple CSS editor. It helps  edit CSS code easily and quickly. It will also help you steer clear of CSS  syntax errors with its Code-sense feature.</p>
<h3><a href="http://www.improvingcode.com/snapcss/">SnapCSS</a></h3>
<p><a href="http://www.improvingcode.com/snapcss/"><img src="http://images.sixrevisions.com/2009/08/25-09_snapcss.png" width="550" height="387" alt="SnapCSS" /></a></p>
<p><em>SnapCSS</em> is a  windows-only CSS editor that is extremely lightweight, featuring a super simple  text-editor interface. It has a beautify code function that automatically  formats and standardizes your CSS.</p>
<h3><a href="http://www.apple.com/downloads/macosx/internet_utilities/simplecss.html">SimpleCSS</a></h3>
<p><a href="http://www.apple.com/downloads/macosx/internet_utilities/simplecss.html"><img src="http://images.sixrevisions.com/2009/08/25-10_simplecss.jpg" width="450" height="360" alt="SimpleCSS" /></a></p>
<p><em>SimpleCSS</em> is a Mac  OS application for easily creating stylesheets from scratch. It has an import  feature which allows you to pool together several stylesheets into one file.  SimpleCSS also features drag-and-drop capabilities for reordering your style  rules, so that you may organize them in the manner you need.</p>
<h3>What CSS editor did we miss?</h3>
<p>Was your favorite CSS editor not mentioned here? Share your  thoughts with us in the comments. <em>* Edited by Jacob Gube</em></p>
<h3>Related Content</h3>
<ul>
<li><a href="http://sixrevisions.com/css/30-exceptional-css-navigation-techniques/">30  Exceptional CSS Navigation Techniques</a></li>
<li><a href="http://sixrevisions.com/css/css-tips/css-tip-1-resetting-your-styles-with-css-reset/">CSS  Tip #1: Resetting Your Styles with CSS Reset</a></li>
<li><a href="http://sixrevisions.com/css/css-tips/css-tip-2-structural-naming-convention-in-css/">Structural  Naming Convention in CSS</a></li>
<li><em>Related categories</em>: <a href="http://sixrevisions.com/category/css/">CSS</a> and <a href="http://sixrevisions.com/category/tools/">Tools</a></li>
</ul>
<h3>About the Author</h3>
<p class="about-author"><img src="http://images.sixrevisions.com/authors/omar_abid_small.jpg" alt="" width="80" height="80" /><strong>Omar Abid</strong> is a blogger from Sfax, Tunisia.  Check out his weblog, called <a href="http://codeinput.com/"><strong>Code Input</strong></a>,  which covers the topic of coding and web development. If you&#8217;d like to connect  with Omar, <a href="http://twitter.com/omarabid"><strong>follow him on Twitter</strong></a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sixrevisions.com/css/10-top-notch-css-editors/feed/</wfw:commentRss>
		<slash:comments>54</slash:comments>
		</item>
		<item>
		<title>30 Exceptional CSS Navigation Techniques</title>
		<link>http://sixrevisions.com/css/30-exceptional-css-navigation-techniques/</link>
		<comments>http://sixrevisions.com/css/30-exceptional-css-navigation-techniques/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 18:36:24 +0000</pubDate>
		<dc:creator>Jacob Gube</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://sixrevisions.com/?p=675</guid>
		<description><![CDATA[In this article, you will find a collection of excellent  navigation techniques that use the CSS to provide users with an impressive  interface.]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve seen innovative ways in which designers and developers  have used CSS to innovate upon its shortcomings. Here, you&#8217;ll find some of the  best ways to use CSS for your website navigation. You&#8217;ll find a variety of  techniques that truly showcase the capabilities of CSS. </p>
<p>In this article, you will find a collection of excellent  navigation techniques that use the CSS to provide users with an impressive  interface.</p>
<h4>1. <a href="http://www.cssplay.co.uk/menu/menu_map.html">The  Menu menu</a></h4>
<p><a href="http://www.cssplay.co.uk/menu/menu_map.html"><img src="http://images.sixrevisions.com/2009/04/13-09_menu_menu.jpg" width="500" height="306" alt="The Menu menu" /></a></p>
<p><span id="more-675"></span></p>
<p>This another great CSS menu Stu Nicholls that&#8217;s unique &#8211;  hovering over a menu item reveals a submenu. If you want get started with this  menu just simple view the source code. <em>Demo in page</em>.</p>
<h4>2. <a href="http://www.shingokko.com/blog_post.aspx?t=pure-css-hover-menu">Pure CSS  hover menu</a></h4>
<p><a href="http://www.shingokko.com/resources/hover_menu_sample_working.htm"><img src="http://images.sixrevisions.com/2009/04/13-28_css_hover_menu.jpg" width="500" height="234" alt="Pure CSS hover menu" /></a><span class="figure-caption"><a href="http://www.shingokko.com/resources/hover_menu_sample_working.htm" target="_blank">View Demo</a></span></p>
<p>In this CSS technique, you&#8217;ll learn to create a  vertically-oriented CSS hover menu that reveals a submenu when a menu item is  hovered on.</p>
<p>&nbsp;</p>
<h4>3. <a href="http://13styles.com/css-menus/matte/" target="_blank">Matte CSS Menu</a></h4>
<p><a href="http://13styles.com/code/matte/"><img src="http://images.sixrevisions.com/2009/04/13-01_styles.png" width="500" height="168" alt="Matte CSS" /></a><span class="figure-caption"><a href="http://13styles.com/code/matte/" target="_blank">View Demo</a></span></p>
<p>Matte is a simple CSS menu with rounded corners using two  small images only from 13styles. It is maintained by <a href="http://www.davidappleyard.org/" target="_blank">David Appleyard</a> who  has lots of simple and advanced CSS-based menus.</p>
<h4>4. <a href="http://www.3point7designs.com/blog/2007/12/22/advanced-css-menu-trick/" target="_blank">CSS Blur Menu</a></h4>
<p><a href="http://www.3point7designs.com/web-design2.html"><img src="http://images.sixrevisions.com/2009/04/13-08_blur_menu.png" width="500" height="236" alt="CSS Blur Menu" /></a><span class="figure-caption"><a href="http://www.3point7designs.com/web-design2.html" target="_blank">View Demo</a></span></p>
<p>This CSS technique shows you a method from creating a menu  that blurs sibling menu items when you hover over an item.</p>
<h4>5. <a href="http://hv-designs.co.uk/2008/09/18/css-menu-with-icons/" target="_blank">CSS Navigation with Glowing Icons</a></h4>
<p><a href="http://www.hv-designs.co.uk/tutorials/css_navigation2/navigation.html"><img src="http://images.sixrevisions.com/2009/04/13-27_css_navigation_icon.jpg" width="500" height="141" alt="CSS Navigation with Glowing Icons" /></a><span class="figure-caption"><a href="http://hv-designs.co.uk/2008/09/18/css-menu-with-icons/" target="_blank">View Demo</a></span></p>
<p>This beautiful CSS menu technique can be created by  following along this extensive step-by-step tutorial.</p>
<h4>6. <a href="http://kailoon.com/css-sliding-door-using-only-1-image/" target="_blank">CSS  Sliding Door using only 1 image</a></h4>
<p><a href="http://kailoon.com/example/sliding-door/css-sliding-door-blue.html"><img src="http://images.sixrevisions.com/2009/04/13-17_css_sliding_door.jpg" width="500" height="110" alt="CSS Sliding Door using only 1 image" /></a><span class="figure-caption"><a href="http://kailoon.com/example/sliding-door/css-sliding-door-blue.html" target="_blank">View Demo</a></span></p>
<p>This slick CSS menu is based on the <a href="http://www.alistapart.com/articles/slidingdoors/">Sliding Doors</a> technique but only uses one image.</p>
<h4>7. <a href="http://superfluousbanter.org/archives/2004/05/navigation-matrix-reloaded/" target="_blank">Navigation Matrix Reloaded</a></h4>
<p><a href="http://www.nundroo.com/nav_matrix/welcome2.html"><img src="http://images.sixrevisions.com/2009/04/13-18_css_matrix_reloaded.png" width="500" height="105" alt="Navigation Matrix Reloaded" /></a><span class="figure-caption"><a href="http://www.nundroo.com/nav_matrix/welcome2.html" target="_blank">View Demo</a></span></p>
<p>This stylish navigation menu technique uses a CSS sprite.</p>
<p>&nbsp;</p>
<h4>8. <a href="http://e-lusion.com/design/menu/" target="_blank">CSS Horizontal Menu</a></h4>
<p><a href="http://e-lusion.com/design/menu/"><img src="http://images.sixrevisions.com/2009/04/13-11_horizontal_menu.png" width="500" height="148" alt="CSS Horizontal Menu" /></a><span class="figure-caption"><a href="http://e-lusion.com/design/menu/" target="_blank">View Demo</a></span></p>
<p><a href="http://e-lusion.com/">Ian Main</a> provides a great  set of free CSS menus that are stylish and easy to use.</p>
<h4>9. <a href="http://www.styledmenus.com/2009/01/woody-css-menu.html" target="_blank">Woody  CSS Menu</a></h4>
<p><a href="http://www.styledmenus.com/2009/01/woody-css-menu.html"><img src="http://images.sixrevisions.com/2009/04/13-02_woody_css_menu.jpg" width="500" height="68" alt="Woody CSS Menu." /></a></p>
<p>Woody is a pre-made CSS menu that&#8217;s ready to use and has  been tested in IE6, IE 7, Firefox, Opera, Safari, Chrome. <em>Demo in the page</em>.</p>
<h4>10. <a href="http://www.webdesignerwall.com/tutorials/advanced-css-menu/" target="_blank">Advanced CSS Menu</a></h4>
<p><a href="http://www.webdesignerwall.com/tutorials/advanced-css-menu/"><img src="http://images.sixrevisions.com/2009/04/13-03_advanced_css_menu.png" width="500" height="107" alt="Advanced CSS Menu" /></a></p>
<p>Advanced CSS Menu was created by <a href="http://www.ndesign-studio.com/" target="_blank">Nick La</a> and uses an advanced (extraordinary) list menu  utilizing the CSS position property. <em>Demo in the page</em>.</p>
<h4>11. <a href="http://www.cssmenumaker.com/builder/menu_info.php?menu=019" target="_blank">Simple Yellow Tabbed</a></h4>
<p><a href="http://www.cssmenumaker.com/builder/menu_info.php?menu=019"><img src="http://images.sixrevisions.com/2009/04/13-04_simple_yellow_tabbed.jpg" width="500" height="97" alt="Simple Yellow Tabbed" /></a></p>
<p>This menu is from <a href="http://www.cssmenumaker.com/index.php" target="_blank">CSS Menu Generator</a> which has more free high quality menus. <em>Demo in the page</em>.</p>
<h4>12. <a href="http://www.jankoatwarpspeed.com/post/2009/01/19/Create-Vimeo-like-top-navigation.aspx" target="_blank">Vimeo-Like Top Navigation</a></h4>
<p><a href="http://www.jankoatwarpspeed.com/examples/vimeo_navigation/"><img src="http://images.sixrevisions.com/2009/04/13-05_vimeo_like.jpg" width="500" height="170" alt="Vimeo-Like Top Navigation" /></a><span class="figure-caption"><a href="http://www.jankoatwarpspeed.com/examples/vimeo_navigation/" target="_blank">View Demo</a></span></p>
<p>This CSS-based navigation menu is based on the <a href="http://vimeo.com/">Vimeo</a> primary menu.</p>
<h4>13. <a href="http://www.webvamp.co.uk/blog/coding/graphical-css-rollover-menu/" target="_blank">Apple Like Colorful CSS Menu</a></h4>
<p><a href="http://www.webvamp.co.uk/blog/coding/graphical-css-rollover-menu/"><img src="http://images.sixrevisions.com/2009/04/13-30_apple_like_colorful.jpg" width="500" height="189" alt="Apple Like Colorful CSS Menu" /></a></p>
<p>Learn a technique for mimicking Apple&#8217;s image rollover CSS  menu by following along this menu tutorial. <em>Demo in page</em>.</p>
<h4>14. <a href="http://www.designmeme.com/articles/hoverboxmenu/" target="_blank">CSS Hoverbox</a></h4>
<p><a href="http://www.designmeme.com/articles/hoverboxmenu/"><img src="http://images.sixrevisions.com/2009/04/13-06_hover_menu.png" width="500" height="110" alt="CSS Hoverbox" /></a></p>
<p>Inspired by the <a href="http://sonspring.com/journal/hoverbox-image-gallery">Hoverbox Image  Gallery</a> technique developed by Nathan Smith, CSS Hoverbox leans on the <code>background-position</code>  CSS property to superimpose rollover images on top of neighboring menu items. <em>Demo in page</em>.</p>
<h4>15. <a href="http://css.maxdesign.com.au/listamatic/experimental01.htm" target="_blank">Big  CSS Box</a></h4>
<p><a href="http://css.maxdesign.com.au/listamatic/experimental01.htm"><img src="http://images.sixrevisions.com/2009/04/13-07_big_box.jpg" width="500" height="146" alt="Big CSS Box" /></a></p>
<p>This is an experimental CSS menu that allows you to create a  scaling menu that adjusts depending on the browser&#8217;s width. <em>Demo in page</em>.</p>
<h4>16. <a href="https://www.servage.net/blog/2009/03/20/create-a-cool-css-based-drop-down-menu/">Simple  CSS-based drop-down menu</a></h4>
<p><a href="https://www.servage.net/blog/wp-content/uploads/2009/03/css-menu.html"><img src="http://images.sixrevisions.com/2009/04/13-10_drop_down.jpg" width="500" height="167" alt="Simple CSS-based drop-down menu" /></a><span class="figure-caption"><a href="https://www.servage.net/blog/wp-content/uploads/2009/03/css-menu.html" target="_blank">View Demo</a></span></p>
<p>This is a very basic CSS-based drop-down menu that&#8217;s  excellent for trying to grok the technique involved in creating drop-down menu  that doesn&#8217;t require client-side scripting.</p>
<h4>17. <a href="http://veerle.duoh.com/blog/comments/2_level_horizontal_navigation_in_css_with_images/" target="_blank">Two Level Horizontal Navigation in CSS</a></h4>
<p><a href="http://www.duoh.com/csstutorials/2levelmenu/index.html"><img src="http://images.sixrevisions.com/2009/04/13-12_css_horizontal_vreel.jpg" width="500" height="100" alt="Two Level Horizontal Navigation in CSS" /></a><span class="figure-caption"><a href="http://www.duoh.com/csstutorials/2levelmenu/index.html" target="_blank">View Demo</a></span></p>
<p><a href="http://veerle.duoh.com/blog/about/">Veerle Pieters</a> provides a CSS menu and tutorial created using <code>text-indent</code> CSS property.</p>
<h4>18. <a href="http://www.projectseven.com/tutorials/css/uberlinks/index.htm" target="_blank">Uberlink CSS List Menus</a></h4>
<p><a href="http://www.projectseven.com/tutorials/css/uberlinks/home.htm"><img src="http://images.sixrevisions.com/2009/04/13-14_uberlink.jpg" width="500" height="158" alt="Uberlink CSS List Menus" /></a><span class="figure-caption"><a href="http://www.projectseven.com/tutorials/css/uberlinks/home.htm" target="_blank">View Demo</a></span></p>
<p>This CSS navigation bar looks and behaves like an image-swapping  menu.</p>
<h4>19. <a href="http://www.cssnewbie.com/css-only-accordion/" target="_blank">CSS-Only Accordion Effect</a></h4>
<p><a href="http://www.cssnewbie.com/example/css-only-accordion/horizontal.html"><img src="http://images.sixrevisions.com/2009/04/13-16_css_accordian.jpg" width="500" height="299" alt="CSS-Only Accordion Effect" /></a><span class="figure-caption"><a href="http://www.cssnewbie.com/example/css-only-accordion/horizontal.html" target="_blank">View Demo</a></span></p>
<p>In this technique, you&#8217;ll witness a method for creating a  CSS-based accordion menu.</p>
<h4>20. <a href="http://tutorials.mezane.org/tabbed-navigation-using-css/#Introduction" target="_blank">Tabbed Navigation Using CSS</a></h4>
<p><a href="http://tutorials.mezane.org/tabbed-navigation-using-css/#Introduction"><img src="http://images.sixrevisions.com/2009/04/13-19_tabbed_navigation_css.png" width="500" height="196" alt="Tabbed Navigation Using CSS" /></a></p>
<p>Here is another excellent method for creating a module tab  interface based purely on CSS. Use the tabs in the page to learn about the  instructions on how to implement this technique.</p>
<h4>21. <a href="http://www.simplebits.com/notebook/2003/06/07/mini_tabs_the_untab_tab.html" target="_blank">CSS Mini Tabs (the UN-tab, tab)</a></h4>
<p><a href="http://www.simplebits.com/bits/minitabs.html"><img src="http://images.sixrevisions.com/2009/04/13-20_mini_tab.jpg" width="500" height="94" alt="CSS Mini Tabs (the UN-tab, tab)" /></a><span class="figure-caption"><a href="http://www.simplebits.com/bits/minitabs.html" target="_blank">View Demo</a></span></p>
<p>This CSS menu on the popular web design agency <a href="http://www.simplebits.com/about/">SimpleBits</a> shows a way for creating  mini tabs. View the source code on the demo page to learn how it works (the  code is inline and formatted well for readability for your convenience).</p>
<h4>22. <a href="http://www.alistapart.com/articles/horizdropdowns" target="_blank">Drop-Down Menus, Horizontal Style</a></h4>
<p><a href="http://www.alistapart.com/d/horizdropdowns/horizontal.htm"><img src="http://images.sixrevisions.com/2009/04/13-21_drop_down_list_apart.png" width="500" height="205" alt="Drop-Down Menus, Horizontal Style" /></a><span class="figure-caption"><a href="http://www.alistapart.com/d/horizdropdowns/horizontal.htm" target="_blank">View Demo</a></span></p>
<p>This <a href="http://www.alistapart.com/about/">A List Apart</a> CSS menu technique is for a fly-out submenu that appears on the right of the top-level  menu, leveraging the <code>position: absolute</code> CSS property to move the submenu  to the appropriate level.</p>
<h4>23. <a href="http://www.456bereastreet.com/archive/200501/turning_a_list_into_a_navigation_bar/" target="_blank">List Into a Navigation Bar</a></h4>
<p><a href="http://www.456bereastreet.com/lab/ul_navbar/step11/"><img src="http://images.sixrevisions.com/2009/04/13-22_list_navigation.jpg" width="500" height="67" alt="List Into a Navigation Bar" /></a><span class="figure-caption"><a href="http://www.456bereastreet.com/lab/ul_navbar/step11/" target="_blank">View Demo</a></span></p>
<p>Roger Johansson of <a href="http://www.456bereastreet.com/about/">456 Berea Street</a> shows us the  basic principles of turning an unordered list into a navigation bar &#8211; it&#8217;s a  great starting point for beginners to learn about building a semantic HTML  structure and then styling it with CSS.</p>
<h4>24. <a href="http://www.kalsey.com/tools/csstabs/" target="_blank">CSS Tabs with Submenus</a></h4>
<p><a href="http://www.kalsey.com/tools/csstabs/"><img src="http://images.sixrevisions.com/2009/04/13-23_css_tab_submenu.jpg" width="500" height="133" alt="CSS Tabs with Submenus" /></a></p>
<p>This CSS menu technique will allow you to create CSS tabs  that have submenus for a two-level hierarchy. <em>Demo in page</em>.</p>
<h4>25. <a href="http://vikiworks.com/2008/03/29/a-css-block-navigation-menu/" target="_blank">CSS Block Navigation Menu</a></h4>
<p><img src="http://images.sixrevisions.com/2009/04/13-26_css_block_menu.png" width="500" height="84" alt="CSS Block Navigation Menu" /></p>
<p>This CSS menu technique allows you to create a navigation  menu that has item with descriptions. <em>Demo in page</em>.</p>
<h4>26. <a href="http://www.zenelements.co.uk/blog/coding-sprite-navigation-xhtml-css/" target="_blank">XHTML &amp; CSS Sprite Navigation</a></h4>
<p><a href="http://www.zenelements.co.uk/blog/images/tutorials/web-design-development/sprite-navigation/sprite-navigation-example.html"><img src="http://images.sixrevisions.com/2009/04/13-13_css_sprite.jpg" width="500" height="65" alt="XHTML &amp; CSS Sprite Navigation" /></a><span class="figure-caption"><a href="http://www.zenelements.co.uk/blog/images/tutorials/web-design-development/sprite-navigation/sprite-navigation-example.html" target="_blank">View Demo</a></span></p>
<p>This stylish CSS sprite menu technique has three states:  idle, hover, and clicked.</p>
<h4>27. <a href="http://learnola.com/2008/10/28/xhtml-tutorial-css-tabbed-menu/" target="_blank">XHTML CSS Tabbed Menu</a></h4>
<p><a href="http://talentedpixel.com/wp-content/themes/revolution_music-10/tab-example.html"><img src="http://images.sixrevisions.com/2009/04/13-15_xhtml_css_tab.png" width="500" height="135" alt="XHTML CSS Tabbed Menu" /></a><span class="figure-caption"><a href="http://talentedpixel.com/wp-content/themes/revolution_music-10/tab-example.html" target="_blank">View Demo</a></span></p>
<p>Learn how to create module tabs without the use of  client-side scripting.</p>
<h4>28. <a href="http://thedesignsuperhero.com/2008/04/tutorial-to-create-a-pretty-cool-simple-horizontal-css-menu/" target="_blank">Cool, Simple, Horizontal CSS Menu</a></h4>
<p><a href="http://72.18.130.22/~thedesig/wp-content/uploads/2008/04/css_menu.html"><img src="http://images.sixrevisions.com/2009/04/13-24_cool_horizontal.jpg" width="500" height="85" alt="XHTML &amp; CSS Sprite Navigation" /></a><span class="figure-caption"><a href="http://72.18.130.22/~thedesig/wp-content/uploads/2008/04/css_menu.html" target="_blank">View Demo</a></span></p>
<p>Learn to create a straightforward technique for creating a  CSS based menu.</p>
<h4>29. <a href="http://green-beast.com/experiments/css_menu_descriptions.php" target="_blank">CSS Menu with Descriptions</a></h4>
<p><a href="http://green-beast.com/experiments/css_menu_descriptions.php"><img src="http://images.sixrevisions.com/2009/04/13-25_css_menu_w_description.jpg" width="500" height="201" alt="CSS Menu with Descriptions" /></a><span class="figure-caption"><a href="http://green-beast.com/experiments/css_menu_descriptions.php" target="_blank">View Demo</a></span></p>
<p>This technique showcases a method for creating a menu that  expands when hovered upon.</p>
<h4>30. <a href="http://www.nublue.co.uk/blog/css-hover-button/" target="_blank">CSS Hover Button</a></h4>
<p><a href="http://www.nucopy.com/"><img src="http://images.sixrevisions.com/2009/04/13-29_css_hover.jpg" width="500" height="219" alt="CSS Hover Button" /></a><span class="figure-caption"><a href="http://www.nucopy.com/" target="_blank">View Demo</a></span></p>
<p>Create CSS button-style navigation menu by checking out this  excellent tutorial.</p>
<h3>Related content</h3>
<ul>
<li><a href="http://sixrevisions.com/css/innovative-and-experimental-css-examples-and-techniques/">Innovative  (and Experimental) CSS Examples and Techniques</a></li>
<li><a href="http://sixrevisions.com/css/css-tips/css-tip-1-resetting-your-styles-with-css-reset/">CSS  Tip #1: Resetting Your Styles with CSS Reset</a></li>
<li><a href="http://sixrevisions.com/css/css-tips/css-tip-2-structural-naming-convention-in-css/">Structural  Naming Convention in CSS</a></li>
<li><a href="http://sixrevisions.com/interviews/six-questions-eric-meyer-on-css3/">Six  Questions: Eric Meyer on CSS3</a></li>
<li><strong>Related category: <a href="http://sixrevisions.com/category/css/">CSS</a>, <a href="http://sixrevisions.com/category/web_design/">Web Design</a></strong></li>
</ul>
<h3>About the Author </h3>
<p class="about-author"><img src="http://images.sixrevisions.com/authors/kawsar_ali_small.jpg" alt="" width="80" height="80" /><span class="author-bio-text"><strong>Kawsar Ali</strong> is a web designer, graphic designer, and wannabe photographer  based in NY, U.S. He&#8217;s also the founder of <a href="http://desizntech.info/"><strong>Desizntech</strong></a>,a site to find  tips about web design, Mac, PC and more. If you&#8217;d like to connect with  him, you can follow him on <a href="https://twitter.com/desizntech" target="_blank"><strong>Twitter</strong></a> or at his<a href="http://i-exist.co.cc/" target="_blank"><strong> Personal Website</strong></a>.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://sixrevisions.com/css/30-exceptional-css-navigation-techniques/feed/</wfw:commentRss>
		<slash:comments>63</slash:comments>
		</item>
		<item>
		<title>20 Useful Resources for Learning about CSS3</title>
		<link>http://sixrevisions.com/css/20-useful-resources-for-learning-about-css3/</link>
		<comments>http://sixrevisions.com/css/20-useful-resources-for-learning-about-css3/#comments</comments>
		<pubDate>Wed, 28 Jan 2009 14:58:20 +0000</pubDate>
		<dc:creator>Jacob Gube</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Resources]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Web Standards]]></category>

		<guid isPermaLink="false">http://sixrevisions.com/?p=375</guid>
		<description><![CDATA[Though W3C&#8217;s CSS3 specifications aren&#8217;t finalized yet,  modern web browsers such as Mozilla Firefox, Opera, and WebKit-based browsers  already have full or partial support for them.
As a web developer, it&#8217;s crucial to be well-informed about modern  and future web standards. To help you stay ahead of the curve &#8211; here are 20 [...]]]></description>
			<content:encoded><![CDATA[<p>Though W3C&#8217;s CSS3 specifications aren&#8217;t finalized yet,  modern web browsers such as Mozilla Firefox, Opera, and WebKit-based browsers  already have full or partial support for them.</p>
<p>As a web developer, it&#8217;s crucial to be well-informed about modern  and future web standards. To help you stay ahead of the curve &#8211; here are <strong>20 excellent resources on the topic of CSS3</strong>.</p>
<h3>1. <a href="http://www.w3.org/Style/CSS/current-work">CSS3 Progress Report</a></h3>
<p><a href="http://www.w3.org/Style/CSS/current-work"><img src="http://images.sixrevisions.com/2009/01/24-01_css_progress_report.png" alt="CSS3 Progress Report - screen shot." width="550" height="230" /></a></p>
<p><span id="more-375"></span></p>
<p>The <em>CSS3 Progress Report</em> is a web page by the <a href="http://www.w3.org/Style/CSS/current-work">CSS  Working Group</a> outlining the current status of all the CSS3 modules. For  would-be contributors, this may be a helpful resource in discovering places  where you can potentially <a title="If you want to help section on W3C CSS: Current Work page." href="http://www.w3.org/Style/CSS/current-work#contribute">contribute</a>.</p>
<h3>2. <a href="http://www.webmonkey.com/tutorial/Get_Started_with_CSS_3">Get  Started with CSS 3</a></h3>
<p><a href="http://www.webmonkey.com/tutorial/Get_Started_with_CSS_3"><img src="http://images.sixrevisions.com/2009/01/24-02_getting_started_css3.png" alt="Get Started with CSS 3 - screen shot." width="550" height="230" /></a></p>
<p>Web Monkey has a tutorial on how to get started with CSS3.  It will give you an overview of some CSS3 features that are already supported  by modern browsers. This is a great article to read for those that are just  beginning to explore CSS3.</p>
<h3>3. <a href="http://dev.opera.com/articles/view/progressive-enhancement-with-css-3-a-be/">Progressive  Enhancement with CSS 3</a></h3>
<p><a href="http://dev.opera.com/articles/view/progressive-enhancement-with-css-3-a-be/"><img src="http://images.sixrevisions.com/2009/01/24-03_progressive_enhancement_css3.png" alt="Progressive Enhancement with CSS 3 - screen shot." width="550" height="230" /></a></p>
<p>Opera – one of the web browsers in the forefront of  supporting CSS3 specs – has an excellent tutorial on a <a title="Wikipedia entry on Progressive enhancement." href="http://en.wikipedia.org/wiki/Progressive_enhancement">progressive enhancement</a> approach to CSS3 usage that discusses how you can utilize CSS3 for  modern/cutting-edge browsers yet still have a design that&#8217;s accessible to older  browsers that don&#8217;t support it.</p>
<h3>4. <a href="http://www.w3.org/TR/CSS-access">Accessibility Features of CSS</a></h3>
<p><a href="http://www.w3.org/TR/CSS-access"><img src="http://images.sixrevisions.com/2009/01/24-04_accessibility_css3.png" alt="Accessibility Features of CSS - screen shot." width="550" height="230" /></a></p>
<p>With the rise in popularity of mobile hand held devices and  non-traditional web browsers such as screen readers, the <a title="CSS Working Group Members page." href="http://www.w3.org/Style/CSS/members.php3">CSS Working Group</a> puts accessibility  as one of the leading issues that will be addressed in CSS3. This W3C document  outlines some of the accessibility features and considerations that are inherent  in current and future CSS3 specifications.</p>
<h3>5. <a href="http://designshack.co.uk/tutorials/introduction-to-css3-part-1-what-is-it">Introduction  to CSS3</a> (Design Shack)</h3>
<p><a href="http://designshack.co.uk/tutorials/introduction-to-css3-part-1-what-is-it"><img src="http://images.sixrevisions.com/2009/01/24-05_introduction_css3.png" alt="Introduction to CSS3 (Design Shack) - screen shot." width="550" height="230" /></a></p>
<p>In this 5-part series, Design Shack gives readers an  excellent induction to the world of CSS3. The article series goes through an overview  of CSS3 in plain-speak and talks about some CSS3 techniques and topics such as <a href="http://designshack.co.uk/tutorials/introduction-to-css3-part-2-borders">borders</a> and <a href="http://designshack.co.uk/tutorials/introduction-to-css3-part-3-text-effects">text  effects</a>.</p>
<h3>6. <a href="http://www.css3.info/">CSS3 . Info</a></h3>
<p><a href="http://www.css3.info/"><img src="http://images.sixrevisions.com/2009/01/24-06_css3_info.png" alt="CSS3 . Info - screen shot." width="550" height="230" /></a></p>
<p><em>CSS3 . Info</em> is an enormously  comprehensive site about all things CSS3-related. They share news, interviews,  and resources from around the web regarding CSS3. CSS3 . Info also has a demo  section called <a href="http://www.css3.info/preview/">CSS3 Previews</a> so  that you can see CSS3 modules and features at work for browsers that support  them such as <a href="http://www.opera.com/">Opera</a> and <a href="http://webkit.org/">WebKit-based browsers</a>.</p>
<h3>7. <a href="http://www.w3.org/TR/css3-layout/">CSS Advanced Layout Module</a></h3>
<p><a href="http://www.w3.org/TR/css3-layout/"><img src="http://images.sixrevisions.com/2009/01/24-07_css3_advanced_layout.png" alt="CSS Advanced Layout Module - screen shot." width="550" height="230" /></a></p>
<p>Learn about one of the more <a title="John Resig blog post entitled CSS3 Template Layout." href="http://ejohn.org/blog/css3-template-layout/">popular</a> modules  in CSS 3 specs: the Advanced Layout Module. This resource is W3C&#8217;s working  draft and will show you just how great CSS3 will be for us developers.</p>
<h3>8. <a href="http://sixrevisions.com/interviews/six-questions-eric-meyer-on-css3/http:/sixrevisions.com/interviews/six-questions-eric-meyer-on-css3/">Six  Questions: Eric Meyer on CSS3</a></h3>
<p><a href="http://sixrevisions.com/interviews/six-questions-eric-meyer-on-css3/http:/sixrevisions.com/interviews/six-questions-eric-meyer-on-css3/"><img src="http://images.sixrevisions.com/2009/01/24-08_eric_meyer_css3.jpg" alt="Six Questions: Eric Meyer on CSS3 - screen shot." width="550" height="230" /></a></p>
<p>Six Revisions was fortunate enough to discuss CSS3 with  celebrated CSS expert, <a title="Eric Meyer blog." href="http://meyerweb.com/">Eric  Meyer</a>. In this interview, Eric Meyer talks about what excites him the most  about CSS3, the modular approach to CSS3 specs development, and JavaScript&#8217;s  relationship to CSS3.</p>
<h3>9. <a href="http://westciv.com/iphonetests/">CSS3 properties tests for webkit  based browsers</a></h3>
<p><a href="http://westciv.com/iphonetests/"><img src="http://images.sixrevisions.com/2009/01/24-09_css3_webkit_browsers.png" alt="CSS3 properties tests for webkit based browsers - screen shot." width="550" height="230" /></a></p>
<p>In this live demonstration, you&#8217;ll find properties currently  supported (and unsupported) by WebKit-based browsers such as Safari; it also  provides you information about iPhone&#8217;s support of these properties.</p>
<h3>10. <a href="http://fantasai.inkedblade.net/style/discuss/wasp-feedback-2008">WaSP  Community CSS3 Feedback</a></h3>
<p><a href="http://fantasai.inkedblade.net/style/discuss/wasp-feedback-2008"><img src="http://images.sixrevisions.com/2009/01/24-10_css3_feedback.png" alt="WaSP Community CSS3 Feedback - screen shot." width="550" height="230" /></a></p>
<p>This article is an excellent summary of the feedback  received from the Web Standards Project (WaSP) blog post entitled, &#8220;<a href="http://www.webstandards.org/2008/01/18/tell-the-css-wg-what-you-want-from-css3/">Tell  the CSS WG what you want from CSS3</a>&#8220;. It&#8217;s a great read to see what web  developers around the world think about current CSS3 specs.</p>
<h3>11. <a href="http://dev.opera.com/articles/view/css-3-attribute-selectors/">CSS  3 attribute selectors</a></h3>
<p><a href="http://dev.opera.com/articles/view/css-3-attribute-selectors/"><img src="http://images.sixrevisions.com/2009/01/24-11_css3_attribute_selectors.png" alt="CSS 3 attribute selectors - screen shot." width="550" height="230" /></a></p>
<p>An exciting improvement in CSS3 is the ability for very  complex and specific DOM selection. This tutorial on Dev.Opera shows you the  potentials of the new attribute selection features in CSS3.</p>
<h3>12. <a href="http://www.w3.org/TR/css3-selectors/">W3C: Selectors</a></h3>
<p><a href="http://www.w3.org/TR/css3-selectors/"><img src="http://images.sixrevisions.com/2009/01/24-12_css_w3c_selectors.png" alt="W3C: Selectors - screen shot." width="550" height="230" /></a></p>
<p>W3C&#8217;s working draft of CSS3 Selectors is an excellent  introduction into the concept of Selectors in CSS3.</p>
<h3>13. <a href="http://xhtml.com/en/css/conversation-with-css-3-team/">Conversation  with CSS 3 team</a></h3>
<p><a href="http://xhtml.com/en/css/conversation-with-css-3-team/"><img src="http://images.sixrevisions.com/2009/01/24-13_xhtml_css3_interview.png" alt="Conversation with CSS 3 team - screen shot." width="550" height="230" /></a></p>
<p>XHTML.com&#8217;s interview of <a title="Web page about Bert Bos on W3C." href="http://www.w3.org/People/Bos/">Bert  Bos</a> (former chairman of W3C&#8217;s CSS Working Group) is an insightful look at  CSS3 development through the eyes of a leading expert in CSS.</p>
<h3>14. <a href="http://mattwilcox.net/archive/entry/id/1031/">The fundamental  problems with CSS3</a></h3>
<p><a href="http://mattwilcox.net/archive/entry/id/1031/"><img src="http://images.sixrevisions.com/2009/01/24-14_fundamental_problems_css3.jpg" alt="The fundamental problems with CSS3 - screen shot." width="550" height="230" /></a></p>
<p>This article by <a title="About Matt Wilcox on Matt Wilcox .net" href="http://mattwilcox.net/about/">Matt Wilcox</a> discusses some of  the current issues surrounding CSS3.</p>
<h3>15. <a href="http://www.w3.org/blog/CSS">CSS Working Group Blog</a></h3>
<p><a href="http://www.w3.org/blog/CSS"><img src="http://images.sixrevisions.com/2009/01/24-15_w3c_working_group_blog.png" alt="CSS Working Group Blog - screen shot." width="550" height="230" /></a></p>
<p>The people in charge of maintaining and developing CSS  standards &#8211; the CSS Working Group (CSS WG)   -  has a regularly updated weblog  that shares useful information about CSS3.</p>
<h3>16. <a href="http://24ways.org/2006/rounded-corner-boxes-the-css3-way">Rounded  Corner Boxes the CSS3 Way</a></h3>
<p><a href="http://24ways.org/2006/rounded-corner-boxes-the-css3-way"><img src="http://images.sixrevisions.com/2009/01/24-16_rounded_corners_css3.jpg" alt="Rounded Corner Boxes the CSS3 Way - screen shot." width="550" height="230" /></a></p>
<p>24 Ways, an annual online publication that puts out articles  by <a title="Authors page on 24 Ways." href="http://24ways.org/authors">top web  professionals</a>, has a tutorial on rounded corner boxes written by CSS expert <a title="Andy Budd personal site." href="http://andybudd.com/">Andy Budd</a>.  The tutorial showcases one of CSS3&#8217;s styling improvements: rounded corners  without using CSS backgrounds.</p>
<h3>17. <a href="http://www.smashingmagazine.com/2009/01/08/push-your-web-design-into-the-future-with-css3/">Push  Your Web Design Into The Future With CSS3</a></h3>
<p><a href="http://www.smashingmagazine.com/2009/01/08/push-your-web-design-into-the-future-with-css3/"><img src="http://images.sixrevisions.com/2009/01/24-17_css3_push_web_design.jpg" alt="Push Your Web Design Into The Future With CSS3 - screen shot." width="550" height="230" /></a></p>
<p>Smashing Magazine&#8217;s article on CSS3 by graphic/web designer <a title="Personal site of Chris Spooner." href="http://www.chrisspooner.com/">Chris  Spooner</a> delves into crafting web designs that leverage current CSS3 specs.  It&#8217;s an inspiring scrutiny of the things that you can do with CSS3 – <em>right now</em>.</p>
<h3>18. <a href="http://www.mandarindesign.com/opacity.html#transintro">Introduction  to CSS3 Transparency</a></h3>
<p><a href="http://www.mandarindesign.com/opacity.html#transintro"><img src="http://images.sixrevisions.com/2009/01/24-18_css3_transparency.png" alt="Introduction to CSS3 Transparency - screen shot." width="550" height="230" /></a></p>
<p>This article explores and explains the concepts CSS3  transparency; a concept that&#8217;s part of the <a title="CSS Color Module Level 3 working draft on W3C." href="http://www.w3.org/TR/css3-color/">CSS Color Module</a>.</p>
<h3>19. <a href="http://dev.opera.com/articles/view/styling-forms-with-attribute-selectors/">Styling  Forms with Attribute Selectors</a></h3>
<p><a href="http://dev.opera.com/articles/view/styling-forms-with-attribute-selectors/"><img src="http://images.sixrevisions.com/2009/01/24-19_styling_forms_attribute_selectors.jpg" alt="Styling Forms with Attribute Selectors - screen shot." width="550" height="230" /></a></p>
<p>Dev.Opera showcases the benefits of attribute selectors in  this &#8220;learning-by-doing&#8221; tutorial which deals with styling web forms.</p>
<h3>20. <a href="http://nettuts.com/tutorials/html-css-techniques/5-techniques-to-acquaint-you-with-css-3/">5  Techniques to Acquaint You With CSS 3</a></h3>
<p><a href="http://nettuts.com/tutorials/html-css-techniques/5-techniques-to-acquaint-you-with-css-3/"><img src="http://images.sixrevisions.com/2009/01/24-20_5_techniques_css3.png" alt="5 Techniques to Acquaint You With CSS 3 - screen shot." width="550" height="230" /></a></p>
<p>Practice makes perfect; this tutorial from NETTUTS shows you  how to learn about CSS3 by using it. This article covers things like adding  drop shadows to page elements and changing an element&#8217;s opacity.</p>
<h3>Are you using CSS3 <em>today</em>?</h3>
<p>Have you incorporated CSS3 into your web development  practices? Where are you at in terms of learning about CSS3? Share your  thoughts and experiences with all of us in the comment section.</p>
<h3>Related content</h3>
<ul>
<li><a href="http://sixrevisions.com/css/css-tips/css-tip-1-resetting-your-styles-with-css-reset/">Resetting  Your Styles with CSS Reset</a></li>
<li><a href="http://sixrevisions.com/css/css-tips/css-tip-2-structural-naming-convention-in-css/">Structural  Naming Convention in CSS</a></li>
<li><a href="http://sixrevisions.com/css/innovative-and-experimental-css-examples-and-techniques/">Innovative  (and Experimental) CSS Examples and Techniques</a></li>
<li><a href="http://sixrevisions.com/css/css_techniques_charting_data/">8 CSS  Techniques for Charting Data</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://sixrevisions.com/css/20-useful-resources-for-learning-about-css3/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>CSS Tip #2: Structural Naming Convention in CSS</title>
		<link>http://sixrevisions.com/css/css-tips/css-tip-2-structural-naming-convention-in-css/</link>
		<comments>http://sixrevisions.com/css/css-tips/css-tip-2-structural-naming-convention-in-css/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 05:25:05 +0000</pubDate>
		<dc:creator>Jacob Gube</dc:creator>
				<category><![CDATA[CSS Tips]]></category>

		<guid isPermaLink="false">http://sixrevisions.com/?p=242</guid>
		<description><![CDATA[Structural naming convention – in essence – just means that  you name (by assigning a class and/or id attribute to them) elements by  describing what they are, and not where they are or how the look.  Its counterpart is called presentational  naming which describes the location and/or appearance of web page elements.


This [...]]]></description>
			<content:encoded><![CDATA[<p><em>Structural naming convention</em> – in essence – just means that  you name (by assigning a class and/or id attribute to them) elements by  describing <em>what they are</em>, and not <em>where they are</em> or <em>how the look</em>.  Its counterpart is called presentational  naming which describes the <em>location and/or appearance</em> of web page elements.</p>
<p><img src="http://images.sixrevisions.com/2008/12/03-01_leading_image.jpg" alt="Leading image" width="550" height="240" /><br />
<span id="more-242"></span></p>
<p>This CSS tip discusses the <strong>concept of structural naming  conventions</strong>, the <strong>benefits of using this convention</strong>, and shares <strong>some guidelines</strong> on practical applications of structural naming conventions.</p>
<h3>Let&#8217;s start with a presentational naming example</h3>
<p>To illustrate by way of example, take a look at Example 1  which uses a presentational naming convention.</p>
<p><a href="http://sixrevisions.com/demo/structural_naming/example1.html">Example 1</a>:  A presentational layout.</p>
<p><img src="http://images.sixrevisions.com/2008/12/03-02_example_1.png" alt="Example 1 - screen shot." width="550" height="240" /></p>
<h3>What&#8217;s wrong about the layout?</h3>
<p>There are <em>two</em> major fundamental flaws in using a naming  convention such as shown in <a href="http://sixrevisions.com/demo/structural_naming/example1.html">Example 1</a>.</p>
<p>First, it makes it hard to <em>move things around</em> without  affecting the accuracy of your markup.</p>
<p>Although the <code>#top-div</code> and <code>#bottom-div</code> will most likely stay  in place, a design decision to put the secondary content (<code>#right-col</code>) to the  right of the main content area (<code>#left-col</code>) completely <em>invalidates</em> the  document&#8217;s model.</p>
<p>Secondly, the names don&#8217;t help describe <em>what the elements  are</em> – what <em>they&#8217;re for</em> and <em>what they do</em> as part of the overall document.</p>
<p>For example, the link with the class <code>.red-link</code> in <a href="http://sixrevisions.com/demo/structural_naming/example1.html">Example 1</a> describes the color of the link, but not what it&#8217;s for.</p>
<h3>A realistic example</h3>
<p>Let&#8217;s pretend I hired a new developer in my team – let&#8217;s  call him <em>Dave Newbie</em>. I&#8217;ve given Dave the task of updating a website that uses  a <em>presentational</em> naming convention instead of a <em>structural</em> naming convention.</p>
<p>The site&#8217;s CSS is much like <a href="http://sixrevisions.com/demo/structural_naming/example1.html">Example 1</a>,  but instead of only 13 lines of declarations, it&#8217;s 500 lines (single-spaced,  single-lined, shorthand notation).</p>
<p>I didn&#8217;t give Dave any other instructions besides updating  the pages and assigning elements the appropriate class or id (I didn&#8217;t comment  my code, because remember &#8211; I like to do things the <em>hard way</em>).</p>
<p>In a web page Dave was tasked to update, he encounters a  special class of links with the name <code>.red-link</code> (as shown in Example 1).</p>
<p><img src="http://images.sixrevisions.com/2008/12/03-03_red-link.png" alt=".red-link example" width="550" height="240" /></p>
<p>Now he&#8217;s scratching his head wondering why these guys have a  class of <code>.red-link</code>…</p>
<p>What if <strong>instead</strong> of <code>.red-link</code>, I named it <code>.external-link</code>?</p>
<p>Dave would know <em>instantly</em> (and if he doesn&#8217;t – then I&#8217;d have to reconsider his employment) that any links that point to another website  gets assigned a link of <code>.red-link</code>.</p>
<p>And that&#8217;s the <em>practical reason</em> for choosing a structural  naming convention instead of a presentational naming convention &#8211; if not for  <em>semantics and best practices</em> – then for helping Dave Newbie know what  particular classes and ids mean, <em>not what they look like or where they are</em> (which he can already see <em>anyways</em> &#8211; granted that he doesn&#8217;t suffer from  dyslexia or particular forms of color-blindness).</p>
<p>Let&#8217;s rework <a href="http://sixrevisions.com/demo/structural_naming/example1.html">Example 1</a> to reflect a (sort of) structural naming convention.</p>
<p><a href="http://sixrevisions.com/demo/structural_naming/example2.html">Example 2</a>:  A structural naming convention.</p>
<p><img src="http://images.sixrevisions.com/2008/12/03-04_example_2.png" alt="Example 2 illustration" width="550" height="240" /></p>
<p>In <a href="http://sixrevisions.com/demo/structural_naming/example2.html">Example 2</a>,  I&#8217;ve renamed the classes and ids to <em>structurally-descriptive</em> names.</p>
<p><code>#top-div</code> has become <code>#header</code>, <code>#left-col</code> (short for left column) has been renamed to <code>#main-content</code>, and so on. That&#8217;s much better and more intuitive.</p>
<h3>Wait a minute!</h3>
<p>After looking at the example, some of you may be saying &#8220;<em>Wait  a minute</em> Jacob, aren&#8217;t <code>#header</code> and <code>#footer</code> <em>presentational descriptors</em>?&#8221; -  some might even modify this question with an  abbreviated explicitive and exclamation point like &#8220;…WTF!&#8221;, and some may go  further with &#8220;WTF n00b!!&#8221;.</p>
<p><em>Yes</em>, indeed you&#8217;re (mostly) <em>right</em>.</p>
<p>But now I ask you this: <em>without</em> any additional information –  what does <code>#header</code> and <code>#footer</code> <em>mean to you</em>?</p>
<p>Some of the responses might be:</p>
<h4><code>#header</code> is for&#8230;</h4>
<ul>
<li>logo/branding</li>
<li>where your primary navigation is</li>
<li>where the tagline of your website is,  etc.</li>
</ul>
<h4><code>#footer</code> is for&#8230;</h4>
<ul>
<li>Copyright information</li>
<li>a repeat of important page links</li>
<li>auxiliary information or additional site features</li>
</ul>
<p><em>Without telling you</em> (or Dave Newbie for that matter), what  they mean <em>to me</em>, you already know what they are for and what they <em>probably</em> mean.</p>
<p>That&#8217;s because names such as <code>#header</code>, <code>#footer</code>, and <code>#sidebar</code> are  <strong>well-established</strong>.</p>
<p>In a survey of websites of some web professionals, Andy  Clarke lists the naming convention used for the structure of these sites, <a title="Naming conventions table" href="http://www.stuffandnonsense.co.uk/archives/naming_conventions_table.html">check it out here</a>.</p>
<p>You can see in Andy Clarke&#8217;s survey that <code>#header</code> and <code>#footer</code> are staples, and are  used the majority of time. So they&#8217;re <em>instantly</em> recognizable.</p>
<p>We can follow a structural naming convention <em>blindly</em> by  instead using <code>#branding</code> for <code>#header</code> and <code>#siteinfo</code> for <code>#footer</code> – but at the end  of the day, I chose to bend the &#8220;rules&#8221; for the <em>purpose of practicality</em>.</p>
<p><code>#header</code> and <code>#footer</code> <em>still describe</em> the <strong>purpose</strong> and <strong>the structure</strong> of those particular elements in the document, <em>exactly</em> like <code>#branding</code> and  #siteinfo does.</p>
<p>In short, Dave Newbie won&#8217;t be knocking on my door at 3:00AM  in the morning asking me what <code>#branding</code> means so that he can meet his deadline (and Dave, <em>please</em> call or text next time, don&#8217;t just show up in my front door steps).</p>
<p>But for those who are unwilling to compromise, let&#8217;s rework <a href="http://sixrevisions.com/demo/structural_naming/example2.html">Example 2</a> to a <em>strictly</em> structurally-named example.</p>
<p><a href="http://sixrevisions.com/demo/structural_naming/example3.html">Example 3</a>:  Really using structural naming conventions.</p>
<p><a href="http://sixrevisions.com/demo/structural_naming/example3.html">Example 3</a> is fully-structural in naming convention. It describes what the div&#8217;s and  other elements are for, instead of where they are or how they look. I&#8217;ve used Andy  Clarke&#8217;s suggestions in <a title="What's in a name (pt2)" href="http://www.stuffandnonsense.co.uk/archives/whats_in_a_name_pt2.html">an article he wrote a ways back</a>.</p>
<h3>A few guidelines</h3>
<p>Here are a few guidelines to help you name your elements  <em>structurally</em>, and <em>these</em> are just <em>that</em> – <em>guidelines</em>. In the end, you have to use  what&#8217;s best for you and the project at hand.</p>
<h4>1. When assigning a class or id, ask yourself &#8220;What is this  element for?&#8221;</h4>
<p>For example, if you have a span class that&#8217;s meant for  captions, you might call it <code>.caption</code> or <code>.figure-caption</code> instead of  <code>.smaller-text</code>.</p>
<p>If a particular group of images are banner advertisements, you  might want to call the class <code>.banner</code> or <code>.ad-banner</code> instead of <code>.sidebar-images</code> (since they may change locations).</p>
<h4>2. Avoid using names that rely on locational or visual aspects  of the particular element</h4>
<p>In <a href="http://sixrevisions.com/demo/structural_naming/example1.html">Example 1</a>,  we used <code>.red-link</code> for links that are <em>red</em>, and <code>#left-col</code> for the column on the  left.</p>
<p>Later on, in <a href="http://sixrevisions.com/demo/structural_naming/example2.html">Example 2</a> and <a href="http://sixrevisions.com/demo/structural_naming/example3.html">Example  3</a>, we changed them to .external-link and .main-content.</p>
<p>The practical reason for doing this is that it keeps your  HTML markup accurate even if &#8211; say &#8211; you change the style of the <code>.red-link</code> class to <em>green</em> or <em>brown</em>.</p>
<p>Of course you can always do a <em>batch find-and-replace</em> if you  have a static site, <em>hunting down</em> <code>.red-link</code> and <em>replacing</em> them with <code>.blue-link</code> in all of your affected HTML documents, but <em>why rely on that</em> when you can <em>avoid  it in the first place</em> with a little forethought.</p>
<p>It also keeps your code (<em>code</em> is used <em>literally</em> here, not to  imply that CSS or HTML is programming &#8211; which they aren&#8217;t) semantic.</p>
<p>You don&#8217;t have to change <code>.red-link</code> in the markup even when  you&#8217;ve changed the value of the color attribute in the stylesheet, but it would  be <em>semantically inaccurate</em> in describing that particular element.</p>
<p>For example, even if it&#8217;s called <code>.red-link</code> and you changed  your style declaration to:</p>
<pre>a.red-link { color:  blue;  }</pre>
<p><code>a</code> elements with the class <code>.red-link</code> will be rendered as <em>blue</em> despite of their class name (at least in most browsers).</p>
<p>But wouldn&#8217;t that be <em>irritating</em>? I know <em>I wouldn&#8217;t be able  to sleep at night</em> knowing that my <code>.red-link</code>&#8217;s are being rendered as blue.</p>
<p>And wouldn&#8217;t that be <em>confusing</em> to Dave Newbie, the new  member of my development team?</p>
<p>If instead of <code>.red-link</code> or <code>.blue-link</code>, I used <code>.external-link</code>, then it wouldn&#8217;t matter if it&#8217;s red, green, blue, or black – it&#8217;ll be  accurate as long as I do <em>indeed</em> use them for <em>external links</em>.</p>
<h4>3. Use names that are intuitive to you</h4>
<p>Earlier, in <a href="http://sixrevisions.com/demo/structural_naming/example2.html">Example 2</a>,  I used <code>#header</code> instead of <code>#branding</code>. The reason is because I feel that <code>#header</code> is <em>more recognizable</em> than <code>#branding</code>. Notice that even though it can be  interpreted as a locational description – <em>I still used it</em>.</p>
<p>I decided to do what&#8217;s best <em>for me</em> and what I think is best  <em>for the people that might be working on the same project</em>. I bent the &#8220;rules&#8221;  (notice that <em>rules</em> are in quotes because these are more like <em>guidelines</em>, not  the law of the land) &#8211; so to speak &#8211; for the purpose of practicality and  general intuitiveness.</p>
<p>Here&#8217;s a good guideline for naming classes and id&#8217;s  <em>intuitively</em>.</p>
<p>Ask yourself, &#8220;<strong>If I asked <em>Dave Newbie</em> what this class (or  id) is for, would he automatically know?</strong>&#8221;</p>
<p>That&#8217;s programming 101, naming variables <em>intuitively</em> so that  <em>other</em> programmers will know what the variable holds (<code>$total</code> instead of <code>$t</code>) –  and that lesson is <strong>applicable to CSS naming conventions</strong>.</p>
<h3>Further reading</h3>
<p>The concept of structural naming <em>isn&#8217;t new</em>, and there have  been wide discussions about the concept. Here, I&#8217;d like to share a few  resources on the topic to help you further explore the concept.</p>
<h4><a href="http://meyerweb.com/eric/thoughts/2004/06/26/structural-naming/">Structural  Naming</a></h4>
<p>In a short post, Eric Meyer discusses his viewpoints on  class and id naming conventions, mentioning <a href="http://www.stuffandnonsense.co.uk/archives/whats_in_a_name_pt2.html">Andy  Clarke&#8217;s viewpoint</a> on the matter.</p>
<h4><a href="http://articles.techrepublic.com.com/5100-10878_11-5286783.html">Standardizing  CSS class and id names</a></h4>
<p>Michael Meadhra discusses presentational naming conventions  and structural naming conventions.</p>
<h4><a href="http://www.digital-web.com/articles/build_for_the_future_bend_dont_break/">Build  for the Future: Bend, Don&#8217;t Break</a></h4>
<p>Garret Dimon discusses the foundations of creating a  flexible and adaptable website that&#8217;s always prepared for changes in the  future. He also mentions how HTML markup is the foundation of a website, citing  names like <code>left_bar</code> can quickly be outdated in a design change.</p>
<h3>About the CSS Tips series</h3>
<p>The <strong>CSS Tips</strong> series is a group of articles on Six Revisions  that focus on a particular CSS tip, concept, or best practice. In each article,  I&#8217;ll deconstruct a particular tip/standard/best practice and provide the  context, benefits, and disadvantages of each.</p>
<p>I believe in learning both <em>theory</em> and <em>practice</em>, as well as  striking a balance between <em>strict</em>, <em>uncompromising standards</em> and <em>practicality</em>,  so you&#8217;ll get a chance to learn the way people <em>generally do it</em>, and why you  <em>shouldn&#8217;t necessarily follow them blindly</em>.</p>
<p>I&#8217;ll present each CSS tip as comprehensively as I can, but <strong>I  depend on you</strong> to <em>correct me if I&#8217;m wrong</em>,<em> expound on things I skimmed over</em>,  <em>clarify things that may be confusing to our fellow beginning developers</em>, and  <em>provide your own input on the subject</em> – so I highly encourage <strong>you</strong> to<strong> contribute  in the comments</strong>.</p>
<p>To see all the CSS Tips articles thus far, you can go to the <a href="http://sixrevisions.com/css/">CSS category</a>.</p>
<h3>Related content</h3>
<ul>
<li><a href="http://sixrevisions.com/css/innovative-and-experimental-css-examples-and-techniques/">Innovative (and Experimental) CSS Examples and Techniques</a></li>
<li><a href="http://sixrevisions.com/css/css_techniques_charting_data/">8 CSS Techniques for Charting Data</a></li>
<li><a href="http://sixrevisions.com/css/20_websites_learn_master_css/">20 Websites To Help You Learn and Master CSS</a></li>
<li><a href="http://sixrevisions.com/css/css_code_optimization_formatting_validation/">Web-Based Tools for Optimizing, Formatting and Checking CSS</a></li>
<li><a href="http://sixrevisions.com/css/30_css_techniques_examples/">30 Exceptional CSS Techniques and Examples</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://sixrevisions.com/css/css-tips/css-tip-2-structural-naming-convention-in-css/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>CSS Tip #1: Resetting Your Styles with CSS Reset</title>
		<link>http://sixrevisions.com/css/css-tips/css-tip-1-resetting-your-styles-with-css-reset/</link>
		<comments>http://sixrevisions.com/css/css-tips/css-tip-1-resetting-your-styles-with-css-reset/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 05:22:19 +0000</pubDate>
		<dc:creator>Jacob Gube</dc:creator>
				<category><![CDATA[CSS Tips]]></category>

		<guid isPermaLink="false">http://sixrevisions.com/?p=204</guid>
		<description><![CDATA[This is the first part of a series of articles that will  discuss a particular CSS best practice or tip. I&#8217;ll be covering a mixture of  topics that deals with CSS best practices, performance optimization, and tips  and tricks to improve your workflow.
Today we&#8217;ll be covering the topic of resetting your styles.


Resetting [...]]]></description>
			<content:encoded><![CDATA[<p>This is the first part of a series of articles that will  discuss a particular CSS best practice or tip. I&#8217;ll be covering a mixture of  topics that deals with CSS best practices, performance optimization, and tips  and tricks to improve your workflow.</p>
<p>Today we&#8217;ll be covering the topic of resetting your styles.</p>
<p><img src="http://images.sixrevisions.com/2008/11/18-01_css_tip_1_intro.jpg" alt="CSS Tip #1: Resetting Your Styles with CSS Reset" width="550" height="300" /></p>
<p><span id="more-204"></span></p>
<p>Resetting  your styles, commonly referred to as <em>CSS  Reset</em> or <em>Reset CSS</em> is the process  of resetting (or more accurately &#8211; <em>setting</em>)  the styles of all elements to a baseline value so that you avoid cross-browser  differences due to their built-in default style settings. By resetting your  styles, you avoid defaulting to the browser&#8217;s built-in styles, which differs  from browser to browser.</p>
<h3>CSS Reset avoids browser inconsistencies</h3>
<p>For example, say you use an anchor tag <code><code>&lt;a&gt;</code></code> in your  HTML document. Usually, browsers like Internet Explorer and Firefox will render  it as <em>blue</em> and <em>underlined</em>.</p>
<p>But five years from now, someone decides to release a new  browser (let&#8217;s call it <em>UltraBrowser</em>)  and they decide that they don&#8217;t like blue, underlined links – so instead they  set the default style of <code>&lt;a&gt;</code> tags to <em>red</em> and <em>boldfaced</em>. If you always set a  baseline value for your <code>&lt;a&gt;</code> elements, then you&#8217;re guaranteed that it will  always be the same, regardless of what UltraBrowser thinks <code>&lt;a&gt;</code> elements  should look like.</p>
<h3>A simple example</h3>
<p><a href="http://sixrevisions.com/demo/reset_styles/example1.html"><strong>Example 1</strong></a>: How paragraph tags are rendered by default.</p>
<p>In Example 1, I&#8217;ve placed three unstyled paragraphs  <code>&lt;p&gt;</code> inside a container <code>&lt;div&gt;</code> (I gave the container div a blue  background and orange border to highlight the difference).</p>
<p><img src="http://images.sixrevisions.com/2008/11/18-02_css_example.png" alt="How Firefox and Internet Explorer renders paragraph tags" width="550" height="300" /></p>
<p><em>By default, </em>in<em> Firefox</em>,  you&#8217;ll see that there&#8217;s a space in between the top of the first paragraph and  the top of the container div, and a space between the bottom of the last  paragraph and the bottom of the container div.</p>
<p><em>By default</em>, these spaces <em>don&#8217;t  exist</em> in <em>Internet Explorer</em>.</p>
<p>So which browser is right, Firefox or IE? <em>It doesn&#8217;t matter</em>. What <em>does matter</em> is that the spacing in  between your paragraphs and other elements will look dissimilar if you don&#8217;t  set a style for a paragraph&#8217;s margin and padding.</p>
<p>Of course that&#8217;s a rather simplified example. In practice,  CSS Reset is important in removing inconsistent margins, paddings, line-heights,  and other attributes that can cause your web pages to look differently across various  browsers.</p>
<p>So that&#8217;s the basic theory of resetting your styles which just  means <em>you</em> set your style rules for  all elements to avoid having <em>the browser</em> do it for you. Further down, we&#8217;ll talk about it in practice, but first a  little bit of history on how CSS Reset became a standard practice for modern  web developers.</p>
<h3>A reset to where it all started&#8230;</h3>
<p>The concept of CSS Reset was first discussed formally way  back when dinosaurs still roamed the internet (2004 to be exact) by <a href="http://leftjustified.net/about.php">Andrew Krespanis</a>. In <a href="http://leftjustified.net/journal/2004/10/07/css-negotiation/">his article</a>,  he suggests using the universal selector (*) at the beginning of your CSS file to  select all elements and give them 0 values for margin and padding, like so:</p>
<pre>* {
  margin: 0;
  padding: 0;
}</pre>
<p>The universal selector acts like a <em>wildcard search</em>, similar to <a href="http://en.wikipedia.org/wiki/Regular_expression_examples">regular  expression</a> matching in programming. Since in this case, the * isn&#8217;t  preceded by another selector, all elements (in theory – <a title="Universal Selector discussion on SitePoint" href="http://reference.sitepoint.com/css/universalselector">some browsers don&#8217;t fully  support it</a>) is a match and therefore all margins and paddings of all  elements are removed (so we avoid the spacing differences shown in Example 1).</p>
<p>Applying the universal selector margin/padding reset to our  earlier example, we now remove all inconsistent spacing between all browsers  (in other words, we don&#8217;t make the browsers think for us, we show them who&#8217;s  boss).</p>
<p><a href="http://sixrevisions.com/demo/reset_styles/example2.html"><strong>Example 2</strong></a>: Applying the universal selector margin/padding  reset</p>
<p>But now we don&#8217;t have <em>any</em> spacing in between paragraphs, so somewhere below our universal selector reset,  we&#8217;ll declare the way <em>we</em> want our  paragraphs to look like. You can do it a number of ways – you <em>can </em>put margins  (or padding) at the beginning or top of your paragraphs, or both. You can use  ems as your units or pixels or percentages.</p>
<p>What&#8217;s important is that <em>we</em> choose the way the browser will render it. For our example, I chose to add  margins (instead of padding) both at the top of the paragraphs and at the  bottom &#8211; but that&#8217;s my choice, you may want to do it differently.</p>
<p>Here&#8217;s what I used:</p>
<pre>* { margin:0; padding:0; }
p { margin:5px 0 10px 0; }</pre>
<p><a href="http://sixrevisions.com/demo/reset_styles/example3.html"><strong>Example 3</strong></a>: Declaring a style rule after the universal  selector.</p>
<blockquote><p><strong>Note:</strong> The example I used for discussion is a simplified  example. If you <em>only used paragraphs</em> for your web pages and no other elements, you wouldn&#8217;t want to reset your  margins to 0 using the universal selector only to declare a style rule right  after it for your paragraph. We&#8217;ll discuss this more fully along with other  best practices later on down the page.</p></blockquote>
<p>Shortly thereafter – CSS guru <a title="Bio page of Eric A. Meyer" href="http://meyerweb.com/eric/">Eric Meyer</a> further built on the concept of resetting margins and paddings. In <a title="Eric's Archived Thoughts: Really Undoing html.css" href="http://meyerweb.com/eric/thoughts/2004/09/15/emreallyem-undoing-htmlcss/">Eric Meyer&#8217;s  exploration</a>, he discusses <a title="Undoing html.css and using debug scaffolding" href="http://tantek.com/log/2004/09.html#d06t2354">Tanek&#8217;s work undoing  default HTML styles</a> (which he called <a title="undohtml.css source code" href="http://tantek.com/log/2004/undohtml.css">undohtml.css</a>)  which <em>not only</em> resets margins and padding,  but also other attributes like line-heights, font styles, and list styles (some  browsers use different bullets for unordered list items).</p>
<p>After many iterations and refinements, we come to a  wonderful solution called <del datetime="2008-11-19T16:45:38+00:00"><a title="Eric's Archived Thoughts: Reset Reloaded" href="http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/">CSS Reset Reloaded</a></del> <a href="http://meyerweb.com/eric/tools/css/reset/index.html">CSS Reset</a>, which  not only makes this CSS reset method more accurate than the universal selector  method by using higher specificity by naming all possible HTML tags (because  the universal selector fails to apply the reset to all HTML tags), but also  sets default values for troublesome elements like tables (in which the  border-collapse attribute isn&#8217;t rendered consistently across browsers).</p>
<p>Of course, there are other methods of resetting your CSS (such  as Yahoo!&#8217;s <a href="http://developer.yahoo.com/yui/reset/">YUI Reset CSS</a> which I currently use on Six Revisions), and you can roll your own based on  your preference and project needs.</p>
<p>Now let&#8217;s go through some tips and best practices when  applying a CSS Reset solution to  your  own projects.</p>
<h3>Applying CSS Reset: tips and best practices</h3>
<h4>1. Start by deciding <em>exactly</em> how you&#8217;ll reset your styles</h4>
<p>Above, I&#8217;ve shown you the two extremes of CSS Reset. From a sweet  and simple method using the universal selector (which I don&#8217;t recommend you  using) to a more involved and  complex method with Eric Meyer&#8217;s <a href="http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/">CSS Reset Reloaded</a> (edit: or the more current version, <a href="http://meyerweb.com/eric/tools/css/reset/index.html">Reset CSS)</a>.</p>
<p>I also briefly mentioned the YUI Reset CSS which you can use <a title="Yahoo! UI Library: Reset CSS - Getting Started" href="http://developer.yahoo.com/yui/reset/#start">directly off the YDN so  that you don&#8217;t have to serve it</a>, saving you some server resources when your  web pages are requested. You can also <a title="Weekend Quick Tip: Create Your Own Simple Reset.css File - NETTUTS" href="http://nettuts.com/html-css-techniques/weekend-quick-tip-create-your-own-resetcss-file/">roll  your own</a> and tailor it to your specific needs.</p>
<p>There&#8217;s no pre-defined step-by-step method for determining  the right way of resetting your styles; the important part is that it works to  compliment your own development style and principles.</p>
<p>To help you make your choice, here are a couple of excellent  resources to get you started:</p>
<ul>
<li><a href="http://perishablepress.com/press/2007/10/23/a-killer-collection-of-global-css-reset-styles/">A  Killer Collection of Global CSS Reset Styles</a></li>
<li><a href="http://www.ejeliot.com/blog/85">Less is more &#8211; my  choice of Reset CSS</a> (by Ed Elliot)</li>
</ul>
<h4>2. Your CSS Reset has to be the first thing the browser sees  (duh).</h4>
<p>Resetting your styles after declaring a style rule for an  element will mess you up. You&#8217;ll scratch your head wondering why the margins  you declared for <code>.some-class</code> isn&#8217;t working. Therefore it&#8217;s essential that the  first thing the browser sees is your CSS Reset.</p>
<p>Laugh now, but it&#8217;s <em>a  common mistake</em> amongst rusty veterans and beginning developers.</p>
<blockquote><p><strong>Note:</strong> In case you  fall into the &#8220;people-prone-to-this-common-mistake&#8221; category, here&#8217;s  the reason why it has to be at the very top of your CSS document/s: <em>CSS works on a top-down hierarchy with rules  lower down the CSS document taking precedence if there&#8217;s a  conflicting/redundant style rule declaration</em>.</p></blockquote>
<p>Just to continue beating a dead horse, let&#8217;s explore an  example. I used Eric Meyer&#8217;s <a href="http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/">CSS Reset Reloaded</a> <em>verbatim</em> in the example <em>after</em> declaring a style rule for the  margin of my <code>&lt;p&gt;</code> elements.</p>
<p><a href="http://sixrevisions.com/demo/reset_styles/example4.html"><strong>Example 4</strong></a>: Putting your CSS Reset in the wrong place</p>
<p>I have the style rules at the examples&#8217; HTML document (for  convenience), so that you can view the source and see what I mean.</p>
<p>In essence, what you see is that even though I declared  margins for my <code><code>&lt;p&gt;</code></code> elements, my CSS Reset &#8220;reset&#8221; them to 0  because it takes precedence over my initial style rule declaration.</p>
<h4>3. Have a separate CSS document for your CSS Reset</h4>
<p>I have to mention this tip because it&#8217;s common practice and  one that many people advocate.</p>
<p>I&#8217;m on the <em>One  Big CSS File</em> (of course it varies on a case-by-case basis) camp for page  performance reasons (I&#8217;ll save this discussion for another day, perhaps on  another CSS Tip article), but a common practice is to have <em>a separate CSS document</em> (named something like <em>reset.css</em>) that you  can reuse throughout your projects. This helps you keep your style rules  organized and modular, but more importantly, it makes it easier to change and  tweak your CSS Reset without having to go back to your old projects and  updating it.</p>
<h4>4. Avoid using the universal selector reset</h4>
<p>The universal selector reset is the first true conception (that  I know of at least, so please correct me if I&#8217;m wrong) of resetting your  styles, but it has many shortcomings and browser inconsistencies (which is what  <em>we&#8217;re trying to get rid of</em> in the first place) that make it a poor choice.</p>
<p>I&#8217;ve already mentioned that IE doesn&#8217;t apply and support it  as intended; it doesn&#8217;t cover all your bases and you should only use it for  simple, short, static, and predictable web pages (if you really have to use it).</p>
<p>This tip especially holds true when you distribute a  &#8220;one-size-fits-all&#8221; solution like a content management system theme  which will be used and hacked in unpredictable ways. Using a solid foundation  at the get-go &#8211; an extensive CSS Reset method &#8211; ensures that you&#8217;re truly  resetting your styles and it&#8217;s worth the added bytes in your CSS document.</p>
<h4>5. Avoid redundancy with your CSS Reset and subsequent style  declarations</h4>
<p>Another reason I don&#8217;t like having a separate stylesheet for  my CSS Reset is that it can cause redundancies with other style  rules after it. It&#8217;s good practice not to repeat your styles, and although sometimes it  can&#8217;t be avoided (because you&#8217;re lazy <em>like me</em>), you should make an effort to try. Going back to Eric Meyer&#8217;s CSS  Reset Reloaded set of rules, he gives default values for <code>line-height</code>, <code>color</code>,  and <code>background</code> of the body element like so:</p>
<pre>body {
  line-height: 1;
  color: black;
  background: white;
  }</pre>
<p>If you already know that the body style attributes will be (for  example):</p>
<ul>
<li>background-color: #cccccc</li>
<li>color: #996633</li>
<li>and you want to tile a background image horizontally</li>
</ul>
<p>there&#8217;s no sense declaring another CSS selector for the body  element later on the document – you should replace that part of your CSS reset  to the following:</p>
<pre>body {
  line-height: 1;

  color: #996633

  background:#ccc url(your-tiled-image.gif) repeat-x top left;
  }</pre>
<p><em>Don&#8217;t be afraid to use  your own judgment</em>. Tweak, re-structure, delete, and add things as you see  fit and as it pertains to your particular case.</p>
<p>Eric Meyer echoes this in his discussion of CSS Reset  Reloaded with the following statement:</p>
<blockquote><p>[…] That’s much of the point here:  that this is not a case of &#8220;everyone must use these styles in a certain  way without alteration&#8221;.</p></blockquote>
<h3>Further Reading</h3>
<p>Here are a few excellent resources that I recommend you read on  the topic of resetting your styles.</p>
<h4><a href="http://www.mail-archive.com/wsg@webstandardsgroup.org/msg09417.html">[WSG]  Zeroing default padding/margin</a></h4>
<p>Probably one of the first threads that discuss the universal  selector reset on the Web Standards Group mailing list.</p>
<h4><a href="http://meyerweb.com/eric/articles/webrev/200006a.html">Universal Selector</a></h4>
<p>Eric Meyer discusses how the universal selector works.</p>
<h4><a href="http://snook.ca/archives/html_and_css/no_css_reset/">No  CSS Reset</a></h4>
<p>Johnathan Snook discusses why he doesn&#8217;t reset his styles; a  great counter-argument from one of the most respected web developers/designers  out there.</p>
<h4><a href="http://mondaybynoon.com/2008/04/21/why-i-like-and-use-reset-css/">Why I  Like (and Use) Reset CSS</a></h4>
<p>A short and sweet discussion of why resetting CSS is a great  idea.</p>
<h4><a href="http://devkick.com/lab/tripoli/">Tripoli &#8211; a CSS  standard for HTML rendering</a></h4>
<p>Tripoli  is another popular CSS Reset option that has several versions so that you can  use the one most appropriate for your project.</p>
<h3>About the CSS Tips series</h3>
<p>The <em>CSS Tips</em> series is a group of articles that focus on one particular CSS tip or best  practice. In each article, I&#8217;ll deconstruct a particular tip/standard/best  practice and provide the context, benefits, and disadvantages of each.</p>
<p>I believe in learning both <em>theory</em> and <em>practice</em>, as  well as striking a balance between strict, uncompromising standards <em>and </em>practicality, so you&#8217;ll get a chance to learn the <em>way people generally do it</em>, and why <em>you shouldn&#8217;t necessarily follow them blindly</em>.</p>
<p>I&#8217;ll present each CSS tip as comprehensively as I can but  I <strong>depend on you</strong> to correct me if I&#8217;m  wrong, expound on things I skimmed over, clarify things that may be confusing  to our fellow beginning developers, and provide your own input on the subject – <strong>so I highly encourage you to contribute  in the comments</strong>.</p>
<p>To see all the CSS Tips articles thus far, you can go  to the <a href="http://sixrevisions.com/category/css/css-tips/">CSS category</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sixrevisions.com/css/css-tips/css-tip-1-resetting-your-styles-with-css-reset/feed/</wfw:commentRss>
		<slash:comments>68</slash:comments>
		</item>
		<item>
		<title>Innovative (and Experimental) CSS Examples and Techniques</title>
		<link>http://sixrevisions.com/css/innovative-and-experimental-css-examples-and-techniques/</link>
		<comments>http://sixrevisions.com/css/innovative-and-experimental-css-examples-and-techniques/#comments</comments>
		<pubDate>Thu, 23 Oct 2008 03:29:37 +0000</pubDate>
		<dc:creator>Jacob Gube</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://sixrevisions.com/?p=190</guid>
		<description><![CDATA[CSS doesn&#8217;t always have to be serious business. In this article, you&#8217;ll see 25 fun, novel, and experimental CSS techniques and demonstrations. 
Note: some  of the techniques and examples discussed here may not validate, cannot be  rendered correctly by some browsers, and may not conform with standards-based design and development.  Many of [...]]]></description>
			<content:encoded><![CDATA[<p>CSS doesn&#8217;t <em>always</em> have to be serious business. In this article, you&#8217;ll see <strong>25 fun, novel, and experimental CSS techniques and demonstrations</strong>. </p>
<p><strong>Note:</strong> some  of the techniques and examples discussed here may not validate, cannot be  rendered correctly by some browsers, and may not conform with standards-based design and development.  Many of the techniques shown here are for <strong>exploration only</strong>.</p>
<h4><a href="http://www.stunicholls.myby.co.uk/">Transparent CSS  Menu Drop-down</a></h4>
<p><a href="http://www.stunicholls.myby.co.uk/"><img src="http://images.sixrevisions.com/2008/10/22-01_css_transparent_drop_down.jpg" alt="Transparent CSS Menu Drop-down screen shot." width="550" height="240" /></a></p>
<p><span id="more-190"></span></p>
<p>This demonstration showcases how to create an advanced CSS drop-down menu with transparency support (needs JavaScript for IE6 PNG transparency support).</p>
<h4><a href="http://www.cssplay.co.uk/menu/solar_map" title="CSSplay - Return of the image maps">Return of the image maps</a></h4>
<p><a href="http://www.cssplay.co.uk/menu/solar_map"><img src="http://images.sixrevisions.com/2008/10/22-02_css_image_maps.jpg" alt="Return of the image maps screen shot." width="550" height="240" /></a></p>
<p>In this example, you&#8217;ll see a nifty way to create CSS-based image maps with bubble tooltips.</p>
<h4><a href="http://www.cssplay.co.uk/menu/three_d" title="CSSplay - CSS 3D puzzle">CSS 3D puzzle</a></h4>
<p><a href="http://www.cssplay.co.uk/menu/three_d"><img src="http://images.sixrevisions.com/2008/10/22-03_css_3d_puzzle.png" alt="CSS 3D puzzle screen shot." width="550" height="240" /></a></p>
<p>This 3D puzzle was created using only CSS (this must have taken a LONG time to create).</p>
<h4><a href="http://www.cssplay.co.uk/menu/scrollmap" title="CSSplay - CSS scrolling image map">CSS scrolling image map</a></h4>
<p><a href="http://www.cssplay.co.uk/menu/scrollmap"><img src="http://images.sixrevisions.com/2008/10/22-04_scrolling_map_image.jpg" alt="CSS scrolling image map - screen shot." width="550" height="240" /></a></p>
<p>This example involves a panoramic picture with &quot;hot spots&quot;. Clicking on the hot spots displays a description and an zoomed-in image of the area on another panel.</p>
<h4><a href="http://www.webdesignerwall.com/tutorials/css-decorative-gallery/">CSS  Decorative Gallery</a></h4>
<p><a href="http://www.webdesignerwall.com/tutorials/css-decorative-gallery/"><img src="http://images.sixrevisions.com/2008/10/22-05_css_decorative_gallery.jpg" alt="CSS Decorative Gallery screen shot." width="550" height="240" /></a><span class="figure-caption">Demo: <a href="http://www.webdesignerwall.com/demo/decorative-gallery/decorative-gallery-index.html">CSS Decorative Gallery</a></span></p>
<p>Web Designer Wall shows us how to create fancier image galleries by using background images on images.</p>
<h4><a href="http://www.brainjar.com/css/cards/" title="BrainJar.com - Playing Cards with CSS">Playing Cards with CSS</a></h4>
<p><a href="http://www.brainjar.com/css/cards/"><img src="http://images.sixrevisions.com/2008/10/22-06_css_playing_cards.png" alt="Playing Cards with CSS - demo - screen shot." width="550" height="240" /></a><span class="figure-caption">Demo: <a href="http://www.brainjar.com/css/cards/demo.html" title="Demonstration page - Playing Cards with CSS.">Playing Cards</a></span></p>
<p>This example uses special HTML characters to display the suits of the cards and then CSS to style and position them.</p>
<h4><a href="http://www.romancortes.com/blog/homer-css/">Homer  CSS</a></h4>
<p><a href="http://www.romancortes.com/blog/homer-css/"><img src="http://images.sixrevisions.com/2008/10/22-07_animated_homer.png" alt="Homer CSS - screen shot." width="550" height="240" /></a></p>
<p>In this example, Román Cortés recreates Homer Simpson with HTML characters/text and CSS. Check out the <a href="http://nedbatchelder.com/blog/200805/css_homer_animated.html">animated adaptation</a> by Ned Batchelder.</p>
<h4><a href="http://www.designdetector.com/2005/10/css-house-2.php">CSS House</a></h4>
<p><a href="http://www.designdetector.com/2005/10/css-house-2.php"><img src="http://images.sixrevisions.com/2008/10/22-08_css_house.jpg" alt="CSS House - screen shot." width="550" height="240" /></a><span class="figure-caption">Demo: <a href="http://www.designdetector.com/demos/css-house-2.html">CSS House</a></span></p>
<p>Design Detector created this house by using Div&#8217;s and styling them with CSS. </p>
<h4><a href="http://css-tricks.com/make-a-secret-message-with-css-positioning-and-transparency/" title="CSSTricks - Make a “Secret Message” with CSS Positioning and Transparency ">“Secret  Message” with CSS Positioning and Transparency</a></h4>
<p><a href="http://css-tricks.com/make-a-secret-message-with-css-positioning-and-transparency/"><img src="http://images.sixrevisions.com/2008/10/22-09_css_secret_message.png" alt="Secret Message screen shot." width="550" height="240" /></a><span class="figure-caption">Demo: <a href="http://css-tricks.com/examples/SecretMessage/">Secret Message</a></span></p>
<p>This example by Chris Coyier of CSS-tricks reveals a &quot;Secret Message&quot; as you scroll down the web page.</p>
<h4><a href="http://www.tjkdesign.com/articles/drop-shadow_and_AlphaImageLoader.asp" title="TKJDesigns - How to create light-weight drop shadows.">How to create  light-weight drop shadows</a></h4>
<p><a href="http://www.tjkdesign.com/articles/drop-shadow_and_AlphaImageLoader.asp"><img src="http://images.sixrevisions.com/2008/10/22-10_css_light_weight.png" alt="light-weight drop shadows screen shot." width="550" height="240" /></a><span class="figure-caption">Demo: <a href="http://www.tjkdesign.com/articles/drop-shadow/drop-shadow_with_any_background.asp">light-weight drop shadows</a></span></p>
<p>This example uses PNG&#8217;s (and transparencies) to apply drop-shadows to Div&#8217;s. This won&#8217;t work in IE 6 without JavaScript.</p>
<h4><a href="http://www.cssplay.co.uk/menu/shadow_boxing">Multi-position  shadow boxing</a></h4>
<p><a href="http://www.cssplay.co.uk/menu/shadow_boxing"><img src="http://images.sixrevisions.com/2008/10/22-11_shadow_boxing.jpg" alt="Multi-position shadow boxing screen shot." width="550" height="240" /></a></p>
<p>Here is another method for applying drop shadows to page elements (such as images).</p>
<h4><a href="http://meyerweb.com/eric/css/edge/complexspiral/demo2.html">Complexspiral</a></h4>
<p><a href="http://meyerweb.com/eric/css/edge/complexspiral/demo2.html"><img src="http://images.sixrevisions.com/2008/10/22-12_complex_spiral.png" alt="Complexspiral screen shot." width="550" height="240" /></a></p>
<p>In this demonstration,  CSS guru Eric Meyer shows some transparency/opacity capabilities of CSS.</p>
<h4><a href="http://www.designdetector.com/demos/dvd-recorder-remote.html">DVD  Recorder Remote</a></h4>
<p><a href="http://www.designdetector.com/demos/dvd-recorder-remote.html"><img src="http://images.sixrevisions.com/2008/10/22-13_dvd_remove.png" alt="DVD Recorder Remote screen shot." width="550" height="240" /></a></p>
<p>Design Detector creates a remove control using HTML elements and CSS.</p>
<h4><a href="http://www.cssplay.co.uk/menu/drawing">Drawing the  line</a></h4>
<p><a href="http://www.cssplay.co.uk/menu/drawing"><img src="http://images.sixrevisions.com/2008/10/22-14_pencil.png" alt="Drawing the line screen shot." width="550" height="240" /></a></p>
<p>Stu Nicholls of CSSplay <em>draws</em> a pencil using CSS. Hovering over the pencil will draw a horizontal line.</p>
<h4><a href="http://green-beast.com/experiments/css_text_shadows.php" title="Mike's Experiments - CSS: Text Shadows">CSS Text Shadows</a></h4>
<p><a href="http://green-beast.com/experiments/css_text_shadows.php"><img src="http://images.sixrevisions.com/2008/10/22-15_pure_css_drop_shadow.png" alt="CSS Text Shadows screen shot." width="550" height="240" /></a></p>
<p>Here is a pure CSS-based solution to applying drop-shadows to text. It involves duplicate text layed on top of one another, which isn&#8217;t good practice.</p>
<h4><a href="http://green-beast.com/experiments/css_flashy_links.php">CSS Flashy Links</a></h4>
<p><a href="http://green-beast.com/experiments/css_flashy_links.php"><img src="http://images.sixrevisions.com/2008/10/22-16_css_flashy_links.png" alt="CSS Flashy Links screen shot." width="550" height="240" /></a></p>
<p>In this navigation bar example, hovering over a menu item causes the arrow on the left to zoom across the menu item.</p>
<h4><a href="http://green-beast.com/experiments/css_map_pop.php" title="Mike's Experiments - CSS: Map Pop">Map Pop</a></h4>
<p><a href="http://green-beast.com/experiments/css_map_pop.php"><img src="http://images.sixrevisions.com/2008/10/22-17_map_pop.jpg" alt="Map Pop screen shot." width="550" height="240" /></a></p>
<p>This example showcases CSS image maps through a map. Hovering over hot spots reveals more information on the right.</p>
<h4><a href="http://www.brunildo.org/test/CPop.html">Pure CSS  Popups</a></h4>
<p><a href="http://www.brunildo.org/test/CPop.html"><img src="http://images.sixrevisions.com/2008/10/22-18_css_pop_up.png" alt="Pure CSS Popups screen shot." width="550" height="240" /></a></p>
<p>This technique involves hidden Div&#8217;s that are revealed when you hover over the trigger link.</p>
<h4><a href="http://ryanfait.com/sticky-footer/" title="A CSS Sticky Footer">CSS Sticky Footer</a></h4>
<p><a href="http://ryanfait.com/sticky-footer/"><img src="http://images.sixrevisions.com/2008/10/22-19_css_sticky_footers.jpg" alt="CSS Sticky Footer screen shot." width="550" height="240" /></a></p>
<p>Here&#8217;s a footer that is fixed at the bottom of the web page, regardless of height.</p>
<h4><a href="http://phoenity.com/newtedge/scalable_star/">Scalable  Star</a></h4>
<p><a href="http://phoenity.com/newtedge/scalable_star/"><img src="http://images.sixrevisions.com/2008/10/22-20_scalable_star.png" alt="Scalable Star screen shot." width="550" height="240" /></a></p>
<p>Using CSS, a simple shape (star) is drawn. It scales when the user resizes the font size using browser controls (at least for modern browsers it does).</p>
<h4><a href="http://green-beast.com/experiments/css_menu_descriptions.php">CSS: Menu  Descriptions</a></h4>
<p><a href="http://green-beast.com/experiments/css_menu_descriptions.php"><img src="http://images.sixrevisions.com/2008/10/22-21_css_menu.png" alt="CSS: Menu Descriptions screen shot." width="550" height="240" /></a></p>
<p>In this CSS-based menu, hovering over a menu item reveals more information about the menu item.</p>
<h4><a href="http://www.designdetector.com/2005/09/css-gradients-demo.php">CSS Gradients  Demo</a></h4>
<p><a href="http://www.designdetector.com/2005/09/css-gradients-demo.php"><img src="http://images.sixrevisions.com/2008/10/22-22_css_gradient.jpg" alt="CSS Gradients Demo screen shot." width="550" height="240" /></a><span class="figure-caption">Demo: <a href="http://www.designdetector.com/demos/css-gradients-demo-2.php">CSS Gradients Demo</a></span></p>
<p>This demonstration uses CSS-styled empty Div&#8217;s (not a good practice) and background-colors to mimic the effect of gradients.</p>
<h4><a href="http://www.markschenk.com/cssexp/background/index.html" title="CSS Experiment: Scaled Background Image">Scaled Background Image</a></h4>
<p><a href="http://www.markschenk.com/cssexp/background/index.html"><img src="http://images.sixrevisions.com/2008/10/22-23_scaling_background_image.jpg" alt="Scaled Background Image screen shot." width="550" height="240" /></a><span class="figure-caption">Demo: <a href="http://www.markschenk.com/cssexp/background/scaledbgimage.html" title="demo - Scaled background-image">Scaled Background Image</a></span></p>
<p>Here is a technique for scaling background images (resize your browser to see how it works).</p>
<h4><a href="http://meyerweb.com/eric/css/edge/bargraph/demo.html" title="css/edge - CSS Vertical Bar Graphs">CSS Vertical Bar Graphs</a></h4>
<p><a href="http://meyerweb.com/eric/css/edge/bargraph/demo.html"><img src="http://images.sixrevisions.com/2008/10/22-24_css_vertical_bar_graphs.png" alt="CSS Vertical Bar Graphs screen shot." width="550" height="240" /></a></p>
<p>This example styles list items to create an accessible bar graph.</p>
<h4><a href="http://www.webdesignerwall.com/tutorials/css-gradient-text-effect/">CSS  Gradient Text Effect</a></h4>
<p><a href="http://www.webdesignerwall.com/tutorials/css-gradient-text-effect/"><img src="http://images.sixrevisions.com/2008/10/22-25_css_text_gradient.png" alt="CSS Gradient Text Effect screen shot." width="550" height="240" /></a><span class="figure-caption">Demo: <a href="http://www.webdesignerwall.com/demo/css-gradient-text/">CSS Gradient Text Effect</a></span></p>
<p>This technique adds flare to text by super-imposing PNG images onto them. It requires alpha transparency so it won&#8217;t work in IE 6 without JavaScript.</p>
<h3>Related Articles</h3>
<ul>
<li><a href="http://sixrevisions.com/css/css_techniques_charting_data/">CSS Techniques  for Charting Data</a></li>
<li><a href="http://sixrevisions.com/css/css_code_optimization_formatting_validation/">Web-Based  Tools for Optimizing, Formatting and Checking CSS</a></li>
<li><a href="http://sixrevisions.com/css/30_css_techniques_examples/">30 Exceptional  CSS Techniques and Examples</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://sixrevisions.com/css/innovative-and-experimental-css-examples-and-techniques/feed/</wfw:commentRss>
		<slash:comments>46</slash:comments>
		</item>
		<item>
		<title>8 CSS Techniques for Charting Data</title>
		<link>http://sixrevisions.com/css/css_techniques_charting_data/</link>
		<comments>http://sixrevisions.com/css/css_techniques_charting_data/#comments</comments>
		<pubDate>Sat, 20 Sep 2008 15:21:11 +0000</pubDate>
		<dc:creator>Jacob Gube</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://sixrevisions.com/?p=182</guid>
		<description><![CDATA[There are many ways you can present numerical, chartable  data by styling elements using CSS. Using CSS to style your data prevents you from relying on static images and increases your content&#8217;s accessibility.
Below, you&#8217;ll read  about 8 excellent techniques for styling elements into beautiful, accessible charts  and graphs.
1. CSS for Bar Graphs
View [...]]]></description>
			<content:encoded><![CDATA[<p>There are many ways you can present numerical, chartable  data by styling elements using CSS. Using CSS to style your data prevents you from relying on static images and increases your content&#8217;s accessibility.</p>
<p>Below<strong>, you&#8217;ll read  about 8 excellent techniques for styling elements into beautiful, accessible charts  and graphs</strong>.</p>
<h3>1. <a href="http://apples-to-oranges.com/blog/post/css-for-bar-graphs/?id=55" title="Apples To Oranges - CSS For Bar Graphs">CSS for Bar Graphs</a></h3>
<p><a href="http://apples-to-oranges.com/blog/post/css-for-bar-graphs/?id=55"><img src="http://images.sixrevisions.com/2008/09/20-01_css_for_bar_graphs.png" alt="CSS for Bar Graphs" width="550" height="250" /></a><span class="figure-caption"><a href="http://apples-to-oranges.com/goodies/css-for-bar-graphs/" title="Demo - CSS For Bar Graphs">View Demo</a></span></p>
<p><span id="more-182"></span></p>
<p>This tutorial showcases three ways of graphing data. The  <em>Basic CSS Bar Graph</em> example involves a <code>&lt;div&gt;</code> to contain the graph,  and styling a <code>&lt;strong&gt;</code> element as a block element and using percentage widths to  adjust the width. <em>A great modification of  this technique</em> is to use a paragraph <code>&lt;p&gt;</code> element instead of a <code>&lt;strong&gt;</code>  tag for semantically-correct HTML. The two other examples use a definition  list and unordered list to graph multiple bars.</p>
<h3>2. <a href="http://alistapart.com/articles/accessibledatavisualization" title="A List Apart - Accessible Data Visualization with Web Standards">Accessible  Data Visualization with Web Standards</a></h3>
<p><a href="http://alistapart.com/articles/accessibledatavisualization"><img src="http://images.sixrevisions.com/2008/09/20-02_accessible_data_visualization.png" alt="Accessible Data Visualization with Web Standards - screen shot." width="550" height="250" /></a><span class="figure-caption"><a href="http://alistapart.com/d/accessibledata/example-barchart.html" title="Horizontal Bar Chart / Accessible Data Examples">View Demo #1</a> – <a href="http://alistapart.com/d/accessibledata/example-timeline.html" title="Timeline / Accessible Data Examples">View Demo #2</a> – <a href="http://alistapart.com/d/accessibledata/example-sparklines.html" title="Sparklines / Accessible Data Examples">View Demo #3</a></span></p>
<p>Author <a href="http://www.wilsonminer.com/" title="Wilson Miner Live">Wilson Miner</a> discusses the concept of accessible,  standards-compliant techniques for data visualization mentioning the benefits,  limitations, and alternatives in brief. The A List Apart article shows you  three data visualization techniques using a basic structure of unordered lists.</p>
<h3>3. <a href="http://meyerweb.com/eric/css/edge/bargraph/demo.html" title="meyerweb.com - CSS Vertical Bar Graphs">CSS Vertical Bar Graphs</a></h3>
<p><a href="http://meyerweb.com/eric/css/edge/bargraph/demo.html"><img src="http://images.sixrevisions.com/2008/09/20-03_css_vertical_bar.png" alt="CSS Vertical Bar Graphs - screen shot." width="550" height="250" /></a></p>
<p>Eric Meyer shows us another technique for graphing vertical  bar graphs using unordered lists similar to the &quot;<a href="http://apples-to-oranges.com/blog/post/css-for-bar-graphs/?id=55">CSS for  Bar Graphs</a>&quot; technique from Apples To Oranges. </p>
<h3>4. <a href="http://www.maxdesign.com.au/presentation/percentage/">Creating a Graph  Using Percentage Background Images</a></h3>
<p><a href="http://www.maxdesign.com.au/presentation/percentage/"><img src="http://images.sixrevisions.com/2008/09/20-04_using_percentage.png" alt="Creating a Graph Using Percentage Background Images - screen shot." width="550" height="250" /></a></p>
<p>In this technique, you use pre-made background images to  shade in the appropriate data. The  downside of this technique is that you&#8217;re limited by the pre-filled background  images that you have and making more to suit your needs will increase the  amount of classes you assign to your data &#8211; increasing the file size of both  your CSS and HTML file as well as increasing the number of HTTP connections  needed to render the page because of the background images.</p>
<h3>5. <a href="http://cssglobe.com/post/1272/pure-css-data-chart">Pure CSS Data Chart</a></h3>
<p><a href="http://cssglobe.com/post/1272/pure-css-data-chart"><img src="http://images.sixrevisions.com/2008/09/20-05_pure_css_data.png" alt="Pure Css Data Chart - screen shot." width="550" height="250" /></a><span class="figure-caption"><a href="http://cssglobe.com/lab/csschart/">View Demo</a></span></p>
<p>This example uses a definition list for mark-up. A <code>&lt;span&gt;</code>  element  inside the <code>&lt;dd&gt;</code> definition list item serves as the  element that gets adjusted in height to shade the appropriate area. An  <code>&lt;em&gt;</code> element is used to display the numerical representation of the  shaded area, absolutely-positioned in the middle of the bar.</p>
<h3>6. <a href="http://www.jgc.org/blog/2005/12/css-absolute-positioning-scatter-plot.html" title="John Graham-Cumming - CSS absolute positioning scatter plot">CSS  Scatter Plot</a></h3>
<p><a href="http://www.jgc.org/blog/2005/12/css-absolute-positioning-scatter-plot.html"><img src="http://images.sixrevisions.com/2008/09/20-06_scatter_plot.png" alt="CSS absolute positioning scatter plot - screen shot." width="550" height="250" /></a></p>
<p>A <a href="http://en.wikipedia.org/wiki/Scatterplot" title="Wikipedia - Scatterplot">scatter plot</a> is another great way to graph  two-dimensional data. In the example, each data point is clickable, so a  possible modification to this technique is to use a <a href="http://en.wikipedia.org/wiki/Modal_window" title="Wikipedia - Modal window">modal window</a> that displays extra  information about a particular data point.</p>
<h3>7. <a href="http://www.cssplay.co.uk/menu/barchart.html" title="CSSplay - Definition list bar charts">Definition List Bar Chart</a></h3>
<p><a href="http://www.cssplay.co.uk/menu/barchart.html"><img src="http://images.sixrevisions.com/2008/09/20-07_definition_list_bar.png" alt="Definition List Bar Chart - screen shot." width="550" height="250" /></a></p>
<p>This technique shows two examples of styling definition  lists into horizontal bar charts. Each definition list item is assigned a class  that adjusts its width using percentage units.</p>
<h3>8. <a href="http://www.standards-schmandards.com/exhibits/barchart/" title="Standards Schmandards - An accessible bar chart">Accessible Bar Chart</a></h3>
<p><a href="http://www.standards-schmandards.com/exhibits/barchart/"><img src="http://images.sixrevisions.com/2008/09/20-08_accessible_bar_graph.png" alt="Accessible Bar Chart - screen shot." width="550" height="250" /></a></p>
<p>This technique showcases a method for semantic, accessible  bar charts by using a table as the basic structure of the bar graph and using  CSS to stretch a background image to its appropriate width.</p>
<h3>Related Posts</h3>
<ul>
<li><a href="http://sixrevisions.com/javascript/graph_chart_plot_data_javascript/" title="Graphing/Charting Data on Web Pages:  JavaScript Solutions "><strong>Graphing/Charting  Data on Web Pages:  JavaScript Solutions</strong></a></li>
<li><a href="http://sixrevisions.com/css/30_css_techniques_examples/" title="30 Exceptional CSS Techniques and Examples"><strong>30 Exceptional CSS  Techniques and Examples</strong></a></li>
<li><a href="http://sixrevisions.com/css/20_websites_learn_master_css/" title="20 Websites To Help You Learn and Master CSS"><strong>20 Websites To Help You  Learn and Master CSS</strong></a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://sixrevisions.com/css/css_techniques_charting_data/feed/</wfw:commentRss>
		<slash:comments>82</slash:comments>
		</item>
		<item>
		<title>20 Websites To Help You Learn and Master CSS</title>
		<link>http://sixrevisions.com/css/20_websites_learn_master_css/</link>
		<comments>http://sixrevisions.com/css/20_websites_learn_master_css/#comments</comments>
		<pubDate>Fri, 29 Aug 2008 04:19:28 +0000</pubDate>
		<dc:creator>Jacob Gube</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://sixrevisions.com/?p=176</guid>
		<description><![CDATA[CSS can be both a tricky and easy to learn. The syntax  itself is easy, but some concepts can be difficult to understand. 
This article  features 20 excellent websites to help you &#34;grok&#34; CSS. There&#8217;s a wide range of  websites included – from blogs to directory-style lists and websites that focus  [...]]]></description>
			<content:encoded><![CDATA[<p>CSS can be both a tricky and easy to learn. The syntax  itself is easy, but some concepts can be difficult to understand. </p>
<p>This article  features 20 excellent websites to help you &quot;grok&quot; CSS. There&#8217;s a wide range of  websites included – from blogs to directory-style lists and websites that focus  on one particular topic related to CSS.</p>
<h3>1. <a href="http://www.alistapart.com/topics/code/css/">A List  Apart CSS Topics</a></h3>
<p><a href="http://www.alistapart.com/topics/code/css/"><img src="http://images.sixrevisions.com/2008/08/29-01_alistapart.png" alt="A List Apart CSS Topics - screen shot." width="500" height="180" /></a></p>
<p><span id="more-176"></span></p>
<p>A List Apart, the premier site to read articles about web  design and best practices, has a collection of articles on the topic of CSS  dating back to 1999. Most articles are geared towards intermediate to advanced  developers who put a strong emphasize on standards-compliant designs.</p>
<h3>2. <a href="http://artypapers.com/csshelppile/category.php?11">CSS  Help Pile</a></h3>
<p><a href="http://artypapers.com/csshelppile/category.php?11"><img src="http://images.sixrevisions.com/2008/08/29-02_csshelppile.png" alt="CSS Help Pile - screen shot." width="500" height="180" /></a></p>
<p>CSS Help Pile is an aggregate of CSS resources, tips, and  how-to&#8217;s. The site is well-organized and a wonderful resource for any level of  expertise. There&#8217;s a category for <a href="http://artypapers.com/csshelppile/category.php?8">beginners</a>, <a href="http://artypapers.com/csshelppile/category.php?2">browser bugs</a>, and <a href="http://artypapers.com/csshelppile/category.php?11">short reviews of CSS  books</a>.</p>
<h3>3. <a href="http://www.cssbasics.com/">CSS Basics</a></h3>
<p><a href="http://www.cssbasics.com/"><img src="http://images.sixrevisions.com/2008/08/29-03_css_basics.png" alt="CSS Basics - screen shot." width="500" height="180" /></a></p>
<p>CSS Basics is formatted like a book with 18 chapters  dedicated to educating readers about fundamental CSS concepts. The writing is  clear and succinct &#8211; making it a great resource for those just starting out. All  18 chapters can be printed or <a href="http://www.cssbasics.com/full.pdf">downloaded  in PDF format</a>.</p>
<h3>4. <a href="http://dezwozhere.com/links.html">Holy CSS Zeldman!</a></h3>
<p><a href="http://dezwozhere.com/links.html"><img src="http://images.sixrevisions.com/2008/08/29-04_holy_css_zeldman.jpg" alt="Holy CSS Zeldman! - screen shot." width="500" height="180" /></a></p>
<p>Holy CSS Zeldman (not a site by <a href="http://www.zeldman.com/about/" title="About Jeffrey Zeldman">Jeffrey  Zeldman</a>) is a useful collection of resources that link to standards-based CSS  tutorials, tools, and layouts.</p>
<h3>5. <a href="http://meyerweb.com/eric/css/">Eric Meyer: CSS</a></h3>
<p><a href="http://meyerweb.com/eric/css/"><img src="http://images.sixrevisions.com/2008/08/29-05_meyerweb.jpg" alt="Eric Meyer: CSS - screen shot." width="500" height="180" /></a></p>
<p>Here&#8217;s a collection of works by <a href="http://meyerweb.com/eric/css/" title="Eric A. Meyer - Professional Biography">Eric Meyer</a> (acclaimed web  professional and author). Some resources you&#8217;ll find on this page are <a href="http://meyerweb.com/eric/css/edge/">css/edge</a> (Eric Meyers experiments  on CSS) and <a href="http://meyerweb.com/eric/css/references/index.html">CSS reference</a>.</p>
<h3>6. <a href="http://www.456bereastreet.com/archive/categories/css/">456 Berea Street –  CSS category</a></h3>
<p><a href="http://www.456bereastreet.com/archive/categories/css/"><img src="http://images.sixrevisions.com/2008/08/29-06_456_berea.jpg" alt="456 Berea Street – CSS category - screen shot." width="500" height="180" /></a></p>
<p>Roger Johansson&#8217;s <a href="http://www.456bereastreet.com/about/" title="456 Berea Street - About">456  Berea Street</a> has over 300 posts under the CSS category. Some posts talk <a href="http://www.456bereastreet.com/archive/200712/choose_an_accessible_image_replacement_method/" title="Choose an accessible image replacement method - 456 Berea Street">choosing  an image replacement method</a> while others <a href="http://www.456bereastreet.com/archive/200705/creating_bulletproof_graphic_link_buttons_with_css/">teach  you CSS techniques</a>.</p>
<h3>7. <a href="http://www.positioniseverything.net/">/* Position  Is Everything */</a></h3>
<p><a href="http://www.positioniseverything.net/"><img src="http://images.sixrevisions.com/2008/08/29-07_position_is_everything.jpg" alt="/* Position Is Everything */ - screen shot." width="500" height="180" /></a></p>
<p>Those just getting their hands around authoring CSS code will  quickly realize that a significant chunk of time (and frustration) stems from  getting rid of browser bugs. Position Is Everything discusses known browser  bugs and shares CSS methods that work across browsers.  Here, you can read about the <a href="http://www.positioniseverything.net/articles/onetruelayout/" title="Introduction - In search of the One True Layout">one true layout</a> or  learn <a href="http://www.positioniseverything.net/posbugs.html" title="Going Absolutely buggy">what happens when you nest absolutely-positioned  div&#8217;s</a>.</p>
<h3>8. <a href="http://www.htmldog.com/">HTML Dog CSS Tutorials</a></h3>
<p><a href="http://www.htmldog.com/"><img src="http://images.sixrevisions.com/2008/08/29-08_html_dog.png" alt="HTML Dog CSS Tutorials - screen shot." width="500" height="180" /></a></p>
<p>HTML Dog is a tutorial website dedicated to teaching XHTML  and CSS best practices. There&#8217;s three CSS tutorial sections: <a href="http://www.htmldog.com/guides/cssbeginner/">Beginner</a>, <a href="http://www.htmldog.com/guides/cssintermediate/">Intermediate</a>, and <a href="http://www.htmldog.com/guides/cssadvanced/">Advanced</a>.</p>
<h3>9. <a href="http://www.barelyfitz.com/screencast/html-training/css/positioning/">Learn  CSS Positioning in Ten Steps</a></h3>
<p><a href="http://www.barelyfitz.com/screencast/html-training/css/positioning/"><img src="http://images.sixrevisions.com/2008/08/29-09_learn_css_positioning.png" alt="Learn CSS Positioning in Ten Steps - screen shot." width="500" height="180" /></a></p>
<p>Positioning elements using CSS can be a tricky concept at  first. If you&#8217;re having a hard time understanding the fundamentals of CSS  positioning, check out this 10-step tutorial to get you positioning stuff in no  time!</p>
<h3>10. <a href="http://www.andybudd.com/links/cssweb_standards/index.php">Andy Budd  CSS/Web Standards Links</a></h3>
<p><a href="http://www.andybudd.com/links/cssweb_standards/index.php"><img src="http://images.sixrevisions.com/2008/08/29-10_andy_budd.jpg" alt="Andy Budd CSS/Web Standards Links - screen shot." width="500" height="180" /></a></p>
<p>Andy Budd (directory of <a href="http://www.clearleft.com/">Clearleft</a>,  CSS guru, and author of one of my favorite books – <a href="http://www.google.com/books?id=Mp1KAAAACAAJ&amp;cq" title="Google Book Search - CSS mastery: advanced web standards">CSS Mastery</a>)  has a set of CSS/web standards links to help you find reliable, useful  information about CSS.</p>
<h3>11.<a href="http://www.w3schools.com/css/default.asp"> W3CSchools  CSS Tutorial</a></h3>
<p><a href="http://www.w3schools.com/css/default.asp"><img src="http://images.sixrevisions.com/2008/08/29-11_w3cshools.png" alt="W3CSchools CSS Tutorial - screen shot." width="500" height="180" /></a></p>
<p>W3CSchools has a CSS section that covers the very basics of  CSS up to more advanced topics.</p>
<h3>12.<a href="http://csszengarden.com/"> css Zen Garden</a></h3>
<p><a href="http://csszengarden.com/"><img src="http://images.sixrevisions.com/2008/08/29-12_css_zen_garden.jpg" alt="css Zen Garden - screen shot." width="500" height="180" /></a></p>
<p>css Zen   Garden is a showcase of  the things you can do CSS. Most importantly, it highlights the concept of separating  content from presentation. Using the same HTML file, designers submit external  stylesheets to style the HTML file. I suggest using the <a href="http://chrispederick.com/work/web-developer/">Web Developer Tool</a> to  inspect how the layouts work and what styles affect certain elements of the  page.</p>
<h3>13. <a href="http://css.maxdesign.com.au/" title="css.maxdesign.com.au - CSS resources and tutorials for web designers and web developers">CSS  at MaxDesign</a></h3>
<p><a href="http://css.maxdesign.com.au/"><img src="http://images.sixrevisions.com/2008/08/29-13_max_design.png" alt="CSS at MaxDesign - screen shot." width="500" height="180" /></a></p>
<p>At MaxDesign, you can find Russ Weakley&#8217;s  brilliant set of CSS-related tutorials. Some things to expect here are: <a href="http://css.maxdesign.com.au/listamatic/">Listmatic</a> – which shows you  a variety of ways you can use CSS to style lists, and <a href="http://css.maxdesign.com.au/floatutorial/">Floatutorial</a> – which goes  through the fundamentals of floating elements.</p>
<h3>14.<a href="http://www.csseasy.com/" title="http://www.csseasy.com/"> CSSeasy.com</a></h3>
<p><a href="http://www.csseasy.com/"><img src="http://images.sixrevisions.com/2008/08/29-14_css_easy.png" alt="CSSeasy.com - screen shot." width="500" height="180" /></a></p>
<p>CSSEasy.com&#8217;s slogan is &quot;learn CSS the modern way&quot;. The site  promotes learning by experience, with the idea that if you inspect the source  code and see how things fit together as a whole, you&#8217;ll gain a better  understanding of CSS. The <a href="http://chrispederick.com/work/web-developer/">Web  Developer Tool</a> will also come in handy on this website.</p>
<h3>15. <a href="http://www.css-discuss.org/">CSS-Discuss</a></h3>
<p><a href="http://www.css-discuss.org/"><img src="http://images.sixrevisions.com/2008/08/29-15_css-discuss.png" alt="CSS-Discuss - screen shot." width="500" height="180" /></a></p>
<p>CSS-Discuss is a community of CSS enthusiasts. The <a href="http://css-discuss.incutio.com/">CSS-Discuss Wiki</a> is a comprehensive  collection of real-world usage of CSS. </p>
<h3>16.<a href="http://webdesignfromscratch.com/css.cfm"> Web Design  from Scratch: CSS</a></h3>
<p><a href="http://webdesignfromscratch.com/css.cfm"><img src="http://images.sixrevisions.com/2008/08/29-16_web_design_from_scratch.png" alt="Web Design from Scratch: CSS - screen shot." width="500" height="180" /></a></p>
<p>Ben Hunt&#8217;s <a href="http://webdesignfromscratch.com/" title="Web Design from Scratch - home page.">Web Design from Scratch</a> has an  excellent section on CSS that covers basic concepts about CSS. I highly  recommend beginners start off with <a href="http://webdesignfromscratch.com/introduction-to-css.cfm">Introduction to  CSS</a>, a quick but very informative starting point to getting your hands  dirty with CSS.</p>
<h3>17.<a href="http://css-tricks.com/">CSS-Tricks</a></h3>
<p><a href="http://css-tricks.com/"><img src="http://images.sixrevisions.com/2008/08/29-17_css_tricks.jpg" alt="CSS-Tricks - screen shot." width="500" height="180" /></a></p>
<p>CSS-Tricks is a blog dedicated to the topic of CSS. You&#8217;ll  find helpful posts such as <a href="http://css-tricks.com/css-sprites-what-they-are-why-theyre-cool-and-how-to-use-them/" title="CSS Sprites: What They Are, Why They’re Cool, and How To Use Them - CSS-Tricks">what  CSS Sprites are (in a nut shell)</a>, <a href="http://css-tricks.com/nine-techniques-for-css-image-replacement/" title="Nine Techniques for CSS Image Replacement - CSS-Tricks">techniques for  image replacements</a>, and even screencasts on topics like <a href="http://css-tricks.com/videos/css-tricks-video-23.php" title="CSS-Tricks | Videos | Screencast #23">conditional stylesheets</a>.</p>
<h3>18.<a href="http://delicious.com/tag/css">CSS on Delicious</a></h3>
<p><a href="http://delicious.com/tag/css"><img src="http://images.sixrevisions.com/2008/08/29-18_css_on_delicious.png" alt="CSS on Delicious - screen shot." width="500" height="180" /></a></p>
<p>The CSS tag on Delicious is a great way to find popular  links that relate to CSS. It allows you to see what people are currently  reading.</p>
<h3>19. <a href="http://reference.sitepoint.com/css">SitePoint CSS  Reference</a></h3>
<p><a href="http://reference.sitepoint.com/css"><img src="http://images.sixrevisions.com/2008/08/29-19_sitepoint.png" alt="SitePoint CSS Reference - screen shot." width="500" height="180" /></a></p>
<p>SitePoint has a CSS reference section that discusses  introductory level CSS topics. You can get a crash course on <a href="http://reference.sitepoint.com/css/syntax">general CSS syntax and  nomenclature</a> onto slightly more advanced topics such as <a href="http://reference.sitepoint.com/css/workaroundsfiltershacks" title="Workarounds, Filters, and Hacks – SitePoint CSS Reference">CSS hacks and  filters</a>.</p>
<h3>20. <a href="http://cssdog.com/index.html">CSSDog</a></h3>
<p><a href="http://cssdog.com/index.html"><img src="http://images.sixrevisions.com/2008/08/29-20_css_dog.png" alt="CSSDog - screen shot." width="500" height="180" /></a></p>
<p>CSSDog has a section for both <a href="http://cssdog.com/css_intro.html" title="cssdog.com - CSS beginners">beginners</a> and more <a href="http://cssdog.com/css_visibility.html">advanced</a> developers. Aside from CSS lessons, their CSS Reference section &#8211; which lists  quick guides and color references &#8211; are very helpful.</p>
<h3>Missed your favorite?</h3>
<p>Do you have a favorite CSS website not on the list? Talk about it in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://sixrevisions.com/css/20_websites_learn_master_css/feed/</wfw:commentRss>
		<slash:comments>131</slash:comments>
		</item>
	</channel>
</rss>
