<?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>Monday By Noon &#187; Tips</title>
	<atom:link href="http://mondaybynoon.com/tag/tips/feed/" rel="self" type="application/rss+xml" />
	<link>http://mondaybynoon.com</link>
	<description>A resource for Web designers and developers to read about and discuss their craft.</description>
	<lastBuildDate>Wed, 08 Feb 2012 13:49:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>&#8226; Google&#8217;s &#8220;Let&#8217;s Make the Web Faster&#8221; Movement</title>
		<link>http://mondaybynoon.com/feeder/?FeederAction=clicked&#038;feed=Posts+%28RSS2%29&#038;seed=http%3A%2F%2Fmondaybynoon.com%2F20090629%2Fgoogles-lets-make-the-web-faster-movement%2F&#038;seed_title=%26%238226%3B+Google%26%238217%3Bs+%26%238220%3BLet%26%238217%3Bs+Make+the+Web+Faster%26%238221%3B+Movement</link>
		<comments>http://mondaybynoon.com/20090629/googles-lets-make-the-web-faster-movement/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 12:04:57 +0000</pubDate>
		<dc:creator>Jonathan Christopher</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[front end]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[Page Speed]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://mondaybynoon.com/?p=496</guid>
		<description><![CDATA[Google's Let's Make the Web Faster and Page Speed Firebug add-on can help you optimize your Web pages.<br /><p><a href='http://rss.buysellads.com/click.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=496&c=474156586' target='_blank' rel='nofollow'>
				<img src='http://rss.buysellads.com/img.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=496&c=474156586' border='0' alt='' /></a></p><p><a href='http://buysellads.com/buy/sitedetails/pubkey/2ee344414ac81fbb0f9de6ab08e9831e/zone/1269068' target='_blank'>Advertise here with BSA</a></p>]]></description>
			<content:encoded><![CDATA[<p>I love Google, I really do. The company and all of its work is heavily integrated into everyone&#8217;s lives no matter how hard you may try to escape it. Google not only takes a lot of initiative when it comes to the Web in general, Google has done a lot to facilitate Web development on many levels. From <a href="http://code.google.com/">Google Code</a> to <a href="http://gears.google.com/">Google Gears</a> and many (<strong><em>many</em></strong>) in between, Google&#8217;s latest venture, <a href="http://code.google.com/speed">Let&#8217;s Make the Web Faster</a>, is geared directly at Web developers.</p>
<h2>What you can learn</h2>
<p>By far the largest resource available on Let&#8217;s Make the Web Faster is the <a href="http://code.google.com/speed/articles/">collection of articles</a> available. The articles are put together quite well, involving a good blend of video and supporting imagery. You&#8217;ll be able to quickly learn the background behind some of the jargon used in document optimization.</p>
<p>Articles aren&#8217;t limited to front end development, because there&#8217;s more to writing markup and style if you&#8217;re a Web designer. Google takes the time to discuss other relevant areas such as the <a href="http://code.google.com/speed/articles/optimizing-images.html">optimization of Web graphics</a> for faster download times without losing quality. There are also articles on <a href="http://code.google.com/speed/articles/optimizing-javascript.html">optimizing your JavaScript</a> and even some <a href="http://code.google.com/speed/articles/optimizing-php.html">PHP performance tips</a>. One of the headlines that first caught my attention was <a href="http://code.google.com/speed/articles/usability-latency.html">UI Messaging and Perceived Latency</a> &#8212; what a great topic. Google also includes a number of links to various Tech Talks @ Google, which are always a good watch.</p>
<p>Let&#8217;s Make the Web Faster launched as a very information-rich resource, and I imagine Google will be adding new articles fairly consistently from here on out. What&#8217;s great is that Google has done its part in retaining the community value of Web developers by devoting a section of Let&#8217;s Make the Web Faster to <a href="http://code.google.com/speed/community.html">the community</a>, opening doors for your input.</p>
<h3>As with everything, be wary</h3>
<p>Just because you read it on the Internet, the information you got may not be bulletproof, even if Google wrote it. Articles attempting to <a href="http://www.codexon.com/posts/debunking-googles-internet-optimization-tips">Debunk Google&#8217;s Internet Optimization Tips</a> are beginning to crop up, and I think it&#8217;s great. Google suggests a number of techniques, actively put in practice on many Google products, that I will personally never employ just because it skirts around a rule or two. Saving a few bytes by writing sloppy code just isn&#8217;t something I&#8217;m interested in doing.</p>
<p>Like <strong>every</strong> Web designer, I&#8217;ve worked in PHP. I tend to really like PHP, but I don&#8217;t know PHP on the intimate level that programmers know PHP. I&#8217;m still learning about how the language itself actually works. I&#8217;m specifically interested in what PHP does differently than other languages which causes it to be huffed and puffed upon by so many.</p>
<p>It&#8217;s very interesting to read that some of the <a href="http://code.google.com/speed/articles/optimizing-php.html">PHP optimizations</a> suggested by Google <a href="http://groups.google.com/group/make-the-web-faster/browse_thread/thread/ddfbe82dd80408cc?pli=1">may not be entirely accurate</a>. I always enjoy reading technical pieces written by programmers who will always know more than me about programming. The existence of such a thread shows the nature of the PHP community, and it&#8217;s good to see that even Google might not know everything after all.</p>
<p>The important thing to keep in mind when reading <a href="http://code.google.com/speed">Let&#8217;s Make the Web Faster</a>, as with reading <em>every</em> article on the topic of Web development, is to take everything with a grain of salt, and to not follow the advice blindly.</p>
<h2>Page Speed for Firebug</h2>
<p>Everyone knows about <a href="http://getfirebug.com/">Firebug</a>. It&#8217;s arguable the most widespread, actively used tool by the majority of developers and designers, and for good reason. The tool changed the way many people approach front end development, and it was a true game changer.</p>
<p>Some time ago, Yahoo! released an add-on for Firebug called <a href="http://developer.yahoo.com/yslow/">YSlow</a>. The tool aimed to help developers analyze documents and suggest optimizations not only for speed, but <a href="http://developer.yahoo.com/performance/rules.html">rules for optimization</a>. YSlow proved to be very helpful for many people, and I know I learned a thing or two about some of the techniques I had been using for quite some time.</p>
<p>As part of Google&#8217;s initiative, they have released <a href="http://code.google.com/speed/page-speed/">Page Speed</a>, also a Firebug add-on aimed at page performance analysis. After installing the Page Speed add-on, you&#8217;ll notice a new tab within Firebug:</p>
<p><img src="/images/pagespeed01.png" alt="Screenshot of Google's Page Speed Firebug add-on, default tab"></p>
<p>As with YSlow, you need to invoke the analysis by clicking a button quickly after navigating to the document you&#8217;d like to test. After completion, you&#8217;re provided with a very detailed report containing a breakdown of the criteria against which your document was run:</p>
<p><img src="/images/pagespeed02.png" alt="Screenshot of Google's Page Speed Firebug add-on, after site analysis"></p>
<p>Additionally, Page Speed takes another step forward in offering to apply a number of optimizations to your document immediately. For instance, if deemed necessary, Page Speed will go ahead and minimize your JavaScript on the fly, as the browser downloads the JavaScript, having an optimized version ready at any time:</p>
<p><img src="/images/pagespeed03.png" alt="Screenshot of Google's Page Speed Firebug add-on, offering minified JavaScript"></p>
<p>The last feature within Page Speed I&#8217;d like to tout is the CSS analysis. Beyond suggesting the combination of CSS files to reduce the number of HTTP requests, Page Speed will examine your style sheet on a per-line basis, letting you know what could be written better:	</p>
<p><img src="/images/pagespeed04.png" alt="Screenshot of Google's Page Speed Firebug add-on, CSS analysis"></p>
<p>Page Speed will separate your &#8216;very inefficient&#8217; and &#8216;inefficient&#8217; rules and let you know what makes each less than ideal.</p>
<p>As with YSlow, Page Speed has links throughout the panel directing you to the information backing up the suggestion, found on Google&#8217;s <a href="http://code.google.com/speed">Let&#8217;s Make the Web Faster</a>. I would suggest that everyone have <a href="http://code.google.com/speed/page-speed/">Page Speed</a> at the ready during a testing phase of a Web project. It will make sure your documents are top notch concerning performance, and you&#8217;ll become a better developer because of it.</p>
<p>There is an <a href="http://code.google.com/speed/page-speed/docs/using.html">abundance of information available</a> if you&#8217;d like to read a bit more before installing Page Speed. Even if you&#8217;re not a Firefox user, I absolutely suggest keeping it on hand not only for render tests, but optimization tests using Page Speed as well.</p>
<h3>Overall impression</h3>
<p>There is a lot to learn as far as Web page optimization goes. As new technology appears, you&#8217;ll have to learn even more, but it&#8217;s an important aspect of Web design and a valuable part of the medium. It&#8217;s important for you as a professional to know how to produce work of the highest caliber, and optimizations can do a great deal to make your work feel that much more polished. Google&#8217;s &#8220;<a href="http://code.google.com/speed">Let&#8217;s Make the Web Faster</a>&#8221; is a great platform that should help spread the word very quickly to a large audience.</p>
<p>I hope to see Google continue developing content for the recent project, and I hope to see a decent community response, especially debunking any poor advice Google may be giving by offering detailed responses. While certain practices may achieve the most desirable result, it will be up to the community to ensure that the actions aren&#8217;t welcoming detrimental side effects causing more problems than before.</p>
<br /><p><a href='http://rss.buysellads.com/click.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=496&c=133777260' target='_blank' rel='nofollow'>
				<img src='http://rss.buysellads.com/img.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=496&c=133777260' border='0' alt='' /></a></p><p><a href='http://buysellads.com/buy/sitedetails/pubkey/2ee344414ac81fbb0f9de6ab08e9831e/zone/1269068' target='_blank'>Advertise here with BSA</a></p>]]></content:encoded>
			<wfw:commentRss>http://mondaybynoon.com/20090629/googles-lets-make-the-web-faster-movement/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>&#8226; Improving Your Process: Faster Front End Development</title>
		<link>http://mondaybynoon.com/feeder/?FeederAction=clicked&#038;feed=Posts+%28RSS2%29&#038;seed=http%3A%2F%2Fmondaybynoon.com%2F20090615%2Fimproving-your-process-faster-front-end-development%2F&#038;seed_title=%26%238226%3B+Improving+Your+Process%3A+Faster+Front+End+Development</link>
		<comments>http://mondaybynoon.com/20090615/improving-your-process-faster-front-end-development/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 12:19:59 +0000</pubDate>
		<dc:creator>Jonathan Christopher</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Improving Process]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[tricks]]></category>

		<guid isPermaLink="false">http://mondaybynoon.com/?p=490</guid>
		<description><![CDATA[Time is very important in Web design. Here are a few tips to keep that time to a minimum, allowing for budgeted experimentation and polish.<br /><p><a href='http://rss.buysellads.com/click.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=490&c=1157759154' target='_blank' rel='nofollow'>
				<img src='http://rss.buysellads.com/img.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=490&c=1157759154' border='0' alt='' /></a></p><p><a href='http://buysellads.com/buy/sitedetails/pubkey/2ee344414ac81fbb0f9de6ab08e9831e/zone/1269068' target='_blank'>Advertise here with BSA</a></p>]]></description>
			<content:encoded><![CDATA[<p>In our business, time is of the essence. Regardless of your billing policies, as a professional designer it is <strong>imperative</strong> that you have the ability to accurately estimate a workload <em>and then follow through, <strong>on schedule</strong></em>. The ability to estimate work comes only with experience. You can read countless articles on design, even specifically on Web design, but until you get at least a year of consistent, professional work under your belt, it just won&#8217;t be there. It&#8217;s absolutely no fault of your own, simply because you haven&#8217;t worked enough.</p>
<p>That said, depending on your billing structure, you&#8217;ll be able to optimize your workflow in such a way that not only reduces your stress level, but will make your clients happy to boot. I mention a dependence on your billing structure simply because sometimes getting a project done well under a time-based budget can result in trouble for you financially. The important thing to realize, however, is that with newfound extra time comes extra polish. If you come in a few hours under budget, you now have the time to try that element you were toying with in design. Does it work now? How about the leading in that area? Would it look better if it were bumped up, just a bit?</p>
<p>Reducing the time you spend on front end development can lead to more experimentation and a better end product should you have extra time to play with late in a project. Personally, I like to keep front end development estimates to a minimum, allowing the budget to focus on design. I work with a team of designers, so the better we plan from the start, the better a project will go.</p>
<h2>Have a plan, start with a static file</h2>
<p>By far the most effective way to cut down on front end development time is to be involved in the design process. You don&#8217;t even have to be the designer, but you should periodically review any design for a basic feasibility assessment. That&#8217;s not to say that you should be prototyping designs to make sure something is going to work, but you should be able to process a design to a level that will let you be comfortable with it.</p>
<p>As you examine a design, try to abstract your brain from admiring the aesthetics of the design. Try to visualize how you will approach the front end for this document. Take a look at a comp for another page, can you determine how much markup and style you&#8217;ll be able to reuse from the first page to this one? Are there any modifications that should be made to the design to establish some consistency on a more technical level? Take a second look at the design, take a third look. Has someone added a gradient or texture that physically can&#8217;t translate to the Web?</p>
<p>Once you&#8217;ve signed off on approval for a design and it comes time to begin work, I can&#8217;t emphasize enough how much it will help you to start with a static HTML document. Stay away from your server side technology, no matter what it is, and instead use a static file that takes advantage of any dynamic resources you&#8217;ve set up.</p>
<p>For example, at my company we&#8217;ve established a site framework that we use to begin each project. In this site framework is your usual array of template-supported, server-side powered files that tie in directly with our <abbr title="Content Mangement System">CMS</abbr>, and the like. Alongside this set of files are two static files: <code>home.html</code> and <code>secondary.html</code>. These are the first two files I&#8217;ll open and work with on a project.</p>
<p>The files are prepped in such a way that the path to the <abbr title="Cascading Style Sheets">CSS</abbr> directory is hard coded, removing the need to copy and paste once our original documents have been written. I&#8217;ll work my way through a secondary page, <strong>then</strong> the home page, and once that&#8217;s done, I&#8217;ll integrate.</p>
<h2>Write your markup first, all of it</h2>
<p>Nearly two years ago, I wrote about <a href="/2007/01/29/my-development-and-design-process/">my development and design process</a>. Much of my strategy remains the same to this day, specifically the first steps I take. The initial markup process ties in heavily with the original review of a site design. From the first time I open a PSD or PNG my mind begins working, breaking down the design into markup and markup alone.</p>
<p>I&#8217;ll break apart the design into sections, until I&#8217;ve found myself at the lowest common denominator, whether it be an <code>h3</code> or an <code>li</code>. Once I&#8217;ve got a general idea of the overall structure, I&#8217;ll write it. All of it, from <code>#header</code> to <code>#footer</code>. I&#8217;ll switch to and from Fireworks (or Photoshop) and my editor, making sure all of my elements are in place.</p>
<p>Writing the initial markup for a document doesn&#8217;t take very long, an hour if you take your time. There really isn&#8217;t that much to it, especially if you&#8217;ve had a look at the design as it was being put together. You already know what to expect, and you can hit the ground running.</p>
<p>The important thing to keep in mind at this step is optimization. Don&#8217;t move on to CSS until every bit of markup is in place to support the design. Sure, you&#8217;re probably going to have to add an element or two as you continue development, but getting the initial structure <em>entirely</em> in place will be super helpful when it comes to the style layer.</p>
<h3>Use a reset stylesheet</h3>
<p>I can&#8217;t stress enough <a href="/2008/04/21/why-i-like-and-use-reset-css/">how helpful a reset stylesheet is</a> when it comes to optimizing your front end development. It doesn&#8217;t have to be Eric Meyer&#8217;s reset stylesheet, but working from a consistent base is extremely helpful when it comes to building out your CSS, even more-so when it comes to <a href="/2009/03/09/improving-your-process-the-browser-gauntlet/">The Browser Gauntlet</a>.</p>
<h3>Write CSS in blocks</h3>
<p>I can remember my first few weeks with CSS; I&#8217;ve never been so excited to refresh a browser, and I never will be again. With each refresh came a new and exciting change that I was struggling to understand. Learning about CSS was very exciting for me, but it forced me to implement designs slower than ever. As with everything, the more you do, the better you get. As your skill with CSS grows, force restraint on yourself when you think you need to refresh the browser.</p>
<p>Chances are, that <code>property:value;</code> you just set is going to work out just fine. Move on to the next, and the next. Finish setting all the properties you want for that selector and <em>then</em> switch over to refresh. Once you&#8217;ve become comfortable with that, style an entire <code>div</code> before refreshing. Once you&#8217;ve become comfortable with that, structure your entire document before refreshing, and the move on to styling each <code>div</code> you just positioned.</p>
<p>The more CSS you can write in a single thought, the better <strong>and faster</strong> you&#8217;ll be. The important thing to keep in mind, though, is not to write too much at once. As you&#8217;re forcing yourself not to refresh, you may make a significant mistake that wreaks havoc on a few dozen lines of later CSS. Push yourself, but don&#8217;t push yourself too far too fast.</p>
<h3>Save JavaScript until last</h3>
<p>Exciting as it may be to implement, make sure you&#8217;re postponing <strong>all</strong> JavaScript development until last. Integrating JavaScript too early is going to destroy the integrity of both your markup and style, and will cause more trouble than it&#8217;s worth.</p>
<p>Instead, take the time to develop the markup and style for any states you may be integrating with JavaScript, and make sure they&#8217;re ready to be toggled (or otherwise) via JavaScript. Abstracting markup and style from JavaScript can help you to focus and optimize as you put together a design.</p>
<h3>Take advantage of helpful tools</h3>
<p>My last tip is something I depend very heavily on; finding the right tools for the job. If there are any applications under consistent development and refinement, it&#8217;s Web development applications and tools. Even browser makers are now giving us gold platters with which to work through built in developer tools.</p>
<p>First, find yourself a great text editor. Who cares what everyone else is using, find something that you enjoy working with, and most important: something stable that saves you time. I can definitively say that <a href="http://macromates.com/">TextMate</a> (Windows users: <a href="http://www.e-texteditor.com/">e text editor</a>) has had significant impact on my development time.</p>
<p>There are plenty of fancy tools out there, but I can&#8217;t stress enough the importance of your editor.</p>
<p>Along with your editor, another integral part of your workflow is your browser of choice. Your browser should support your efforts, providing the tools you need to get the job done. Toolsets for browsers have been talked to death, but a favorite tool of mine has never received much press, and I&#8217;d like to heavily suggest your adoption of it.</p>
<p><a href="http://dmachi.dojotoolkit.org/recss.html">ReCSS</a> is a bookmarklet that comes from <a href="http://dojotoolkit.org/">dojo</a> and it&#8217;s something I use on a very consistent basis with every project. The sole purpose of the bookmarklet is to force a reload of CSS used on the current document. This helps you to avoid reloading the entire page (including server processing and other latency) and instead request only the latest stylesheets. It&#8217;s such a simple idea, but I&#8217;ll use the bookmarklet at least a few dozen times per-project to ensure that I&#8217;m not dealing with any caching issues.</p>
<h4>Let&#8217;s have it</h4>
<p>Do everyone a favor and post your favorite time saving front end development tip or trick.</p>
<br /><p><a href='http://rss.buysellads.com/click.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=490&c=1973583077' target='_blank' rel='nofollow'>
				<img src='http://rss.buysellads.com/img.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=490&c=1973583077' border='0' alt='' /></a></p><p><a href='http://buysellads.com/buy/sitedetails/pubkey/2ee344414ac81fbb0f9de6ab08e9831e/zone/1269068' target='_blank'>Advertise here with BSA</a></p>]]></content:encoded>
			<wfw:commentRss>http://mondaybynoon.com/20090615/improving-your-process-faster-front-end-development/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>&#8226; Improving Your Process: Thinking More About Your CSS</title>
		<link>http://mondaybynoon.com/feeder/?FeederAction=clicked&#038;feed=Posts+%28RSS2%29&#038;seed=http%3A%2F%2Fmondaybynoon.com%2F20090601%2Fimproving-your-process-thinking-more-about-your-css%2F&#038;seed_title=%26%238226%3B+Improving+Your+Process%3A+Thinking+More+About+Your+CSS</link>
		<comments>http://mondaybynoon.com/20090601/improving-your-process-thinking-more-about-your-css/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 13:17:50 +0000</pubDate>
		<dc:creator>Jonathan Christopher</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Improving Process]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[organization]]></category>
		<category><![CDATA[tricks]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://mondaybynoon.com/?p=486</guid>
		<description><![CDATA[It's important to constantly improve yourself, even when you've become completely comfortable with it. CSS is a simple technology, but putting proper thought behind it can make a stylesheet beautiful.<br /><p><a href='http://rss.buysellads.com/click.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=486&c=1177419456' target='_blank' rel='nofollow'>
				<img src='http://rss.buysellads.com/img.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=486&c=1177419456' border='0' alt='' /></a></p><p><a href='http://buysellads.com/buy/sitedetails/pubkey/2ee344414ac81fbb0f9de6ab08e9831e/zone/1269068' target='_blank'>Advertise here with BSA</a></p>]]></description>
			<content:encoded><![CDATA[<p>Over the past few months, I&#8217;ve been trying to keep an eye on myself as far as writing CSS goes. Writing CSS leaves a lot in the hands of the author, and every designer has his or her very own method to madness. When it comes to CSS, you can do anything you want, which is mostly valuable, but sometimes hurtful with inexperience. I&#8217;m always curious to know the thought process behind writing CSS from the eyes of the author, as every stylesheet can be quite different from the next.</p>
<p>The way you write your CSS today depends heavily on what you were initially taught (self or otherwise) in conjunction with other things such as what you&#8217;ve read that counteracts your teachings, as well as the level of desire to improve your craft. I like finding out the lessons learned behind your reasons (or lack thereof) for writing CSS the way you do.</p>
<p>I really enjoy writing about CSS, and if you&#8217;re a fairly recent subscriber, here&#8217;s a quick breakdown of my tips, tricks, and suggestions from the past:</p>
<dl>
<dt><a href="/2006/02/19/write-better-css/">Write Better CSS</a></dt>
<dd>One of the earliest articles I had written for Monday By Noon, but I still practice much of what was written over three years ago.</dd>
<dt><a href="/2007/02/26/improving-your-process-css-techniques-part-1/">Improving Your Process: CSS Techniques Part 1</a></dt>
<dd>In the first part of the Techniques series, I mentioned a few ways that I tried to be more organized with my CSS writing, especially when working with a team. I have made some revisions since the publication of that article, specifically in <a href="/2008/04/21/why-i-like-and-use-reset-css/">dealing with browser defaults</a>. Apart from that, I still stand by the advice offered in that piece.</dd>
<dt><a href="/2008/01/14/improving-your-process-css-techniques-part-2/">Improving Your Process: CSS Techniques Part 2</a></dt>
<dd>In this article I made public my switch to using a reset stylesheet. I also tried to put into words some of the thought process behind my front end development process. You won&#8217;t find many code samples in that article.</dd>
<dt><a href="/2008/09/01/css-organization-methods-and-writing-style/">CSS Organization Methods and Writing Style</a></dt>
<dd>This article was all about writing style. Style as far as comment blocks, overall stylesheet organization, right down to single line versus multiline. I touched on the idea of using flags as a hook for searching to quickly find various sections of your stylesheet, but that didn&#8217;t catch on with me.</dd>
</dl>
<p>With that reviewed, I&#8217;ve got a few other things I&#8217;d like to share as far as my CSS writing style is concerned.</p>
<h2>It&#8217;s about patterns</h2>
<p>One of the best habits I&#8217;ve found for myself is the desire to find patterns in designs. Patterns go a long way in design, and every good design inherits a certain level of pattern. Whether it be in organization, texture, or otherwise, a pattern provides consistency, and you&#8217;ll see patterns everywhere on the Web.</p>
<p>It will be in your absolute best interest to discover these patterns prior to writing a single line of markup or style. You want to use patterns to your benefit. Not only will finding patterns reduce your workload, it will make maintenance that much easier.</p>
<p>Jeff Croft recently posted an insightful article on finding patterns in CSS, but instead compared it to <a href="http://jeffcroft.com/blog/2009/may/20/applying-oop-concepts-css/">applying <abbr title="Object Oriented Programming">OOP</abbr> concepts to CSS</a>. I&#8217;m a big fan of Jeff, and much of my fandom comes from a similarity not only in workflow, but also opinion and thought process when it comes to Web design. In that article, Jeff puts into words something I&#8217;ve tried to verbalize in the past, and I&#8217;m thrilled to have it as a reference now.</p>
<p>I can see how using OOP methods in your CSS can be an eye-opening discovery, but it&#8217;s <em>very important</em> that you don&#8217;t become overzealous with it. As with many aspects of Web design, there is a fine line to walk when it comes to finding a happy medium with something like this. You&#8217;ll need to take a step back and really think about your implementation before taking action, else you&#8217;ll find yourself fighting an uphill battle when it comes to troubleshooting and maintenance. Using too many classes in a widespread way is going to cause trouble when you need to make a sitewide change and need to edit nearly every file on the site because you used a combination of classes in too many places.</p>
<p>Before I begin writing a line of markup, I take enough time to look at every comp for a website. I&#8217;ll look to see which elements, both structural and stylistic, have a repetitious property to them. I&#8217;ll keep these repetitions in mind as I write my initial markup, and then again when I&#8217;m later starting to write my CSS, and use the patterns to my advantage. Experience will help you better recognize and use patterns as you design and build more websites, but it will be a great skill to focus on throughout your career.</p>
<h3>It&#8217;s also about structure</h3>
<p>One of my biggest peeves when maintaining CSS is poor stylesheet structure. That is to say, when a production stylesheet has been in place for a decent amount of time, and the website has undergone some revisions, the edits were not properly put in place. Instead, declarations are sometimes simply appended to the end of the file to ensure their application, instead of finding the proper place in the file in which to make a change. I can recognize the desire to do such a thing, especially if you&#8217;re doing maintenance yourself, and the original file structure is so unkempt it would take hours to sift and organize it yourself. While the fault lies with the original author, it&#8217;s something that should be entirely avoided from the start.</p>
<p>I don&#8217;t mean to say that the way I write my CSS is a superior way to do so, my point is that you <strong>need</strong> to have some structure to your stylesheets. The technique I use for structuring my stylesheets is roughly the following:</p>
<ol>
<li>Global styles such as &#8216;main&#8217; copy properties (size, color, font) at the top</li>
<li>Global structure definition (main (secondary) page structure)</li>
<li>Header styles</li>
<li>Content area styles</li>
<li>Sidebar styles</li>
<li>Footer styles</li>
<li>Per-page specific styles</li>
</ol>
<p>My basic reasoning is to work top down as far as specificity is concerned. I&#8217;ll work from the most global properties down to the most detailed as I work through a stylesheet. I try to keep things organized with how I think in a way. I&#8217;ll start with the main structure of the document, and then continue to style the header, content area, sidebar, and footer, respectively.</p>
<p>Once the more generic, consistent styles are taken care of, I&#8217;ll set up sections of the stylesheet specifically for one-off pages in the site should the design require it. Proper attention is given to these groups of styles via comments outlining which page is associated with a set of selectors.</p>
<p>Working in such a way will help you abstract which edits will affect the site in its entirety as opposed to the single instance you&#8217;re trying to modify. When working on a site you didn&#8217;t originally style, it&#8217;s very easy to make an edit that may in fact destroy a significant portion of the site you&#8217;re not even aware of.</p>
<h3>Do you consitently keep your CSS in check?</h3>
<p>Is it strange that I still put this much emphasis on the quality of my stylesheets? Are you at all interested in how other people write CSS or do you prefer to work in the way you&#8217;re comfortable? What techniques do you use when organizing your stylesheets from a more global perspective, as opposed to writing comments here and there for reference?</p>
<br /><p><a href='http://rss.buysellads.com/click.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=486&c=1451117770' target='_blank' rel='nofollow'>
				<img src='http://rss.buysellads.com/img.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=486&c=1451117770' border='0' alt='' /></a></p><p><a href='http://buysellads.com/buy/sitedetails/pubkey/2ee344414ac81fbb0f9de6ab08e9831e/zone/1269068' target='_blank'>Advertise here with BSA</a></p>]]></content:encoded>
			<wfw:commentRss>http://mondaybynoon.com/20090601/improving-your-process-thinking-more-about-your-css/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>&#8226; Improving Your Process: The Browser Gauntlet</title>
		<link>http://mondaybynoon.com/feeder/?FeederAction=clicked&#038;feed=Posts+%28RSS2%29&#038;seed=http%3A%2F%2Fmondaybynoon.com%2F20090309%2Fimproving-your-process-the-browser-gauntlet%2F&#038;seed_title=%26%238226%3B+Improving+Your+Process%3A+The+Browser+Gauntlet</link>
		<comments>http://mondaybynoon.com/20090309/improving-your-process-the-browser-gauntlet/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 14:42:07 +0000</pubDate>
		<dc:creator>Jonathan Christopher</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Improving Process]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Gecko]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[WebKit]]></category>

		<guid isPermaLink="false">http://mondaybynoon.com/?p=410</guid>
		<description><![CDATA[Having an effective browser test suite for Web design should be a terribly important part of your process.<br /><p><a href='http://rss.buysellads.com/click.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=410&c=1553491203' target='_blank' rel='nofollow'>
				<img src='http://rss.buysellads.com/img.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=410&c=1553491203' border='0' alt='' /></a></p><p><a href='http://buysellads.com/buy/sitedetails/pubkey/2ee344414ac81fbb0f9de6ab08e9831e/zone/1269068' target='_blank'>Advertise here with BSA</a></p>]]></description>
			<content:encoded><![CDATA[<p>Learning of the requirement to test in multiple browsers is one of the most frustrating things to pick up when starting out in Web design. When I graduated from IE5.5 and found myself having to reopen it to test websites, it made sense, but it also made me depressed. Every Web designer has gone through the same thing at an early point in his or her career, as you pick up what&#8217;s right, and try to break the bad habits you formed as you taught yourself everything you know.</p>
<h2>The building process</h2>
<p>Over the past couple years I&#8217;ve wavered back and forth between building websites in <a href="http://www.mozilla.com/en-US/firefox/">Firefox</a> and <a href="http://www.apple.com/safari/">Safari</a>. With the release of Safari 4 beta, I&#8217;m 95% sure I&#8217;ll be sticking with Safari this year (the Web Inspector alone is stunning). The main point I&#8217;d like to get across is that you begin work on every website using a modern, standards-respecting browser.</p>
<p>Using a well built browser will help keep your markup and style lean and clean. Starting out with a substandard browser will bloat everything from the start; not something you&#8217;re looking to do. After your initial build, you can then take your work through The Browser Gauntlet.</p>
<p>It&#8217;s a familiar feeling for any Web designer &mdash; you&#8217;ve completed the first series of pages, you feel great and go get a cup of coffee. The next time you sit down, it hits you: <em>time to test</em>. To this day I still get a few butterflies as I come to that very realization.</p>
<h3>My Browser Gauntlet</h3>
<p>My primary workstation is a Mac, so I&#8217;ll begin testing using browsers native to OS X. After building the site in Safari I&#8217;ll quickly test in Firefox. It&#8217;s been a long time since any discrepancies have appeared during this first test, so it&#8217;s more of a quick sanity check and move on. From there I&#8217;ll test in the latest stable, public release builds of <a href="http://www.opera.com/">Opera</a> and <a href="http://caminobrowser.org/">Camino</a>. I&#8217;ll also check things out in the latest <a href="http://nightly.webkit.org/">WebKit Nightly</a> to future-proof a little bit.</p>
<p>Although I test in five browsers at this stage, it usually takes only a few minutes since each browser is extremely capable as far as standards are concerned.</p>
<p>The next thing I&#8217;ll do is boot up <a href="http://www.microsoft.com/windows/windows-xp/">Windows XP</a> via <a href="http://www.vmware.com/products/fusion/">VMware Fusion</a>. I&#8217;m a huge fan of Fusion, but using a virtual machine (in OS X or otherwise) is a serious timesaver.</p>
<p>I&#8217;ll begin testing in Windows with standards capable browsers. First I&#8217;ll test in the latest public release of Firefox (3.0.7 at the time of this writing). I&#8217;m also still testing in the latest version of Firefox 2 (2.0.0.16) as I&#8217;ve found some discrepancies when working with Flash between Firefox 2 and Firefox 3. I&#8217;ll also test in the most recent versions of Opera, Safari, and <a href="http://www.google.com/chrome">Chrome</a>. Again, this testing usually takes a few minutes at most.</p>
<p>Next I&#8217;ll test in Internet Explorer. I&#8217;ve tried a mix of <a href="http://blogs.vmware.com/teamfusion/2008/11/vmware-fusion-3.html">Snapshots</a> to test each version of IE, but found that process to be a bit slow for my tastes. I&#8217;ve had great luck with <a href="http://www.my-debugbar.com/wiki/IETester/HomePage">IETester</a>, a free Web browser that lets you easily switch between Internet Explorer rendering engines. As of this writing, IETester is at version 0.3 and includes engines from IE8 RC1, IE7, IE6, and IE5.5 on both Vista and XP.</p>
<p>Some designers I&#8217;ve talked to feel IETester is a bit buggy for their taste, but I&#8217;ve found a trick that works for me and has absolutely no technical backing. If the first tab you open is of the default browser on your system, switching between various rendering engines is quite stable.</p>
<p>Using IETester, I will first test in Internet Explorer 7, and correct inconsistencies using <a href="/2006/05/15/i-vote-conditional-comments/">conditional comments</a>. Once things are stable in IE7, I&#8217;ll move to IE6, which is the longest stage of The Browser Gauntlet. Again using conditional comments, I&#8217;ll make my way through the shortcomings of IE6, gracefully degrading where applicable. I don&#8217;t make a big deal about it, just make things tolerable and move right along. Last, I&#8217;ll quickly look at the site in IE8 (latest release) and tidy up there as well where I can. I no longer test designs in Internet Explorer 5.5 as our metrics don&#8217;t call for that attention to be provided.</p>
<p>The final steps of my Browser Gauntlet reside in <a href="http://www.ubuntu.com/">Ubuntu</a>. Ubuntu is my Linux distribution of choice, and I always keep a stock installation available in Fusion not only for testing purposes but also to play around with from time to time. I feel it&#8217;s important to test in a Linux environment not because a significant number of people are using Linux, but because the operating system gives us some variables we may not have otherwise expected. The most obvious differences are with type rendering in the browser, so I make sure to keep only the default font installed that come with Ubuntu. This helps me validate included <a href="http://unitinteractive.com/blog/2008/06/26/better-css-font-stacks/">font stacks</a> and make sure nothing breaks for Linux users.</p>
<p>Once I&#8217;ve booted into Ubuntu, I&#8217;ll first check renderings in Firefox. From there I&#8217;ll check things out in Opera, <a href="http://projects.gnome.org/epiphany/">Epiphany</a>, and <a href="http://www.konqueror.org/">Konqueror</a>. These browsers often use the latest releases of either <a href="https://wiki.mozilla.org/Gecko">Gecko</a> or <a href="http://webkit.org/">WebKit</a> so it&#8217;s rare that any significant trouble pops up. The most significant thing I&#8217;ll keep an eye out for at this stage is type inconsistency.</p>
<p>Once testing in Linux is complete, I&#8217;m quite comfortable moving on to the later stages of development (integration with a <acronym title="Content Management System">CMS</acronym>, adding behavioral JavaScript, integrating Flash elements, etc.). I&#8217;ll repeat this process before showing the client anything, just to make sure the design is properly reflected after the bulk of the work has been done.</p>
<h3>Testing in mobile browsers</h3>
<p>The mobile space will continue to advance, and when a client requests a mobile version of their website, there is an additional step to browser testing that takes place. While I don&#8217;t have a wide array of mobile devices on which to test, I&#8217;ll do what I can with the tools I do have. Primary testing takes place in the iPhone simulator, as iPhone optimized sites are primarily requested at this time. The iPhone simulator is available in the <a href="http://developer.apple.com/iPhone/program/download.html">iPhone SDK</a> and allows really quick and easy testing of iPhone-optimized designs. Blackberry optimized sites are also requested from time to time, and although much less streamlined, there are a <a href="http://na.blackberry.com/eng/developers/resources/simulators.jsp">series of device simulators available</a>. The simulators are Windows-only, so I&#8217;ll do my Blackberry testing using those tools made available. Another popular platform to test with is Opera Mini. Many handhelds use Opera Mini, and the Opera team <a href="http://www.opera.com/mini/demo/">offers a simulator (demo)</a> for that as well.</p>
<p>Unfortunately, not many of my clients have requested mobile optimized sites, but I will be integrating that testing pattern into my process as more websites come through the door.</p>
<p>Effectively testing for the mobile space is not as easy as the desktop, but more tools are becoming available, and there is always the device itself on which to test. Unfortunately quite a bit comes down to the client budget and how much has been allocated for the mobile space. We&#8217;ll be seeing more mobile-optimized clients over the coming years, so it will definitely be in your best interest to learn about the available tools and become familiar with them.</p>
<h3>Your turn</h3>
<p>Browser testing is a bit of a pain for Web designers, but it&#8217;s also a responsibility. One thing I&#8217;ve noticed as I continue refining my skill, is that browser testing takes up less time with each website I build. With each website, you&#8217;ll more than likely pick up something new. With each piece of knowledge, you&#8217;re preparing yourself for upcoming projects. You&#8217;ll have in the back of your head the knowledge that building this layout is going to cause the same headache as the last one, and you&#8217;ll be able to take a more aggressive approach to solving the issue before it&#8217;s even a problem. Don&#8217;t look at browser testing as a hassle, instead think of it as the finishing touches on the best work you can do.</p>
<p>Is your Browser Gauntlet similar to mine? Are you testing in a browser that I&#8217;ve overlooked? Do you have any tricks up your sleeve to make browser testing less painful?</p>
<br /><p><a href='http://rss.buysellads.com/click.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=410&c=1559175578' target='_blank' rel='nofollow'>
				<img src='http://rss.buysellads.com/img.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=410&c=1559175578' border='0' alt='' /></a></p><p><a href='http://buysellads.com/buy/sitedetails/pubkey/2ee344414ac81fbb0f9de6ab08e9831e/zone/1269068' target='_blank'>Advertise here with BSA</a></p>]]></content:encoded>
			<wfw:commentRss>http://mondaybynoon.com/20090309/improving-your-process-the-browser-gauntlet/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>&#8226; Fear not. I Have Conquered IE6, and You Can Too</title>
		<link>http://mondaybynoon.com/feeder/?FeederAction=clicked&#038;feed=Posts+%28RSS2%29&#038;seed=http%3A%2F%2Fmondaybynoon.com%2F20090112%2Ffear-not-i-have-conquered-ie6-and-you-can-too%2F&#038;seed_title=%26%238226%3B+Fear+not.+I+Have+Conquered+IE6%2C+and+You+Can+Too</link>
		<comments>http://mondaybynoon.com/20090112/fear-not-i-have-conquered-ie6-and-you-can-too/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 06:52:04 +0000</pubDate>
		<dc:creator>Jonathan Christopher</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[Internet-Explorer]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[tricks]]></category>

		<guid isPermaLink="false">http://mondaybynoon.com/?p=289</guid>
		<description><![CDATA[Internet Explorer 6 should not be abandoned. Instead you should plan for IE6 and gracefully degrade.<br /><p><a href='http://rss.buysellads.com/click.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=289&c=1499958543' target='_blank' rel='nofollow'>
				<img src='http://rss.buysellads.com/img.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=289&c=1499958543' border='0' alt='' /></a></p><p><a href='http://buysellads.com/buy/sitedetails/pubkey/2ee344414ac81fbb0f9de6ab08e9831e/zone/1269068' target='_blank'>Advertise here with BSA</a></p>]]></description>
			<content:encoded><![CDATA[<p>Web design is about many things. I&#8217;d like to focus on a single aspect of Web design that is Internet Explorer 6. Not <abbr title="Internet Explorer 7">IE7</abbr> and its ability to put some makeup on what once was <abbr title="Internet Explorer 6">IE6</abbr>, not <abbr title="Internet Explorer 8">IE8</abbr> and the great potential on that side of the fence. I&#8217;d like to focus solely on Internet Explorer 6, arguably one of the more popular (by usage statistics) browser for the next half decade.</p>
<h2>Browser usage; who cares?</h2>
<p>I follow usage statistics. I follow usage stats not only for my personal sites as well as prospective client sites (when possible), I also follow usage stats for existing client sites for which we collect analytics, as well as more broad metrics from services such as <a href="http://marketshare.hitslink.com/report.aspx?qprid=0&amp;qpmr=15&amp;qpdt=1&amp;qpct=3&amp;qpcal=1&amp;qptimeframe=Q&amp;qpsp=39">Market Share</a>. As with all statistics, it is <em>terribly important</em> that you search for and validate as much data as possible before coming to any sort of conclusion. Browser usage metrics are values designed to be taken with a (decently sized) grain of salt. Of course user agent strings can be easily forged, and data sets can be easily skewed. The important thing to remember is: <strong>browser usage should still be of great importance to you as a modern Web designer</strong>.</p>
<p>I&#8217;d like to be completely clear in saying that usage stats should be important to you as a professional designer, but the numbers should not have adverse affect on your design. Modern Web design has taught us that a well balanced combination of <a href="http://en.wikipedia.org/wiki/Progressive_enhancement">progressive enhancement</a> &amp; <a href="http://en.wikipedia.org/wiki/Fault-tolerant_system">graceful degradation</a> can simply work wonders.</p>
<p>When it comes to tackling IE6, we can guarantee one another that there won&#8217;t be too much progressive enhancement going on. Instead, we&#8217;ll be putting graceful degradation at the forefront of our minds; thinking of straightforward ways in which to make the user experience equally valuable. My professional opinion is that <em>IE6 should not be disregarded</em>.</p>
<p>I do not propose that any exorbitant amount of time, effort, or money be put behind any sort of IE6 movement. I do feel that the choice to not support IE6 should be backed by useful data about your target audience, and at the very least a minimal version of your document be available for use.</p>
<h3>IE6 and me</h3>
<p>Every Web designer I&#8217;ve spoken with offers a familiar shudder at the mere mention of IE6, which usually turns into a moment of comradery between the two of us. It&#8217;s no secret that IE6 provides a sub-par browsing experience, that horse has been beaten to death too many times over (along with its entire family of IE6 horses) for my liking; and I&#8217;m not the only one. There are many designers who have taken the leap to complete lack of support. There are others who continue to describe each ache and pain provided by IE6 on a fairly consistent basis. Me, I&#8217;ve taken a more passive approach in accepting IE6 for what it is, and coming up with my own plan of action.</p>
<p>In my personal opinion, it&#8217;s going to take a worldwide colossal event to remove IE6 from our lives. Take for instance, the following graphs. These graphs represent browser usage on Monday By Noon, as well as usage statistics for a client website with a much more technologically diverse audience.</p>
<p class="img single"><a href="http://www.flickr.com/photos/jonchristopher/3190839874/" title="Browser Usage Statistics by jonchristopher, on Flickr"><img src="http://farm4.static.flickr.com/3340/3190839874_8393f39a7d_o.png" width="584" height="410" alt="Browser Usage Statistics"></a></p>
<p>Monday By Noon is aimed at a very specific audience; Web designers and developers. To anyone who reads, questioning the market share IE6 possesses would seem to be a silly question. You would think it would be a safe assumption that IE6 market share for that traffic wouldn&#8217;t amount to much at all. I was surprised to find out that recent metrics show IE6 holding strong at 5% of my viewers. I cannot think of a decent explanation for that. Believe me, I&#8217;ve tried.</p>
<p>A more realistic (and therefore more useful) graph to take a look at is that of the general traffic website. Internet Explorer six is responsible for about 22% of traffic on that website. That percentage falls in line with what I&#8217;ve found to be (mostly) true with general traffic on the Web. At the time of this writing, <strong>about 25% of traffic on the Web is carried via Internet Explorer 6</strong>. To say that&#8217;s insignificant is simply untrue.</p>
<p>I feel that I should be completely explicit in saying that if your target audience simply does not coincide with numbers like these, and you&#8217;ve made the <em>educated</em> choice not to support IE6, I can find agreement in that. The important thing is that your decision was educated, not made by following the latest fad. Internet Explorer 6, in and of itself, still holds great importance to any Web designer.</p>
<p>That said, I&#8217;d like to share the details of my IE6 strategy.</p>
<h3>Strategizing your IE6 process</h3>
<p>Like all good outcomes, my accommodating IE6 starts by coming up with a plan. When reviewing design comps, I&#8217;ll start by visualizing the overall structure of the document and how the CSS will be applied to that. Before making the first cut, however, I will go over in my head what will likely give me trouble when working with IE6. Yes, IE6 has earned those five minutes of my time, and it will pay off ten times over when it comes to testing.</p>
<p>Throughout my analysis of the comp, I&#8217;ll decide whether various design features will be &#8220;worth it&#8221; to implement. The &#8220;worth it&#8221; scale considers both the target audience as well as the design purpose. If the target audience is minimal, and the design purpose is subtle, I will plan to gracefully degrade that feature. An IE6 user isn&#8217;t going to notice that there isn&#8217;t a drop shadow there.</p>
<p>I&#8217;ve honed my process so that the only hurdles left for IE6 usually have to deal with PNGs. Past experience will tell me whether a PNG will work within a particular application. If obtaining alpha transparency simply isn&#8217;t &#8220;worth it&#8221;, I&#8217;ll go ahead and use a gif. If the transparency offered by a gif will just look sloppy, I&#8217;ll figure out a way to use a jpg.</p>
<p>I&#8217;ve found that it isn&#8217;t worth my time to rip my hair out to make sure a design element is carbon copied from the design comp, if a gracefully degraded version will work out just fine. After all, we&#8217;re catering to a small(er) group of users employing a long expired browser.</p>
<p>Of course, tackling alpha transparency is hardly a well kept secret. By far the most frustrating thing to deal with when testing in IE6 is layout.</p>
<h3>How to avoid layout headaches</h3>
<p>Mastering the <code>float</code> is one of the biggest learning curve for modern Web designers. It&#8217;s very frustrating to finally grasp what&#8217;s going on only to realize the need to spend just as much time &#8216;making it work&#8217; in IE6. I&#8217;ve seen it happen many times, and it will happen many more. Lucky for me, I&#8217;ve got two methods which have saved me many headaches when it comes to testing.</p>
<dl>
<dt>Respect the Box Model</dt>
<dd>As <a href="/2007/02/26/improving-your-process-css-techniques-part-1/">I&#8217;ve said before</a>, something I always keep in mind is to avoid box model inconsistencies. Find a way to prevent setting a margin/padding along with a width/height. Stopping yourself there will work wonders.</dd>
<dt>Margin and padding bugs with lists</dt>
<dd>Even if you stop yourself from falling into Box Model traps, IE6 has a way of completely destroying your carefully styled list items. If it doesn&#8217;t have one, give the parent list element a width, and set <code>width:100%; float:left;</code> to each child <code>&lt;li&gt;</code></dd>
<dt>Control your clears</dt>
<dd>
<p>This tip heavily depends on your clearing method of choice. I&#8217;ll explicitly state that my experience has lead me to <strong>know and trust the <code>overflow:hidden;</code> method of clearing</strong>. If you&#8217;re not familiar, adding <code>overflow:hidden;</code> to a parent element containing floating children will force that parent element to encapsulate its children, effectively clearing itself. This method has worked well for me for years.</p>
<p>Working with this method of clearing and IE6 requires you to have a small trick up your sleeve, though. Simply adding <code>overflow:hidden;</code> to your parent element won&#8217;t work in IE6 if the element hasn&#8217;t triggered <code>hasLayout</code>. Luckily this is (usually) a very easy fix. To force that parent element to clear itself in IE6, simply open <a href="/2006/05/15/i-vote-conditional-comments/">your IE6-specific stylesheet</a> and add <code>height:1%;</code>.</p>
<p>Adding <code>height:1%;</code> will trigger <code>hasLayout</code> and your element will now clear itself, allowing you to move on quickly. Of course this solution isn&#8217;t always perfect. This method requires you to plan ahead, setting up parents and children to cooperate. For me, this clearing method has allowed me to write lean, semantic markup, with a minimal IE6 contingency plan.</p>
<p>It&#8217;s very important to keep in mind, however, that this clearing method can backfire and turn on itself. As your designs become increasingly involved, you&#8217;ll develop a tendency to toss <code>height:1%;</code> on <em>everything</em>. Resist that urge. In order for this to work, you&#8217;ll need to only add <code>height:1%;</code> on each of the parent-most elements you&#8217;re trying to clear. That&#8217;s not to say you can&#8217;t use this method more than once per design (you absolutely can). You just don&#8217;t want to end up overlapping your height declarations, possibly resulting in more hidden content than you started with.</p>
</dd>
</dl>
<p>Keeping those three tips in mind should give you quite an arsenal when it comes to IE6. Keep in mind that all you need to do is gracefully degrade. The more websites you design, the better you&#8217;ll become in dealing with IE6 during testing. Before you know it, your IE6 stylesheets will only be a few lines long, and you&#8217;ll be able to focus on the best parts of Web design, not the worst.</p>
<p>Do you have any IE6 rules you live by? What tips/tricks/techniques have you come up with throughout your career?</p>
<h4>Additional Reading</h4>
<ul>
<li><a href="http://marylandmedia.com/2008/11/stop-being-a-dick-support-ie6/">Stop being a dick, support IE6</a></li>
</ul>
<br /><p><a href='http://rss.buysellads.com/click.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=289&c=414420668' target='_blank' rel='nofollow'>
				<img src='http://rss.buysellads.com/img.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=289&c=414420668' border='0' alt='' /></a></p><p><a href='http://buysellads.com/buy/sitedetails/pubkey/2ee344414ac81fbb0f9de6ab08e9831e/zone/1269068' target='_blank'>Advertise here with BSA</a></p>]]></content:encoded>
			<wfw:commentRss>http://mondaybynoon.com/20090112/fear-not-i-have-conquered-ie6-and-you-can-too/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>&#8226; Improving Your Process: Combating Burnout</title>
		<link>http://mondaybynoon.com/feeder/?FeederAction=clicked&#038;feed=Posts+%28RSS2%29&#038;seed=http%3A%2F%2Fmondaybynoon.com%2F20080505%2Fimproving-your-process-combating-burnout%2F&#038;seed_title=%26%238226%3B+Improving+Your+Process%3A+Combating+Burnout</link>
		<comments>http://mondaybynoon.com/20080505/improving-your-process-combating-burnout/#comments</comments>
		<pubDate>Mon, 05 May 2008 12:36:05 +0000</pubDate>
		<dc:creator>Jonathan Christopher</dc:creator>
				<category><![CDATA[Improving Process]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[burnout]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[productivity]]></category>

		<guid isPermaLink="false">http://mondaybynoon.com/?p=141</guid>
		<description><![CDATA[Getting burnt out at work is possibly the worst thing to happen for any creative. Here are some things I try to do as soon as I discover I may be burnt out.<br /><p><a href='http://rss.buysellads.com/click.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=134&c=620427024' target='_blank' rel='nofollow'>
				<img src='http://rss.buysellads.com/img.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=134&c=620427024' border='0' alt='' /></a></p><p><a href='http://buysellads.com/buy/sitedetails/pubkey/2ee344414ac81fbb0f9de6ab08e9831e/zone/1269068' target='_blank'>Advertise here with BSA</a></p>]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve all got the benefit of working in an extremely creative environment. Whether you&#8217;re a programmer or a designer, working on the Web puts you in quite a unique situation. While our surroundings have a tendency of being ever-changing, exciting, and stimulating, it&#8217;s entirely possible to fall victim to <a href="http://en.wikipedia.org/wiki/Burnout_(psychology)">burnout</a>; one of the worst things to effect your productivity.</p>
<p>For me personally, it&#8217;s disastrous when I&#8217;ve found myself burnt out on anything related to work. I suddenly find myself consciously avoiding the activity I enjoy most. While being burned out on a job you don&#8217;t enjoy in the first place may be quite a bit more common, with (most of us) working on the Web, we&#8217;re often doing it by choice, <em>it&#8217;s what we love to do</em>.</p>
<p><span id="more-134"></span></p>
<h2>Recognizing you&#8217;re burnt out</h2>
<p>It&#8217;s sometimes difficult to realize you&#8217;re burnt out as opposed to day-to-day stress. I&#8217;ve found a simple indicator for myself to be mostly emotional when I&#8217;m burnt out. When I&#8217;m burnt out, I invest quite a bit less of myself in my work, that is to say; <em>I care less</em>. That&#8217;s big trouble when it comes to building a product meant to help not only the client, but also potentially the customer base of that client. Working when you&#8217;re burnt out usually produces junk work; work that could have been so much more with your head in the game.</p>
<p>It&#8217;s a sinking feeling when I discover that I&#8217;m burnt out on work. On an average day, I&#8217;m usually neck deep involved with any projects in production and I&#8217;ll be able to focus all my energy on problem solving and getting things done. When I&#8217;m burnt out, my time would be better spent out of the office instead of forcing myself to make things happen.</p>
<p>If you&#8217;re able to decipher exactly what&#8217;s causing your burnout, whether it be impossible goals set upon you (or set upon yourself) or simply a lack of challenge, it&#8217;s great to nip that issue in the bud as soon as possible. Most of the time, however, burnout for me usually occurs at random, not as a direct reaction to anything in particular.</p>
<h3>Combating burnout</h3>
<p>There are a few things I&#8217;ve found that really help when I&#8217;ve discovered that I may be burnt out. Some things on this list can be generalized as basic stress relievers, but sometimes burnout can be quickly cured with a quick change in environment, you can take the list for what it&#8217;s worth.</p>
<dl>
<dt>Change projects</dt>
<dd>If your workload is anything like mine, you&#8217;ve got a list of projects to get done over the next few months. Sometimes I&#8217;ll find myself burnt out on a specific project at hand, and shelving that project for a day or two can definitely help with that. The only trouble is making sure impeding deadlines can provide this freedom. If you haven&#8217;t got too many projects coming down the pipe, take some time to work on something internal. You know there&#8217;s always things to get done for yourself.</dd>
<dt>Learn something new</dt>
<dd>If you&#8217;re burnt out specifically on the work you&#8217;re doing, I&#8217;ve found it helpful to expand your toolset. I mostly work on the front end of things, so when I get burnt out on working with markup &amp; style, I&#8217;ll take some time to work on something to do with the back end. This complete change in environment usually gets my brain working the way I want. I&#8217;ll get stressed quickly due to my lack of knowledge, and endless references to books or other material will help me get things done, but after completion I&#8217;m ready to get back to the front end.</dd>
<dt>Clean up</dt>
<dd>I&#8217;ve got <acronym title="Obsessive Compulsive Disorder">OCD</acronym> when it comes to my desk. I hate a messy environment mostly because I feel it directly interferes with my productivity. If I&#8217;m burnt out on a project, I&#8217;ll take an hour or two to clean up around the office. An organized environment helps me to concentrate on work.</dd>
<dt>Watch a movie or read a book</dt>
<dd>We all love movies/books. Take the time to read that book you&#8217;ve left on the shelf for a year. Take the time to rend that movie you meant to see last summer. It may not live up to your expectations, but the distraction can prove to be invaluable.</dd>
<dt>Play video games</dt>
<dd>Many of us tend to be video game fans, and a few hours behind the controller can help provide the distraction we really need to help us concentrate when we sit back down to work.</dd>
<dt>Grab a coffee</dt>
<dd>It doesn&#8217;t have to be a coffee, but getting outside for a short while to grab a beverage will help. If you&#8217;ve got any coworkers you actually like, take them with you. Talk about anything but work and don&#8217;t sit back down until you feel like you can continue without hating every minute of it.</dd>
</dl>
<p>Sometimes, the only thing to help a Web designer or Web developer with burnout is to <strong>unplug</strong>, there are a few things I do when that&#8217;s the case:</p>
<dl>
<dt>Take a drive</dt>
<dd>While I haven&#8217;t spoken much about my personal pastimes, I&#8217;m what you could call a car enthusiast. I don&#8217;t have a race car in the garage I trailer to events on weekends or anything, but reading about, watching, and driving cars is something I&#8217;ve had an interest in for quite a while. Sometimes taking some time <em>for yourself</em> via a short (or long) drive can work wonders. Being in the car allows you to clear your thoughts to the road and your favorite music.</dd>
<dt>Take an afternoon off</dt>
<dd>Sometimes it won&#8217;t be until midday when I realize that I&#8217;m truly burnt out on work in general and the longer I remain at my desk, the worse it gets. I&#8217;ve found that recognizing unwarranted stress and taking an afternoon off will sometimes avoid a longer stint of burnout. The thing to do with your afternoon off is not something passive like going home and watching TV. Instead, go and <em>do something</em>. My token afternoon activity is detailing my car. It gets me away from computers in general and allows me to do some physical work. A few hours detailing your car can really clear your head and it&#8217;s often the first thing I&#8217;ll try to get done with an afternoon away from work, weather permitting.</dd>
<dt>Take a vacation</dt>
<dd>There will come a time where a few hours off just won&#8217;t cut it. If you find yourself in that boat, do yourself a favor and take a vacation. You don&#8217;t have to go anywhere, but don&#8217;t go to work. Spend some quality time with those close to you doing the other things you enjoy. Avoid work and computers in general for as long as possible and you&#8217;ll come back refreshed and ready to tackle what needs to be done.</dd>
</dl>
<h3>What do you do?</h3>
<p>I know my list is quite generic in the grand scheme of things, do you have anything particularly unique that you do when you&#8217;re burnt out at work?</p>
<br /><p><a href='http://rss.buysellads.com/click.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=134&c=1442074895' target='_blank' rel='nofollow'>
				<img src='http://rss.buysellads.com/img.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=134&c=1442074895' border='0' alt='' /></a></p><p><a href='http://buysellads.com/buy/sitedetails/pubkey/2ee344414ac81fbb0f9de6ab08e9831e/zone/1269068' target='_blank'>Advertise here with BSA</a></p>]]></content:encoded>
			<wfw:commentRss>http://mondaybynoon.com/20080505/improving-your-process-combating-burnout/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>&#8226; Raising the Bar with Adaptive Templates</title>
		<link>http://mondaybynoon.com/feeder/?FeederAction=clicked&#038;feed=Posts+%28RSS2%29&#038;seed=http%3A%2F%2Fmondaybynoon.com%2F20080428%2Fraising-the-bar-with-adaptive-templates%2F&#038;seed_title=%26%238226%3B+Raising+the+Bar+with+Adaptive+Templates</link>
		<comments>http://mondaybynoon.com/20080428/raising-the-bar-with-adaptive-templates/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 14:03:30 +0000</pubDate>
		<dc:creator>Jonathan Christopher</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Favorites]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Workbench]]></category>
		<category><![CDATA[alpha]]></category>
		<category><![CDATA[constants]]></category>
		<category><![CDATA[Howto]]></category>
		<category><![CDATA[PNG]]></category>
		<category><![CDATA[transparency]]></category>

		<guid isPermaLink="false">http://mondaybynoon.com/?p=140</guid>
		<description><![CDATA[A recent project got me thinking about combining Super-Easy Blendy Backgrounds with CSS constants.<br /><p><a href='http://rss.buysellads.com/click.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=133&c=1740320535' target='_blank' rel='nofollow'>
				<img src='http://rss.buysellads.com/img.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=133&c=1740320535' border='0' alt='' /></a></p><p><a href='http://buysellads.com/buy/sitedetails/pubkey/2ee344414ac81fbb0f9de6ab08e9831e/zone/1269068' target='_blank'>Advertise here with BSA</a></p>]]></description>
			<content:encoded><![CDATA[<p>I recently completed work on a complete design and development overhaul. To generalize, the project involved a redesign of an online storefront catering to a specific professional. The company I work for was hired to redesign the storefront template as well as overhaul the front end. All the back end development would be taken on in house by the client and we&#8217;d team up to really improve the overall state of things.</p>
<p>I was excited about this project from the start, as was my team. We immediately started throwing ideas back and forth on what we could do to improve the customer experience for this particular storefront. A number of ideas were laid out on the table, some shelved for later phases of the project, and others tightly integrated into the overall design. I&#8217;d like to explain a bit about one feature in particular that ended up garnering quite a bit of the spotlight when the redesign was pushed live.</p>
<p><span id="more-133"></span></p>
<h2>Color adaptation</h2>
<p>I&#8217;d like to say that straight from the beginning the seed for this idea had been planted long ago with the publication of an article to A List Apart titled <a href="http://www.alistapart.com/articles/supereasyblendys">Super-Easy Blendy Backgrounds</a>. Beginning with that article, my eyes had been opened to a new way of thinking when it came to Web design. While there were significant issues with PNGs in IE6, it was obvious to me that alpha transparency will indeed change things on the Web. That article, tied with a great piece written by Jeff Croft, <a href="http://www.digital-web.com/articles/web_standards_creativity_png/">Creative Use of PNG Transparency in Web Design</a>, really got me hooked to the idea of using these unique advantages in upcoming projects.</p>
<p>The advantages of alpha transparency in the PNG image format are great in and of themselves, but for this project I thought we could take things one step further with CSS constants. I recalled reading a number of pieces on this specific subject and taking a liking to the idea. Quite a few designers feel that constants should be a built in feature of CSS, and I agree; it would be useful.</p>
<p>I had never implemented any CSS constant simulations prior to this project, but took comfort in the <a href="http://www.icant.co.uk/articles/cssconstants/">example with extensive documentation</a> by <a href="http://icant.co.uk">Christian Heilmann</a>. His sample was <em>exactly</em> what I was looking for.</p>
<p>I thought it would be completely awesome to tie these two features together; a color-changing template which uses a single color to &#8216;power&#8217; the various shades and hues by taking advantage of alpha transparency by way of PNG.</p>
<p>When it came to the project I&#8217;d be working on, my company was merely in the discussion and planning phase with the client, I wasn&#8217;t 100% sure I&#8217;d be able to implement a feature such as this. I thought a bit about it and we decided it best to simply offer our proposal without specific mention of this feature. After successful test implementations, we&#8217;d mention to the client that we will be providing this additional functionality should there be interest.</p>
<p>I teamed with a single designer through the life of this project and he made the conscious effort to use only white and black in the design, but in transparent levels more often than not. He was able to use a solid color bottom-most layer in Photoshop to mimic how things would work in a Web browser. Our tests were quite successful and the idea was presented to the client. They fell in love with it and we began work. As you can imagine, cross-browser support was at times an issue, but I&#8217;ve got to say that overall the feature implementation was a very successful. Our client was able to offer an extremely versatile design to their clients, allowing them to customize the colors used throughout the redesign.</p>
<h2>Extreme darks or lights</h2>
<p>It became apparent almost immediately that we would need three separate variations of the same theme to account for variable choices on the part of our client&#8217;s clients. If a solid black background color were chosen, we&#8217;d need to make sure that all the design elements are equally visible throughout the design. The same applies for a solid white background color. At the end of the day, I ended up cutting three &#8216;sets&#8217; of images: one for very dark background colors, one for very light background colors, and a third for mid-range colors.</p>
<p>The inclusion of this hurdle alone required some modifications to <a href="http://www.icant.co.uk/articles/cssconstants/">Christian Heilmann&#8217;s CSS constant simulation example</a>; I had to account for the three ranges of color. The W3C published an <a href="http://www.w3.org/TR/AERT#color-contrast">algorithm to measure color visibility</a> which I included in the CSS parser originally written by Christian Heilmann. I compared the color chosen as the background color to both black and white and measured the difference between. With some arbitrary testing, I included a tolerance variable which the client could adjust down the line if they&#8217;d like. The result came to be:</p>
<pre class="sh_php"><code>&lt;?php
/*
	cssconst.php
	written by Chris Heilmann (http://icant.co.uk)
	allows constants to be used in the css
	file sent in the get variable c
	constant format:
	$foo='bar';

	Modification by Jonathan Christopher () to
	include a function to measure the color contrast of a variable set
	in the CSS. That value then sets another variable for use with image
	filenames.
*/

$background 	= '#8094b2';
$mainText 	= '#fff';
$altText 	= '#000';
$tolerance 	= 100;

$white = (hexrgb('ffffff'));
$black = (hexrgb('000000'));

function hexrgb($hexstr) {
    $int = hexdec($hexstr);
    return array("red" =&gt; 0xFF &amp; ($int &gt;&gt; 0x10), "green" =&gt; 0xFF &amp; ($int &gt;&gt; 0x8), "blue" =&gt; 0xFF &amp; $int);
}

header('content-type:text/css');
//header("Expires: ".gmdate("D, d M Y H:i:s", (time()+900)) . " GMT");
$c=$_GET['c'];
$css=load($c);
if($css=='') { die('File not Found, sorry!'); }
preg_match_all("/\\$(\w+).*=.*\'(.*)\'/",$css,$constants);

// ---------------------------------
// determine color difference
// ---------------------------------

$targetHex = $background;

if(strlen($targetHex)==4) {
	$hexArray = str_split($targetHex);
	$targetHex  = $hexArray[1];
	$targetHex .= $hexArray[1];
	$targetHex .= $hexArray[2];
	$targetHex .= $hexArray[2];
	$targetHex .= $hexArray[3];
	$targetHex .= $hexArray[3];
} elseif(strlen($targetHex)!=7) {
	$targetHex = '#8094b2';						// worse case: use default
}

$color = (hexrgb($targetHex));

// Determine how different the color is from white
$whiteDiff  = max($color["red"],$white["red"])-min($color["red"],$white["red"]);
$whiteDiff += max($color["green"],$white["green"])-min($color["green"],$white["green"]);
$whiteDiff += max($color["blue"],$white["blue"])-min($color["blue"],$white["blue"]);

// Determine how different the color is from black
$blackDiff  = max($color["red"],$black["red"])-min($color["red"],$black["red"]);
$blackDiff += max($color["green"],$black["green"])-min($color["green"],$black["green"]);
$blackDiff += max($color["blue"],$black["blue"])-min($color["blue"],$black["blue"]);

if(!isset($image_suffix)){
if($whiteDiff&lt;$tolerance) {
	$image_suffix 	= '-light';
} elseif($blackDiff&lt;$tolerance) {
	$image_suffix 	= '-dark';
	} else {
	$image_suffix 	= '';
}}

// ---------------------------------
// apply background
// ---------------------------------
$css=preg_replace('/\\$background/',$background,$css);

// ---------------------------------
// apply suffix
// ---------------------------------
$css=preg_replace('/\\$image_suffix/',$image_suffix,$css);

// ---------------------------------
// apply mainText
// ---------------------------------
$css=preg_replace('/\\$mainText/',$mainText,$css);

// ---------------------------------
// apply altText
// ---------------------------------
$css=preg_replace('/\\$altText/',$altText,$css);

// ---------------------------------
// finish it up and echo
// ---------------------------------
$css=preg_replace("/\\#.*=.*?;\s+/s",'',$css);
echo $css;

/*
	Function load($file)
	reads the content of the file that you send and returns it
*/
function load($filelocation)
{
	if (file_exists($filelocation))
	{
		$newfile = fopen($filelocation,"r");
		$file_content = fread($newfile, filesize($filelocation));
		fclose($newfile);
		return $file_content;
	}
}
?&gt;</code></pre>
<p>If you&#8217;ll note, there are four variables to consider when using the above script. These variables were stored in a database and saved as a session variable server side. The <code>$background</code> variable controlled the overall color scheme used in the design by using it as the background color for the <code>body</code> as well as a few other strategic places where it was needed. <code>$mainText</code> was the primary text color used in the design, <code>$altText</code> was used in those certain circumstances where another color spiced things up a bit, and the <code>$tolerance</code> variable controlled how close a color had to be to either white or black before it was decided which background images were to be used to ensure proper contrast.</p>
<p>To implement the variables in the CSS, you simply add them as PHP variables:</p>
<pre class="sh_css"><code>body { background-color:$background; color:$mainText; }</code></pre>
<p>The way I was able to distinguish which &#8216;set&#8217; of images to use was partially twofold. My first step was to name each image accordingly. Much of the time, the same image itself could be, but there were other times were a black gradient on an image needed to me changed to a white gradient when a very dark background color was chosen. To get around the issue, I added a suffix to the filename of applicable images. For example, bg-body.png would have two additional images; bg-body-light.png and bg-body-dark.png. I was able to take advantage of this naming structure in both the CSS as well as the parser by referencing the images as something like:</p>
<pre class="sh_css"><code>div#example { background:$background url(../images/bg-body$image_suffix.png) no-repeat; }
</pre>
<p></code></p>
<p>All of my bases were covered. If the background was too dark, one suffix would be added in the parser, another suffix added if the color were too light, and the suffix would simply be empty if the color was middle of the line.</p>
<h3>I hope it's useful to someone else</h3>
<p>The inclusion of this feature turned out to be extremely useful in this case, and I hope others are able to take advantage of the idea. I'm sure there are endless ways to improve this specific implementation, so certainly feel free to offer both your thoughts and critiques.</p>
<br /><p><a href='http://rss.buysellads.com/click.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=133&c=1042490903' target='_blank' rel='nofollow'>
				<img src='http://rss.buysellads.com/img.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=133&c=1042490903' border='0' alt='' /></a></p><p><a href='http://buysellads.com/buy/sitedetails/pubkey/2ee344414ac81fbb0f9de6ab08e9831e/zone/1269068' target='_blank'>Advertise here with BSA</a></p>]]></content:encoded>
			<wfw:commentRss>http://mondaybynoon.com/20080428/raising-the-bar-with-adaptive-templates/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>&#8226; Improving Your Process: Client Communication</title>
		<link>http://mondaybynoon.com/feeder/?FeederAction=clicked&#038;feed=Posts+%28RSS2%29&#038;seed=http%3A%2F%2Fmondaybynoon.com%2F20080310%2Fimproving-your-process-client-communication%2F&#038;seed_title=%26%238226%3B+Improving+Your+Process%3A+Client+Communication</link>
		<comments>http://mondaybynoon.com/20080310/improving-your-process-client-communication/#comments</comments>
		<pubDate>Mon, 10 Mar 2008 13:39:12 +0000</pubDate>
		<dc:creator>Jonathan Christopher</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Improving Process]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Basecamp]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[ProjectPier]]></category>

		<guid isPermaLink="false">http://mondaybynoon.com/2008/03/10/improving-your-process-client-communication/</guid>
		<description><![CDATA[Although I&#8217;ve tried to optimize communication patterns in as many ways as possible, I&#8217;ve found that (like Web design and development) experience is the best thing you can do. Use your experience to alter the way you do things to improve your communication process both internally as well as with clients. Effective communication leaves much more time to do what we love to do, create.<br /><p><a href='http://rss.buysellads.com/click.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=125&c=558412420' target='_blank' rel='nofollow'>
				<img src='http://rss.buysellads.com/img.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=125&c=558412420' border='0' alt='' /></a></p><p><a href='http://buysellads.com/buy/sitedetails/pubkey/2ee344414ac81fbb0f9de6ab08e9831e/zone/1269068' target='_blank'>Advertise here with BSA</a></p>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll be the first to admit that I view my career in Web development as something undergoing constant evolutionary change. I find myself learning new things nearly every day, and that fact alone is one of the major reasons I love what I do. While I can&#8217;t say that I experience enlightenment with each new thing I learn, I can say that nearly every day brings at least a small alteration in my process. The medium in which we work calls for this adaptation, and refusing to update your process to accommodate the (ridiculously) fast pace of change will do nothing to help you.</p>
<p>A very common subject I find myself focusing on is that of communication skills &amp; methods most appropriate given various situations. When I first began professional work, I had absolutely no idea what it was like to work with a (paying) client, trying to convert their ideas into a reality happily paid for. At first it was a struggle, I asked the wrong questions, made the wrong assumptions, and often found myself backtracking on work which was already nearly complete. Over time, a number of things have helped me to better communicate with clients not only for my benefit, but for their as well. It&#8217;s much nicer to work with happy clients as opposed to clients who feel they&#8217;re unable to properly communicate their reactions or ideas.</p>
<p><span id="more-125"></span></p>
<h2>Begin internally; have a system</h2>
<p>If you work at an agency or on a team, it&#8217;s really important to have an internal system of communication. A major obstacle I found myself dealing with was having a lack of resources when it came to me working on a particular project. When working on a team, it&#8217;s <em>extremely difficult</em> to keep mental records of every piece of communication, every note, every Word document that was sent to or received from a client. It&#8217;s not anyone&#8217;s fault, but sometimes various pieces of correspondence may fall through the cracks only to be found after a duplicate request is made to the client, putting you in an awkward position to answer the question &#8220;Why do you need [that] again?&#8221;. Tie in multiple projects and you can have quite a big stress on yourself in keeping all project material in place.</p>
<p>There&#8217;s a reason <a href="http://basecamphq.com/">Basecamp</a> is so popular. Basecamp removes any necessity for a company member or client to ensure anyone and everyone is on the same page with a project. My team has latched on to the ideology of Basecamp through the open source alternative, activeCollab (now forked to <a href="http://www.projectpier.org/">ProjectPier</a>), and we&#8217;re not looking back. All client communication now takes place through various message threads which the entire company (as well as client participants) can read at any time. Using a collaboration system such as Basecamp or ProjectPier puts responsibility on each person for their own involvement and education for each project.</p>
<h2>Being Explicit</h2>
<p>With an effective communication system in place, it&#8217;s important to ensure your ideas and thoughts are properly communicated both to colleagues as well as clients. Being explicit in your choice of language can greatly affect communication.</p>
<p>A major priority should be to have your team members be on the same page. If there are details which need to be worked out, take care of that behind the scenes, before presenting your opinion/response/reaction to your client. That way, your team can be on the same page to both explain and support your stance on any particular matter.</p>
<p>Additionally, I&#8217;ve found it to be really helpful to include full documentation of your thought process behind any design decisions you&#8217;ve made. No matter what, clients are going to have preconceived notions about a project before it begins. They&#8217;ve got bias toward various elements, colors, or fonts that are going to shine the instant they see the first comp you present. It&#8217;s disheartening to hear that a client simply doesn&#8217;t like something you&#8217;ve produced, so there are a couple things you can do to help avoid complete rejection of a design you present.</p>
<p>It&#8217;s become practice in my office to include a (fairly detailed) write-up in support of a design presented to a client. It&#8217;s nothing extraordinary, just a document outlining the thought process of the designer which explains why various design elements appear as they do. Having this document to back up a comp has proven to be quite helpful in deterring a completely negative rejection. While not infallible, this document can provide insight on ideas not completely obvious to a client upon their initial inspection.</p>
<h2>Fighting the good fight</h2>
<p>If you&#8217;ve spent an hour doing client work, you know it&#8217;s inevitable to receive at least some (possibly ridiculous) suggestions from clients. Suggestions can range from listing a specific font to use to all out art direction. Nothing against clients, but most often these suggestions reflect nothing but a personal bias on their end and do little to improve a design. I&#8217;ve noticed that the handling &amp; response to these suggestions can have great affect on the end product.</p>
<p>Many times a designer will read a criticism of their work and become defensive, wondering why the client wants to make a change that&#8217;s an obvious detriment. It&#8217;s often questioned whether the client truly wants an impressive end product. Of course they do, but of course there will be creative differences as to the degree of that impressiveness. It&#8217;s <em>very rare</em> that clients love everything presented to them and that should be kept in mind throughout the design process.</p>
<p>By far, I&#8217;ve found the most effective response to outrageous requests to be a simple inquiry of what lead to the request. More often than not, any inspiration for the request will be undefined, leading the client to recognize their poor decision. Initiating the dialogue can be simply saying something to the order of &#8220;That&#8217;s an interesting idea, what would be the reason for this particular change?&#8221; Usually you&#8217;ll end up hearing an unsupported response identifying a particular bias to which you can respond with (sound) design reasoning.</p>
<p>On the other hand, sometimes a response can be something you didn&#8217;t expect, something that <em>does make sense to work with</em>. While it may not be as aesthetically pleasing, you&#8217;ll be able to take their suggestion and work with them to find a solution acceptable to both parties.</p>
<p>The thing to keep at the forefront is that you and your client have a common goal; you&#8217;re not enemies. While creative differences may apply some stress to the project, it&#8217;s only because both parties care about what results. Try to keep that in mind as you volley communication back and forth about a comp which may have not had the amazing impact you hoped for.</p>
<h3>Communication can always be improved</h3>
<p>Although I&#8217;ve tried to optimize communication patterns in as many ways as possible, I&#8217;ve found that (like Web design &amp; development) experience is the best thing you can do. Use your experience to alter the way you do things to improve your communication process both internally as well as with clients. Effective communication leaves much more time to do what we love to do, create.</p>
<br /><p><a href='http://rss.buysellads.com/click.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=125&c=49266514' target='_blank' rel='nofollow'>
				<img src='http://rss.buysellads.com/img.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=125&c=49266514' border='0' alt='' /></a></p><p><a href='http://buysellads.com/buy/sitedetails/pubkey/2ee344414ac81fbb0f9de6ab08e9831e/zone/1269068' target='_blank'>Advertise here with BSA</a></p>]]></content:encoded>
			<wfw:commentRss>http://mondaybynoon.com/20080310/improving-your-process-client-communication/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>&#8226; Working with Background PNGs and Internet Explorer 6</title>
		<link>http://mondaybynoon.com/feeder/?FeederAction=clicked&#038;feed=Posts+%28RSS2%29&#038;seed=http%3A%2F%2Fmondaybynoon.com%2F20080211%2Fworking-with-background-pngs-and-internet-explorer-6%2F&#038;seed_title=%26%238226%3B+Working+with+Background+PNGs+and+Internet+Explorer+6</link>
		<comments>http://mondaybynoon.com/20080211/working-with-background-pngs-and-internet-explorer-6/#comments</comments>
		<pubDate>Mon, 11 Feb 2008 14:20:12 +0000</pubDate>
		<dc:creator>Jonathan Christopher</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[background]]></category>
		<category><![CDATA[GIF]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[PNG]]></category>

		<guid isPermaLink="false">http://mondaybynoon.com/2008/02/11/working-with-pngs-and-internet-explorer-6/</guid>
		<description><![CDATA[Using PNG images as backgrounds can be very helpful and useful, but there are some things to keep in mind when working with Internet Explorer 6.<br /><p><a href='http://rss.buysellads.com/click.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=121&c=2035435071' target='_blank' rel='nofollow'>
				<img src='http://rss.buysellads.com/img.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=121&c=2035435071' border='0' alt='' /></a></p><p><a href='http://buysellads.com/buy/sitedetails/pubkey/2ee344414ac81fbb0f9de6ab08e9831e/zone/1269068' target='_blank'>Advertise here with BSA</a></p>]]></description>
			<content:encoded><![CDATA[<p>PNGs are a fantastic way to extend certain limitations of other image formats. Alpha transparency becomes a major asset in many circumstances, and will continue to be further adapted as time goes on. There was an article published to <a href="http://www.alistapart.com">A List Apart</a> quite some time ago which outlined a possibility of using PNG images as backgrounds to help alleviate some tediousness while creating background images.</p>
<p>This article, like many from A List Apart, really stuck in my mind as something quite innovative and useful; I just needed the right time to apply the technique. <a href="http://www.alistapart.com/articles/supereasyblendys">Super-Easy Blendy Backgrounds</a> was published November 13, 2006 and I hadn&#8217;t come across a project to <em>really</em> make use of the technique until a few months ago. As the project was just coming together, Super-Easy Blendy Backgrounds instantly came to mind as a major time-saver for this particular client project.</p>
<p>Instantly, I was terrified of making things work in <abbr title="Internet Explorer 6">IE6</abbr>. While you can use the <a href="http://msdn2.microsoft.com/en-us/library/ms532969(VS.85).aspx">AlphaImageLoader Filter</a>, I know there would be some major issues as the project carried into development. There were.</p>
<h2>Things to keep in mind with PNG background images and IE6</h2>
<p>While the article published to A List Apart was extremely comprehensive and detailed, I went about things a bit differently. <a href="http://www.alistapart.com/articles/supereasyblendys">Super-Easy Blendy Backgrounds</a> used inline images to achieve the desired effect, and I wanted to use background images. The effect was masterful everywhere except IE6, which is where the work began.</p>
<p>There were two major problems I encountered very quickly when working with PNG background images and IE6. The first problem I discovered was <strong>huge</strong>. When using AlphaImageLoader, links will not behave as expected in IE6. You&#8217;re stuck with a link that does absolutely nothing. I ran across multiple articles regarding this issue, many with varying circumstances and solutions for the bug. <a href="http://www.hrunting.org/csstests/iealpha.html">The solution that worked</a> indicated the bug can be alleviated by ensuring the element using AlphaImageLoader has <em>no <code>position</code> set</em> and the anchor within said element <em>does have a <code>position</code></em>. There were other solutions offered elsewhere, some indicating that the bug is triggered by the actual dimensions of the image you&#8217;re using as a background, but that didn&#8217;t help me as the images I were using were quite unique. It&#8217;s important to be aware that this <strong>may not always solve your problem</strong>. There may be times where you&#8217;ll simply need to find an alternative solution to this major problem with IE6.</p>
<p>The second major problem I came across was trying to tile background images for elements. Using AlphaImageLoader this simply isn&#8217;t possible. You&#8217;re forced to either crop or scale the background image. Using <code>background-position</code> or <code>background-repeat</code> is not an option. This forced me to use larger images in certain places, as well as use GIFs in other areas. You are able to set the <code>sizingMethod</code> to <code>crop</code>, but that may not be entirely useful.</p>
<h3>How did things work out?</h3>
<p>I&#8217;m quite pleased with how this project is turning out. Using PNGs effectively throughout the design will help this particular client adapt a single design by creating many color combinations by changing a couple variables on their back end. While the IE6 version of the design isn&#8217;t nearly as attractive as when it&#8217;s rendered using a fully capable browser, it degrades quite nicely and many of the features remain in tact.</p>
<p>The important thing to keep in mind when using techniques not fully supported cross-browser is to thoroughly test; <strong>especially for client work</strong>. How have your experiences been with using PNG?</p>
<br /><p><a href='http://rss.buysellads.com/click.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=121&c=1221818238' target='_blank' rel='nofollow'>
				<img src='http://rss.buysellads.com/img.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=121&c=1221818238' border='0' alt='' /></a></p><p><a href='http://buysellads.com/buy/sitedetails/pubkey/2ee344414ac81fbb0f9de6ab08e9831e/zone/1269068' target='_blank'>Advertise here with BSA</a></p>]]></content:encoded>
			<wfw:commentRss>http://mondaybynoon.com/20080211/working-with-background-pngs-and-internet-explorer-6/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>&#8226; Improving Your Process: CSS Techniques Part 2</title>
		<link>http://mondaybynoon.com/feeder/?FeederAction=clicked&#038;feed=Posts+%28RSS2%29&#038;seed=http%3A%2F%2Fmondaybynoon.com%2F20080114%2Fimproving-your-process-css-techniques-part-2%2F&#038;seed_title=%26%238226%3B+Improving+Your+Process%3A+CSS+Techniques+Part+2</link>
		<comments>http://mondaybynoon.com/20080114/improving-your-process-css-techniques-part-2/#comments</comments>
		<pubDate>Mon, 14 Jan 2008 15:04:14 +0000</pubDate>
		<dc:creator>Jonathan Christopher</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Improving Process]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Workbench]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[organization]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[specificity]]></category>

		<guid isPermaLink="false">http://mondaybynoon.com/2008/01/14/improving-your-process-css-techniques-part-2/</guid>
		<description><![CDATA[Nearly a year ago, I jotted down a few CSS techniques that I use day to day. Some tips included controlling browser defaults, avoiding box model headaches, stylesheet organization, and using a color glossary. I find myself using many of these techniques a year later, but had some updates that might make the lives of some a bit easier.<br /><p><a href='http://rss.buysellads.com/click.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=117&c=1450510620' target='_blank' rel='nofollow'>
				<img src='http://rss.buysellads.com/img.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=117&c=1450510620' border='0' alt='' /></a></p><p><a href='http://buysellads.com/buy/sitedetails/pubkey/2ee344414ac81fbb0f9de6ab08e9831e/zone/1269068' target='_blank'>Advertise here with BSA</a></p>]]></description>
			<content:encoded><![CDATA[<p>Nearly a year ago, I jotted down a few <a href="/2007/02/26/improving-your-process-css-techniques-part-1/">CSS techniques that I use</a> day to day. Some tips included controlling browser defaults, avoiding box model headaches, stylesheet organization, and using a color glossary. I find myself using many of these techniques a year later, but had some updates that might make the lives of some a bit easier.</p>
<h2>Better control browser defaults</h2>
<p>In <a href="/2007/02/26/improving-your-process-css-techniques-part-1/">part 1</a>, I mentioned that controlling browser default styles can really help cut down your styling time. Using the <a href="http://meyerweb.com/eric/articles/webrev/200006a.html">universal selector</a>, you can clear any default <code>margin</code>, <code>padding</code>, or <code>border</code> with a single line of <abbr title="Cascading Style Sheets">CSS</abbr>. While this tends to help out quite a bit with browser defaults, there is quite a bit more you can do.</p>
<p>As I&#8217;ve written before, I keep a copy of Eric Meyer&#8217;s <a href="http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/">reset CSS</a> lying around to take care of browser defaults as opposed to using the universal selector. His optimized stylesheet comprehensively controls much more than something like:</p>
<pre class="sh_css"><code>* { margin:0; padding:0; border:0; }</code></pre>
<p>I&#8217;ve found Eric Meyer&#8217;s solution to be much more helpful and stable in practice, and I&#8217;d suggest that you give it a try to see if it helps you out during your styling process.</p>
<h2>Give yourself an applicable head start</h2>
<p>A reset stylesheet can be an absolute time-saver. When doing client work, saving yourself some time here and there is becoming more of a necessity. In my personal opinion, when comparing design and development time on a project, development time should be kept to an absolute minimum while design time is maximized.</p>
<p>That doesn&#8217;t go to say that I feel development comes secondary to design; on the contrary. The difference between the two resides in the nature of each. Development is something that can be sped with each project. As nuances and speed bumps are overcome, a developer can significantly decrease the time it takes to produce high quality markup and style for each document they&#8217;re working on. Efficiency can be increased quite a bit simply by building more websites.</p>
<p>Design is a bit different in the sense that each project brings in a new set of rules. Each project is solving a different problem, circumventing new limitations, and providing quality solutions. Development usually presents itself with a constant set of conditions, which can be learned, expected, and avoided from the start if necessary.</p>
<p>As a result of this difference between design and development, there are ways to decrease development time, allowing for an increase in design time to remain in a limited budget. One way to help yourself to decrease development time is to use a CSS framework.</p>
<p>CSS frameworks were an extremely hot topic late last year, and I think all that needed to be said in their regard has been discussed (at least twice). I think the major difference in opinion rooted from the misunderstanding &amp; assumption (mine included) that CSS framework proponents were pushing a single CSS framework upon others; that wasn&#8217;t the case.</p>
<p>I use Eric Meyer&#8217;s reset stylesheet on my projects. I use a CSS framework. Although it&#8217;s very limited in size, it fits the qualifications of a framework. As I mentioned earlier, reset styles help me to be more efficient at work, and finding a solid starting point for yourself with CSS can help you as well.</p>
<p><span id="more-117"></span></p>
<h2>Control your clearing</h2>
<p>In my experience, the most troubling aspect of CSS to grasp for newcomers is floating elements. When trying to help those new to CSS, trying to explain when to expect certain behavior can be a very frustrating experience for those new to CSS. Keeping that in mind, controlling your floating elements can really help alleviate a headache or two down the line.</p>
<p>Some time ago, Robert Nyman wrote a post <a href="http://www.robertnyman.com/2007/04/12/how-to-clear-css-floats-without-extra-markup-different-techniques-explained/">explaining a few ways to clear CSS floats without extra markup</a>. The post is great as an overview of some different techniques for clearing your floats. There are some great comments to read as a follow-up as well, and the piece as a whole can really help keep your floating elements under control.</p>
<p>Adding to the recurring theme, building more websites will help the most to learn when to expect a need to clear a float.</p>
<h2>Separate page-specific styles</h2>
<p>This tip may be less applicable, as it really only comes into play with larger websites with a bigger design budget. Something I&#8217;ve found myself doing quite often is physically separating page-specific CSS from the bulk. This involves incorporating both a <code>pagevar</code> as well as a <code>pagegroup</code> for each page of a website, which applies an <code>id</code> and <code>class</code> to the <code>body</code> of every document.</p>
<p>This gives me plenty of control should I want to target a group of pages (or specific page) with CSS. What&#8217;s important is to keep things organized; separating page-specific CSS can help significantly with maintenance, especially if your CSS is well commented.</p>
<h2>Limit your refresh frequency</h2>
<p>When I was first learning CSS, I quickly fell into the habit of refreshing the browser after nearly every selector was given a property and value. Soon enough, I would write a line of CSS, knowing exactly what it was going to look like, yet I&#8217;d refresh the browser anyway. Just to make sure I suppose.</p>
<p>Taking a step back to look at things, consistently switching apps and refreshing the browser to see how things are going can slow you down significantly. It&#8217;s important to learn to trust yourself as you become more proficient with CSS. Trust that what you&#8217;re styling is going to behave as you expect, and limit your refresh frequency as much as you can.</p>
<p>The trouble comes with writing too much and not knowing where to start compensating. This comes with the territory, and will remedy itself as you build more websites.</p>
<h3>Refine your selectors</h3>
<p>Finding the happy medium with <a href="http://www.htmldog.com/guides/cssadvanced/specificity/">specificity</a> can be of great benefit. While you want to know which elements you&#8217;re targeting with CSS, it can really help to take advantage of specificity by keeping your styles to a minimum.</p>
<p>Difficulty may be found earlier in your development career in that you&#8217;re not sure why a certain element is improperly rendering. You&#8217;re sure of your CSS, sure things are as they should be, yet the browser renders something glaringly different. Chances are you haven&#8217;t found a quirky rendering bug (although I&#8217;m sure we can all agree we wish we had), but something is going on with your specificity. Styles are inherited when applicable, and this can be taken advantage of to a very high degree. The key is to specify to the proper degree, ensuring your control over the document presentation.</p>
<h3>Closing up Part 2</h3>
<p>I hope these tips, while a bit simple, helped out. CSS is a fantastic skill to have, but it is a skill which can be constantly refined over time. Keep in mind that the faster you are with development, the more time can be spent on problem solving by way of design. This allows for a wider variety of circumstances under which to fall when developing, as opposed to finding repetition in your work.</p>
<br /><p><a href='http://rss.buysellads.com/click.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=117&c=1997921232' target='_blank' rel='nofollow'>
				<img src='http://rss.buysellads.com/img.php?z=1269068&k=2ee344414ac81fbb0f9de6ab08e9831e&a=117&c=1997921232' border='0' alt='' /></a></p><p><a href='http://buysellads.com/buy/sitedetails/pubkey/2ee344414ac81fbb0f9de6ab08e9831e/zone/1269068' target='_blank'>Advertise here with BSA</a></p>]]></content:encoded>
			<wfw:commentRss>http://mondaybynoon.com/20080114/improving-your-process-css-techniques-part-2/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Database Caching 1/120 queries in 0.477 seconds using apc
Object Caching 1806/1999 objects using apc

Served from: www.mondaybynoon.com @ 2012-02-10 19:00:11 -->
