<?xml version="1.0" encoding="utf-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Best Bets for Browser Bug Bashing</title>
	<atom:link href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/</link>
	<description>the personal and professional weblog of molly e. holzschlag</description>
	<lastBuildDate>Wed, 13 Jan 2010 02:11:35 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0-alpha</generator>
	<item>
		<title>By: tv izle</title>
		<link>http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-2119950</link>
		<dc:creator>tv izle</dc:creator>
		<pubDate>Tue, 28 Oct 2008 19:35:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/#comment-2119950</guid>
		<description>thanks</description>
		<content:encoded><![CDATA[<p>thanks</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chat</title>
		<link>http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-2089699</link>
		<dc:creator>Chat</dc:creator>
		<pubDate>Fri, 17 Oct 2008 20:08:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/#comment-2089699</guid>
		<description>very nice. thanks molly.</description>
		<content:encoded><![CDATA[<p>very nice. thanks molly.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Thomas Suters</title>
		<link>http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-989691</link>
		<dc:creator>Thomas Suters</dc:creator>
		<pubDate>Fri, 01 Feb 2008 04:51:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/#comment-989691</guid>
		<description>You may ignore my previous post, more or less as another website that doesn&#039;t load the CSS files the first time is using the more standard form of (html) [except the </description>
		<content:encoded><![CDATA[<p>You may ignore my previous post, more or less as another website that doesn&#8217;t load the CSS files the first time is using the more standard form of (html) [except the</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Thomas Suters</title>
		<link>http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-986735</link>
		<dc:creator>Thomas Suters</dc:creator>
		<pubDate>Thu, 31 Jan 2008 05:49:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/#comment-986735</guid>
		<description>The (html) were deleted in my last post.  It was the (html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; lang=&quot;en&quot;) that caused the problem.  Just using (html) solved it.  Yes that does seem ODD?</description>
		<content:encoded><![CDATA[<p>The (html) were deleted in my last post.  It was the (html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221; lang=&#8221;en&#8221;) that caused the problem.  Just using (html) solved it.  Yes that does seem ODD?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Thomas Suters</title>
		<link>http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-986722</link>
		<dc:creator>Thomas Suters</dc:creator>
		<pubDate>Thu, 31 Jan 2008 05:44:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/#comment-986722</guid>
		<description>I have a feeling that trying to implement meta tags in the  of an webpage to try and make it compliant with IE7 XHTML standards can sometimes confuse the pre-load of any subsequent CSS files, so they do not get a chance to load even with a stock standard installation of IE7.  Now I have no strong evidence of this, but I have seen this happened to me while I was developing my website.  By placing a line such as  stopped the load of the CSS file.  Reverting to just plain  resolved it.  Now this probably doesn&#039;t make sense but I reckon those sites that have a lot of meta tags or try to enforce XHTML are always the sites that &quot;SOMETIMES&quot; don&#039;t load the CSS properly and you need to Refresh the page (F5), sometimes a couple of times before IE7 decides its going to load the CSS.  Sadly Molly, your site is currently one site that behaves like this.

Admittedly I probably have a rubbishy computer (2.8 gig Presscot with 1 Gig DDR) and hasn&#039;t had its Internet cache purged or its O/S revamped (XP SP2).  And my Registry is cluttered with useless data.  A rebuild could do the trick but I not going to do this simply to test that theory.</description>
		<content:encoded><![CDATA[<p>I have a feeling that trying to implement meta tags in the  of an webpage to try and make it compliant with IE7 XHTML standards can sometimes confuse the pre-load of any subsequent CSS files, so they do not get a chance to load even with a stock standard installation of IE7.  Now I have no strong evidence of this, but I have seen this happened to me while I was developing my website.  By placing a line such as  stopped the load of the CSS file.  Reverting to just plain  resolved it.  Now this probably doesn&#8217;t make sense but I reckon those sites that have a lot of meta tags or try to enforce XHTML are always the sites that &#8220;SOMETIMES&#8221; don&#8217;t load the CSS properly and you need to Refresh the page (F5), sometimes a couple of times before IE7 decides its going to load the CSS.  Sadly Molly, your site is currently one site that behaves like this.</p>
<p>Admittedly I probably have a rubbishy computer (2.8 gig Presscot with 1 Gig DDR) and hasn&#8217;t had its Internet cache purged or its O/S revamped (XP SP2).  And my Registry is cluttered with useless data.  A rebuild could do the trick but I not going to do this simply to test that theory.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jim Pietrangelo</title>
		<link>http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-969435</link>
		<dc:creator>Jim Pietrangelo</dc:creator>
		<pubDate>Thu, 24 Jan 2008 04:48:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/#comment-969435</guid>
		<description>IE6 lurks like a mugger in a back alley as I make my way into each new project. If you let it, you will lose your wallet, your watch, and your carefully crafted markup. The way I deal with IE6 is to invite it to the party right from the get-go. Each step of the way the page and associated markup is tested against Safari, Firefox (windows &amp; mac,) IE7, and IE6. If something doesn&#039;t work, it&#039;s fixed then and there before I move on. For certain, the skeleton of the site (navigation, basic layout, etc.) is going to be bulletproof in all browsers before adding any real page content.

My preferred method of dealing with IE6 issues, and some IE7, is to put them in separate stylesheets using conditional statements tucked in the head of each page. If I&#039;m really lucky, when I get to the end of the project, those extra stylesheets will be blank, or at least real short because of the testing that was done along the way.

Anyway, that&#039;s my way of handling the problem of IE6 incompatibilities. I really just wish it would go away. Oh, and I don&#039;t worry at all about anything less than version 6. Period. You&#039;ve got to draw the line somewhere.</description>
		<content:encoded><![CDATA[<p>IE6 lurks like a mugger in a back alley as I make my way into each new project. If you let it, you will lose your wallet, your watch, and your carefully crafted markup. The way I deal with IE6 is to invite it to the party right from the get-go. Each step of the way the page and associated markup is tested against Safari, Firefox (windows &amp; mac,) IE7, and IE6. If something doesn&#8217;t work, it&#8217;s fixed then and there before I move on. For certain, the skeleton of the site (navigation, basic layout, etc.) is going to be bulletproof in all browsers before adding any real page content.</p>
<p>My preferred method of dealing with IE6 issues, and some IE7, is to put them in separate stylesheets using conditional statements tucked in the head of each page. If I&#8217;m really lucky, when I get to the end of the project, those extra stylesheets will be blank, or at least real short because of the testing that was done along the way.</p>
<p>Anyway, that&#8217;s my way of handling the problem of IE6 incompatibilities. I really just wish it would go away. Oh, and I don&#8217;t worry at all about anything less than version 6. Period. You&#8217;ve got to draw the line somewhere.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Herne</title>
		<link>http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-968876</link>
		<dc:creator>Herne</dc:creator>
		<pubDate>Wed, 23 Jan 2008 22:21:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/#comment-968876</guid>
		<description>I have a dumb idea... How about instead of working around IE&#039;s stupidity, everyone completely abandons IE and forces Microsoft to build a browser that actually works correctly. Saves everyone time.

Preload a browser sniffer page, and if it comes up with IE, you&#039;re forced to click on a big Firefox button and download it instead.</description>
		<content:encoded><![CDATA[<p>I have a dumb idea&#8230; How about instead of working around IE&#8217;s stupidity, everyone completely abandons IE and forces Microsoft to build a browser that actually works correctly. Saves everyone time.</p>
<p>Preload a browser sniffer page, and if it comes up with IE, you&#8217;re forced to click on a big Firefox button and download it instead.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: hosting</title>
		<link>http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-968062</link>
		<dc:creator>hosting</dc:creator>
		<pubDate>Wed, 23 Jan 2008 13:23:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/#comment-968062</guid>
		<description>ie perfect</description>
		<content:encoded><![CDATA[<p>ie perfect</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: site ekle</title>
		<link>http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-968060</link>
		<dc:creator>site ekle</dc:creator>
		<pubDate>Wed, 23 Jan 2008 13:22:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/#comment-968060</guid>
		<description>thank you</description>
		<content:encoded><![CDATA[<p>thank you</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: varmısın yokmusun</title>
		<link>http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-968054</link>
		<dc:creator>varmısın yokmusun</dc:creator>
		<pubDate>Wed, 23 Jan 2008 13:20:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/#comment-968054</guid>
		<description>thanks</description>
		<content:encoded><![CDATA[<p>thanks</p>
]]></content:encoded>
	</item>
</channel>
</rss>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
	
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">

<head profile="http://gmpg.org/xfn/1">

<title>molly.com &raquo; Best Bets for Browser Bug Bashing </title>
	
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="WordPress 3.0-alpha" /> <!-- leave this for stats -->

<!-- geo info -->

<meta name="ICBM" content="32.340684, -110.92053" />
<meta name="DC.title" content="molly dot com" />
<script src="http://www.gvisit.com/record.php?sid=29fdb5c84455da3b0a7efe4a1f92d00a" type="text/javascript"></script>

<!-- begin styles -->
<link rel="stylesheet" type="text/css" href="http://www.molly.com/css/layout.css" />
<link rel="stylesheet" type="text/css" href="http://www.molly.com/css/home.css" />
<style type="text/css">
div#ephemera ul li {padding-bottom: 3px; border-bottom: 1px orange solid;}
.clear {clear: both;}
</style>


<!-- this is syndication-->

<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://www.molly.com/feed/" />
<link rel="alternate" type="text/xml" title="RSS .92" href="http://www.molly.com/feed/rss/" />
<link rel="alternate" type="application/atom+xml" title="Atom 0.3" href="http://www.molly.com/feed/atom/" />

<!-- favicon -->
<link rel="favicon" href="/favicon.ico" />

<!-- pings and comments -->

<link rel="pingback" href="http://www.molly.com/wp/xmlrpc.php" />
	<link rel='archives' title='January 2010' href='http://www.molly.com/2010/01/' />
	<link rel='archives' title='October 2009' href='http://www.molly.com/2009/10/' />
	<link rel='archives' title='September 2009' href='http://www.molly.com/2009/09/' />
	<link rel='archives' title='August 2009' href='http://www.molly.com/2009/08/' />
	<link rel='archives' title='July 2009' href='http://www.molly.com/2009/07/' />
	<link rel='archives' title='June 2009' href='http://www.molly.com/2009/06/' />
	<link rel='archives' title='May 2009' href='http://www.molly.com/2009/05/' />
	<link rel='archives' title='April 2009' href='http://www.molly.com/2009/04/' />
	<link rel='archives' title='March 2009' href='http://www.molly.com/2009/03/' />
	<link rel='archives' title='February 2009' href='http://www.molly.com/2009/02/' />
	<link rel='archives' title='January 2009' href='http://www.molly.com/2009/01/' />
	<link rel='archives' title='December 2008' href='http://www.molly.com/2008/12/' />
	<link rel='archives' title='November 2008' href='http://www.molly.com/2008/11/' />
	<link rel='archives' title='October 2008' href='http://www.molly.com/2008/10/' />
	<link rel='archives' title='September 2008' href='http://www.molly.com/2008/09/' />
	<link rel='archives' title='August 2008' href='http://www.molly.com/2008/08/' />
	<link rel='archives' title='July 2008' href='http://www.molly.com/2008/07/' />
	<link rel='archives' title='June 2008' href='http://www.molly.com/2008/06/' />
	<link rel='archives' title='May 2008' href='http://www.molly.com/2008/05/' />
	<link rel='archives' title='April 2008' href='http://www.molly.com/2008/04/' />
	<link rel='archives' title='March 2008' href='http://www.molly.com/2008/03/' />
	<link rel='archives' title='February 2008' href='http://www.molly.com/2008/02/' />
	<link rel='archives' title='January 2008' href='http://www.molly.com/2008/01/' />
	<link rel='archives' title='December 2007' href='http://www.molly.com/2007/12/' />
	<link rel='archives' title='November 2007' href='http://www.molly.com/2007/11/' />
	<link rel='archives' title='October 2007' href='http://www.molly.com/2007/10/' />
	<link rel='archives' title='September 2007' href='http://www.molly.com/2007/09/' />
	<link rel='archives' title='August 2007' href='http://www.molly.com/2007/08/' />
	<link rel='archives' title='July 2007' href='http://www.molly.com/2007/07/' />
	<link rel='archives' title='June 2007' href='http://www.molly.com/2007/06/' />
	<link rel='archives' title='May 2007' href='http://www.molly.com/2007/05/' />
	<link rel='archives' title='April 2007' href='http://www.molly.com/2007/04/' />
	<link rel='archives' title='March 2007' href='http://www.molly.com/2007/03/' />
	<link rel='archives' title='February 2007' href='http://www.molly.com/2007/02/' />
	<link rel='archives' title='January 2007' href='http://www.molly.com/2007/01/' />
	<link rel='archives' title='December 2006' href='http://www.molly.com/2006/12/' />
	<link rel='archives' title='November 2006' href='http://www.molly.com/2006/11/' />
	<link rel='archives' title='October 2006' href='http://www.molly.com/2006/10/' />
	<link rel='archives' title='September 2006' href='http://www.molly.com/2006/09/' />
	<link rel='archives' title='August 2006' href='http://www.molly.com/2006/08/' />
	<link rel='archives' title='July 2006' href='http://www.molly.com/2006/07/' />
	<link rel='archives' title='June 2006' href='http://www.molly.com/2006/06/' />
	<link rel='archives' title='May 2006' href='http://www.molly.com/2006/05/' />
	<link rel='archives' title='April 2006' href='http://www.molly.com/2006/04/' />
	<link rel='archives' title='March 2006' href='http://www.molly.com/2006/03/' />
	<link rel='archives' title='February 2006' href='http://www.molly.com/2006/02/' />
	<link rel='archives' title='January 2006' href='http://www.molly.com/2006/01/' />
	<link rel='archives' title='December 2005' href='http://www.molly.com/2005/12/' />
	<link rel='archives' title='November 2005' href='http://www.molly.com/2005/11/' />
	<link rel='archives' title='October 2005' href='http://www.molly.com/2005/10/' />
	<link rel='archives' title='September 2005' href='http://www.molly.com/2005/09/' />
	<link rel='archives' title='August 2005' href='http://www.molly.com/2005/08/' />
	<link rel='archives' title='July 2005' href='http://www.molly.com/2005/07/' />
	<link rel='archives' title='June 2005' href='http://www.molly.com/2005/06/' />
	<link rel='archives' title='May 2005' href='http://www.molly.com/2005/05/' />
	<link rel='archives' title='April 2005' href='http://www.molly.com/2005/04/' />
	<link rel='archives' title='March 2005' href='http://www.molly.com/2005/03/' />
	<link rel='archives' title='February 2005' href='http://www.molly.com/2005/02/' />
	<link rel='archives' title='January 2005' href='http://www.molly.com/2005/01/' />
	<link rel='archives' title='December 2004' href='http://www.molly.com/2004/12/' />
	<link rel='archives' title='November 2004' href='http://www.molly.com/2004/11/' />
	<link rel='archives' title='October 2004' href='http://www.molly.com/2004/10/' />
	<link rel='archives' title='September 2004' href='http://www.molly.com/2004/09/' />
	<link rel='archives' title='August 2004' href='http://www.molly.com/2004/08/' />
	<link rel='archives' title='July 2004' href='http://www.molly.com/2004/07/' />
	<link rel='archives' title='June 2004' href='http://www.molly.com/2004/06/' />
	<link rel='archives' title='May 2004' href='http://www.molly.com/2004/05/' />
	<link rel='archives' title='April 2004' href='http://www.molly.com/2004/04/' />
	<link rel='archives' title='March 2004' href='http://www.molly.com/2004/03/' />
	<link rel='archives' title='February 2004' href='http://www.molly.com/2004/02/' />
	<link rel='archives' title='January 2004' href='http://www.molly.com/2004/01/' />
	<link rel='archives' title='December 2003' href='http://www.molly.com/2003/12/' />
	<link rel='archives' title='November 2003' href='http://www.molly.com/2003/11/' />
	<link rel='archives' title='October 2003' href='http://www.molly.com/2003/10/' />
	<link rel='archives' title='September 2003' href='http://www.molly.com/2003/09/' />
	<link rel='archives' title='August 2003' href='http://www.molly.com/2003/08/' />
<link rel="alternate" type="application/rss+xml" title="molly.com &raquo; Feed" href="http://www.molly.com/feed/" />
<link rel="alternate" type="application/rss+xml" title="molly.com &raquo; Comments Feed" href="http://www.molly.com/comments/feed/" />
<link rel="alternate" type="application/rss+xml" title="molly.com &raquo; Best Bets for Browser Bug Bashing Comments Feed" href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/feed/" />
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://www.molly.com/wp/xmlrpc.php?rsd" />
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://www.molly.com/wp/wp-includes/wlwmanifest.xml" /> 
<link rel='index' title='molly.com' href='http://www.molly.com/' />
<link rel='start' title='yes, this is me' href='http://www.molly.com/2004/07/02/yes-this-is-me/' />
<link rel='prev' title='Yes Ladies and Gentlemen, We Have a Smiley' href='http://www.molly.com/2007/12/19/yes-ladies-and-gentleman-we-have-a-smiley/' />
<link rel='next' title='Murder Tales' href='http://www.molly.com/2007/12/30/murder-tales/' />
<meta name="generator" content="WordPress 3.0-alpha" />
<link rel='canonical' href='http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/' />
<link rel='shortlink' href='http://www.molly.com/?p=763' />


</head>

<body id="molly-com">

<!-- start of header include -->

<div id="header">
<a href="http://molly.com/" accesskey="1" id="logo"><img src="http://molly.com/images/logo_lores.png" alt="Molly.com" width="105" height="140" /></a>
<a href="#content" title="skip to the content" accesskey="2" id="skipper">skip to the content</a> 
</div>

<!-- start navbar include -->

<div id="navigation">

<h1>site navigation</h1>
<ul>
<li><a href="http://www.molly.com/" title="Home" id="navhome">home</a></li>
<li><a href="http://molly.com/books.php" title="Books" id="navbooks">books</a></li>
<li><a href="http://molly.com/articles.php" title="Articles" id="navarticles">articles</a></li>
<li><a href="http://molly.com/events.php" title="Events" id="navevents">events</a></li>
<li><a href="http://molly.com/education.php" title="Courses" id="navcourses">courses</a></li>
<li><a href="http://molly.com/consultation.php" title="Consultation" id="navconsultation">consultation</a></li>
<li><a href="http://molly.com/about.php" title="About" id="navabout">about</a></li>
<li><a href="http://molly.com/funstuff.php" title="Fun stuff" id="navfun">fun</a></li>
</ul>
</div>
<!-- end of navbar include -->

<div id="container"> 
<!-- begin content division -->
<div id="content"> 

<h1>molly.com</h1>

<div class="blogentr">
<h2>Friday  28 December 2007</h2><h3 class="entryhead" id="post-763"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/" rel="bookmark" title="Permanent Link: Best Bets for Browser Bug Bashing">Best Bets for Browser Bug Bashing</a></h3>

<p>One of the most frustrating, time consuming and challenging aspects of managing cross-browser rendering of CSS is dealing with bugs along with incomplete implementations. Examining helpful resources such as <a href="http://www.positioniseverything.net/">position is everything</a> and <a href="http://www.quirksmode.org/">QuirksMode</a>, it becomes profoundly clear that today&#8217;s front end web designer and developer must be pretty adept at dealing with this core problem.</p>
<p>I call it a core problem because of course, interoperability is a problem the Web was meant to solve! Yet, the disparities in Web browsers have in fact caused the greatest accessibility challenge to the Web we as its authors must face, and conquer.</p>
<p>Fortunately, there are some proven ways to deal with cross-browser challenges. We can use hacks, which of course are controversial in their own right due in large part to how difficult they are to maintain and how often they are based on invalid markup or parsing errors (* html anyone?). </p>
<p>We can use conditional comments for managing IE versions. CC&#8217;s are in my opinion the cleanest way to manage IE issues on a case by case basis, but they too are controversial. An HTML comment was never intended to contain a conditional statement, so a CC is essentially a hack. Furthermore, it&#8217;s an IE-specific solution, so that in and of itself smells a little funny to the purist nose. </p>
<p>Another approach involves using JavaScript to &#8220;correct&#8221; browser behaviors, such as we find with Dean Edwards&#8217; <a href="http://dean.edwards.name/">IE7 Scripts</a>. </p>
<p>What ends up happening, as we all know, is that we use a combination of these techniques where necessary to address our browser base.</p>
<p>So we have the techniques: Three primary ways we approach bug bashing and implementation problems. What&#8217;s missing isn&#8217;t our knowledge, but a conventional <em>method</em>. If we had a step-by-step procedural to walk ourselves through, that could be very helpful. Clearly, what works for one site isn&#8217;t necessarily going to apply to another, but <em>some</em> guidelines to help each other manage this very murky, very challenging problem would certainly be of benefit.</p>
<p>My intuition and experience suggest that the most effective way to manage bugs is to kill them where they live. That means having a clear workflow <em>from the earliest stages of authoring</em> to manage browser issues regarding CSS. Surely many folks will have created such workflows, perhaps even unaware that you&#8217;ve done so, as it&#8217;s just become part of your process. </p>
<p>Think about how you work and if you could take a moment to share your best bets for managing cross-browser CSS design, we can together examine the least time-consuming, most efficient and most solid method by which to bash those bad, bad bugs.</p>

<p class="blogpostbit"><strong>Filed under</strong>: &nbsp; <a href="http://www.molly.com/category/software/browsers/" title="View all posts in browsers" rel="category tag">browsers</a>, <a href="http://www.molly.com/category/molly-asks-you/" title="View all posts in molly asks you" rel="category tag">molly asks you</a>, <a href="http://www.molly.com/category/standards/" title="View all posts in standards" rel="category tag">standards</a>, <a href="http://www.molly.com/category/web-design/" title="View all posts in web design and development" rel="category tag">web design and development</a><br />
<strong>Posted by</strong>: &nbsp; Molly | 12:26 |  <a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/#comments" title="Comment on Best Bets for Browser Bug Bashing">Comments (44)</a></p>
<!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
				xmlns:dc="http://purl.org/dc/elements/1.1/"
				xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
			<rdf:Description rdf:about="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/"
    dc:identifier="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/"
    dc:title="Best Bets for Browser Bug Bashing"
    trackback:ping="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/trackback/" />
</rdf:RDF> -->

<!-- You can start editing here. -->

	<h3 id="comments">44 Responses to &#8220;Best Bets for Browser Bug Bashing&#8221;</h3>

	<div class="navigation">
		<div class="alignleft"></div>
		<div class="alignright"></div>
	</div>

	<ol class="commentlist">
			<li class="comment even thread-even depth-1" id="comment-908675">
				<div id="div-comment-908675" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://1.gravatar.com/avatar/f57af39d098e35038182c7e4c51f86b8?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn">Milo</cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-908675">
			Friday  28 December 2007 at 12:43</a>		</div>

		<p>&#8220;the most effective way to manage bugs is to kill them where they live&#8221;</p>
<p>I couldn&#8217;t have said it better myself.  Since the bugs clearly live in the browsers, the workflow should be something like this:</p>
<p>1) Recognize bug.<br />
2) Create a testcase that shows the bug and is as small as possible (1-20 lines of code).<br />
3) Report the bug along with the testcase to the browser manufacturer.<br />
4) Work around the bug and comment the workaround with the latest known browsers in which the bug exists and in which it has been fixed.<br />
5) Phase the workaround out as the buggy browsers become less used.</p>
<p>Unfortunately with some browsers this workflow hits a dead end at #3.</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment odd alt thread-odd thread-alt depth-1" id="comment-908711">
				<div id="div-comment-908711" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://0.gravatar.com/avatar/a132c2d574ae1e64b941efc1ea110574?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn"><a href='http://www.noipo.org/' rel='external nofollow' class='url'>Martijn ten Napel</a></cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-908711">
			Friday  28 December 2007 at 13:07</a>		</div>

		<p>If I encounter a bug it means I have already tried several other ways to solve the same puzzle. To me it is a bug when no alternative route involving &#8216;valid&#8217; CSS proves fruitful.</p>
<p>To counter the bug I move the &#8216;targeted&#8217; CSS to a separate stylesheet that I always import at the very end. I make sure the fix is only and exclusively valid in that one particular browser, otherwise I won&#8217;t apply it (it might hurt with the upgrade of whatever other browser at whatever moment in the future, and we don&#8217;t like that.)</p>
<p>Some browsers I just don&#8217;t fix, like older versions of Opera. I&#8217;m pretty sure that Opera users do upgrade. Trying to make it right in every conceivable browser is not worth the effort. The bug must just not be so bad that the paeg becomes unusable, otherwise I would try if I can serve up just plain HTML.</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment even thread-even depth-1" id="comment-908794">
				<div id="div-comment-908794" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://0.gravatar.com/avatar/c75df6d45b1fc8e224b2adf2954407dd?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn"><a href='http://www.nealgrosskopf.com/' rel='external nofollow' class='url'>Neal</a></cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-908794">
			Friday  28 December 2007 at 14:00</a>		</div>

		<p>I think the IF IE method is the best way to attack the problem. Usually 90% of the time it&#8217;s IE that we have to work around. I use IE specific stylesheets wrapped in the IF IE statments. Then in my main stylesheet I place a CSS comment next to any rules or selectors that have a IF IE statment so I can reference back to the seperate stylesheets if I make changes. </p>
<p>The #IERoot method mentioned on &#8220;position is everything&#8221; sounds interesting to me rather than using the seperate stylesheets, all IF IE code could be kept in one stylesheet. The only reason I don&#8217;t use that method is because it just seems uglier to me in the markup and all non-ie browser end up downloading the bloated stylesheet with code written for both browsers when my method only does for IE browsers.</p>
<p>The star hack was a horrible approach back in the day. The IF IE approach is at least advocated by Microsoft. It&#8217;s sort of funny that it even exists. It sort of says, we don&#8217;t have enough time to fix all the bugs so we&#8217;re just going to give you a work around to the problem until we do. Regardless they have obviously listened to all the MS bashers on the blogs with IE8 and are fixing most of the rendering problems.</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment odd alt thread-odd thread-alt depth-1" id="comment-908815">
				<div id="div-comment-908815" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://0.gravatar.com/avatar/2dcf0167afc77fe3eea71c772430929d?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn"><a href='http://boinkinchipmunks.com' rel='external nofollow' class='url'>thacker</a></cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-908815">
			Friday  28 December 2007 at 14:10</a>		</div>

		<p>1. Level the playing field, e.g. the Meyer CSS Reset or equivalent.</p>
<p>2. Keep it simple and stupid, e.g. browser delivered content is more about communication rather than design.</p>
<p>3. Don&#8217;t sweat the small stuff, e.g. minor design/css inconsistencies between major browsers, who cares and who notices.</p>
<p>4. Support only modern browsers, e.g. this does not include support for IE6 and below and includes support for the most current version of the Flash player. Security supersedes temporary user inconvenience for an upgrade/update.</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment even thread-even depth-1" id="comment-908985">
				<div id="div-comment-908985" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://1.gravatar.com/avatar/b231e07e868d33adca6135fc54ca06ec?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn"><a href='http://ian.sundermedia.com' rel='external nofollow' class='url'>Ian Muir</a></cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-908985">
			Friday  28 December 2007 at 15:49</a>		</div>

		<p>I think that thacker is on the right track. Here&#8217;s a few extensions to his list that I follow:</p>
<p>1. Write clean, semantic markup. Many issues that appear to be CSS can be fixed with better markup.</p>
<p>2. Try avoid any branching. I almost never uses hacks or conditionals. It&#8217;s better to make a few design concessions to keep a more maintainable site or app. </p>
<p>3. Create designs that don&#8217;t need to be pixel perfect. This makes it more likely that your layouts will degrade more elegantly. Also, if you get into a state where every element has to be pixel perfect any change is going to be a hassle.</p>
<p>4. Don&#8217;t be afraid of dropping legacy support. IE7 and Firefox are free, don&#8217;t be afraid to &#8220;encourage&#8221; your users to upgrade.</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment odd alt thread-odd thread-alt depth-1" id="comment-909042">
				<div id="div-comment-909042" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://0.gravatar.com/avatar/64fee9a2e91befd16026f8175d52141a?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn">Rick</cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-909042">
			Friday  28 December 2007 at 16:17</a>		</div>

		<p>@Ian and @thacker &#8211; I&#8217;d love to upgrade to the &#8216;free&#8217; IE7.  It will only cost me about $750 to upgrade to Windows Server 2003 from Win2k Advanced Server.</p>
<p>I do agree supporting old browsers is a waste of time.  But until the percentage of IE6 users drops below 10% (it is currently about 50%) or so its not practical to ignore it completely.  I will ignore IE 5.x and below, Firefox 1.x and below, Opera 8 and below, etc.</p>
<p>As to bug bashing, I am beginning to lean toward using conditional comments and separate style sheets for IE versions.  It seems to me to be a cleaner, easier way to manage, maintain and upgrade any necessary IE specific CSS.</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment even thread-even depth-1" id="comment-909051">
				<div id="div-comment-909051" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://0.gravatar.com/avatar/64fee9a2e91befd16026f8175d52141a?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn">Rick</cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-909051">
			Friday  28 December 2007 at 16:20</a>		</div>

		<p>Oh, workflow!!!</p>
<p>I build a page using clean semantic HTML and CSS that works in FireFox 2 and Opera 9.  I then check to see the carnage wrought by IE6/7 and add fixes where necessary.</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment odd alt thread-odd thread-alt depth-1" id="comment-909182">
				<div id="div-comment-909182" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://0.gravatar.com/avatar/e75345e03b2fb3c715419b27ca617b24?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn"><a href='http://www.weknowhtml.com' rel='external nofollow' class='url'>Alex Hillman</a></cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-909182">
			Friday  28 December 2007 at 17:18</a>		</div>

		<p>Agreed with Rick that IE6, while it sucks, is still &#8216;modern&#8217; by the definition of most of the agency QA departments I&#8217;ve worked with: current release version and one version back. </p>
<p>Also agreed that with a well structured reset (mine is a combination of Meyer&#8217;s, YUI, and some of my own injections), semantic/clean markup, and thoughtful organization, browser bugs can be kept to a minimum. </p>
<p>I can&#8217;t remember the last *bug*, or even visual inconsistency (save the fact that PC browsers render text like garbage) that hassled me. I suppose that over time you start to anticipate the problems and, as Ian suggested, design for them and/or work with them. </p>
<p>As such, my most-favorite&#8217;d tweet ever:<br />
&#8220;internet explorer and I are like dancing partners, I can totally anticipate that fickle bitch&#8217;s moves&#8221;<br />
- <a href="http://twitter.com/alexknowshtml/statuses/452212312" rel="nofollow">http://twitter.com/alexknowshtml/statuses/452212312</a></p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment even thread-even depth-1" id="comment-909361">
				<div id="div-comment-909361" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://1.gravatar.com/avatar/b33181b8e12bd10dfa373acc8af37cbb?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn"><a href='http://dean.edwards.name/' rel='external nofollow' class='url'>Dean Edwards</a></cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-909361">
			Friday  28 December 2007 at 19:01</a>		</div>

		<p>Good timing! I&#8217;m currently working on an update to my IE7 scripts. The aim with the new version is that the script will upgrade IE5/6 to be compatible with the actual IE7 browser. When I first wrote the scripts there was no IE7 browser so I was shooting at an imaginary target.</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment odd alt thread-odd thread-alt depth-1" id="comment-909430">
				<div id="div-comment-909430" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://1.gravatar.com/avatar/b6bd7aab1af810bfe5716c03258093da?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn"><a href='http://stevenclark.com.au' rel='external nofollow' class='url'>Steven Clark</a></cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-909430">
			Friday  28 December 2007 at 19:42</a>		</div>

		<p>I&#8217;ve come to the perspective that conditional comments are the cleanest and easiest ways. But that being said they really don&#8217;t contain much. The worst thing someone could do is just hit the conditional IE CSS file every time they need a little extra padding. I tend to only use that file as a last resort as it should be.</p>
<p>To someone learning CSS I can see the temptation of making huge IE specific stylesheets&#8230; just my 2 cents. <img src='http://www.molly.com/wp/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment even thread-even depth-1" id="comment-909694">
				<div id="div-comment-909694" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://0.gravatar.com/avatar/4f9f5674f9f19d70a39a391be8265fae?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn"><a href='http://www.gunlaug.no/main-en.html' rel='external nofollow' class='url'>Georg</a></cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-909694">
			Friday  28 December 2007 at 22:12</a>		</div>

		<p>1: find the right bugs &#8211; and make sure they are real browser-bugs and not some of the more ordinary &#8220;designer-bugs&#8221;, and kill them on sight.  </p>
<p>2: not bother about minor differences as long as it works and looks ok, and the client don&#8217;t complain.  </p>
<p>I use the &#8216;@import media bug&#8217; hack to feed IE/win (all present versions) an extra stylesheet &#8211; when necessary. This hack is also a safe way to feed non-IE browsers with styles IE/win should rather not see. </p>
<p>It is also important to play around with bug-finding and bug-killing in a controlled environment &#8211; preferably ones own site, so there are no unknown bugs and solutions that can hamper and delay work on sites for paying clients. Time is money.</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment odd alt thread-odd thread-alt depth-1" id="comment-909717">
				<div id="div-comment-909717" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://1.gravatar.com/avatar/b2f9e8a0cd944a74a9bc9d801074db2b?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn"><a href='http://weblog.200ok.com.au/' rel='external nofollow' class='url'>Ben Buchanan</a></cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-909717">
			Friday  28 December 2007 at 22:22</a>		</div>

		<p>My approach&#8230;</p>
<p>1) Write valid XHTML, or as near as your system can produce since not all of us have 100% control over output. I&#8217;ve seen a lot of people trying to &#8220;bugfix CSS&#8221; when actually they have markup problems. Similarly, for &#8220;really weird bugs&#8221; run the CSS validator over your work before getting too deeply involved, to make sure it&#8217;s not a syntax mistake.</p>
<p>2) Build in Opera, also checking in Firefox, IE7 and Safari as you go. If you can get Opera and Firefox to agree you&#8217;re generally on the right track.</p>
<p>3) When you&#8217;re happy, or periodically through big builds, add IE6 and IE7 hacks to fix the problems. </p>
<p>I am one of those purists that does not use conditional comments and probably won&#8217;t until the proprietary hack gets moved into the CSS (ie. never). There is just no way a large team is going to consistently remember to go check rules in a separate stylesheet during maintenance. The hack needs to be next to the proper CSS.</p>
<p>4) In thankfully few cases, you will also hit a bug in Opera, Firefox or Safari. They can actually be just as frustrating to fix since there aren&#8217;t any reliable hacks to target them. Usually you have to track down a workaround or weed out an obscure error you&#8217;ve made somewhere along the line. But, as I said, these cases are rare compared with IE6/7 where you know you&#8217;ll get at least one bug basically 99.9% of the time.</p>
<p>As for support levels&#8230; Basic rule: current version of Opera, FF, IE; plus IE-1 (currently that means IE6; although I wonder if we&#8217;ll end up supporting 6, 7 and 8 all at once); plus whatever version of Safari happens to be on whatever Mac I can access (bundled versions? thanks for nothing, Apple).</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment even thread-even depth-1" id="comment-909726">
				<div id="div-comment-909726" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://0.gravatar.com/avatar/0b772f94d0fbd2ab5d1e774fff886846?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn">Rowan</cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-909726">
			Friday  28 December 2007 at 22:29</a>		</div>

		<p>My approach is to build or find a single base template that works in all major browsers, and recycle it for every new website I create. As soon as I encounter a new bug I can apply the workaround to my base template and I&#8217;ll never have to worry again.</p>
<p>In my experience, the most effective way to diagnose a bug is to create a test case and play with it using Firebug or IE&#8217;s [frustrating] Developer Toolbar. Once you have a better understanding of the cause you can search the net for a solution and see if it works in your template. If not, then you may have to change the HTML structure and CSS to avoid the bug all together.</p>
<p>Otherwise if you&#8217;re short on time there&#8217;s always conditional comments, but the more you target one browser the harder it gets to remain consistent.</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment odd alt thread-odd thread-alt depth-1" id="comment-910290">
				<div id="div-comment-910290" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://0.gravatar.com/avatar/2e87c61c09f5f2b16dc5e11d9559a304?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn">Dan Schulz</cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-910290">
			Saturday  29 December 2007 at 04:33</a>		</div>

		<p>Here&#8217;s what I tell everyone on the various forums I frequent (SitePoint, Digital Point, IWDN, WebDeveloper.com, ScriptingSite, WebsitePublisher, and so forth).</p>
<p>Write clean, minimal, semantic and valid markup, and make sure the DOCTYPE you choose matches the syntax of the code you&#8217;re writing.  Lists are not just for menus.  Any time you have a list of content, including links, use a list.  I cannot believe how many times I&#8217;ll see a list used for the main menu, only to see a DIV container holding link after link after link elsewhere in the page (usually in the footer).  I can also say the same thing about form controls as well.  Is that input a paragraph?  Then don&#8217;t mark it up as such.</p>
<p>Always separate your structural components of the Web page.  Does that menu belong inside the masthead DIV?  No, of course not.  So get it out of there!  Use what I consider to be the proper source code order for pages: header/masthead, menu(s), content, sidebar(s), footer.  Using a non-semantic DIV inside the content area as a &#8220;wrapper&#8221; for that DIV&#8217;s contents works wonders as a CSS hook, and makes floating columns a breeze, especially when adding negative margins to the mix.</p>
<p>Reset all your margins and padding on non-form control elements.  Set the font size of the entire page to a percentage, and then set the leading (line-height) accordingly.  Surprisingly, 85%/1.4 (or 1.5) works wonders, especially for those with larger .dpi settings on their computers.  Then set the containers&#8217; widths to use the EM measurement unit, and set the font used for the text to &#8220;Lucida Console&#8221; to (practically) ensure that whatever font your user has (as long as it&#8217;s not one of those freaky fonts that was downloaded from some obscure font gallery site) will fit if it gets used instead of the preset defaults without breaking the layout.</p>
<p>Remember what I said about placing a wrapper DIV inside the content DIV?  Float that content DIV, give it a width of 100%, and set negative left and right margins equal to the widths of the columns that will be alongside it.  Then set the wrapper DIV&#8217;s margins to be equal to the negative margins used.  It still surprises me to this day how many bugs are avoided by doing this.  If you use a container DIV around the entire page (with the DIV given an ID), you can even emulate equal height columns without background images &#8211; if you know how to set it up properly.</p>
<p>When writing your stylesheet, code to the standards, but check against the rendering engines.  Note I said rendering engines, not browsers.  IE 6/7, Firefox, Opera, and Safari are pretty much all you need, though I&#8217;d also throw in Kmeleon 1.0 and/or Netscape 8 to cater to Linux users who are stuck with Gecko based browsers using the Firefox 1.0.3 build as their baseline.  And then, check incrementally as you go along.  Don&#8217;t wait until you&#8217;re done.  Style the header, validate and then check against all the engines.  Menu?  Same thing.  Content block?  Ditto.  Sidebars?  You guessed it.  And so on and so on and so forth.</p>
<p>Build the overall layout, then work your way in.  And don&#8217;t forget to keep checking against the four major rendering engines as you go along either.  What you&#8217;re doing is debugging as you go along, rather than waiting until the very end.  And if you do find something, don&#8217;t dive for a hack.  Just see if there&#8217;s something you can do to get that browser back in shape.  IE double margin bug?  Just add display: inline; to the rule.  Firefox not letting you click onl links?  Position: relative; usually takes care of that (and can sometimes get Opera to tow the party line as well).  Speaking of Opera.  Is it failing to clear a float?  Just replace clear: (direction); with float: none.</p>
<p>And when you do make such a change, be sure to revalidate your CSS and re-check in each browser you use (the list I gave earlier is what I use).</p>
<p>Oh, and use a Strict DOCTYPE.  It really forces you to abandon the use of the deprecated (read: obsolete) HTML attributes that one shouldn&#8217;t be using in the first place.</p>
<p>Last but not least, if you truely get stuck, don&#8217;t dive for the hacks just yet.  Ask for help instead.  Sometimes all it takes is a fresh set of eyeballs to spot the root cause of the problem.</p>
<p>PS: Molly, you probably have no idea how much flak I catch for even speaking such heresy in a public venu as what I typed out here. <img src='http://www.molly.com/wp/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment even thread-even depth-1" id="comment-910820">
				<div id="div-comment-910820" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://0.gravatar.com/avatar/e6e984d5209d0fd381fae0d78c4d0302?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn"><a href='http://www.mattrobin.com' rel='external nofollow' class='url'>Matt Robin</a></cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-910820">
			Saturday  29 December 2007 at 10:36</a>		</div>

		<p>Timely post Molly &#8211; I was just thinking the other day, with the advent of another version of IE looming on the horizon, what a nuisance it is to need so many hacks to cater for the growing diversity of browser versions and browser bugs out there.</p>
<p>Keeping up with all of it can seem like a full-time challenge that can distract from the actual art of designing something good in the first place. I&#8217;m afraid my workflow for handling such bugs is a bit varied, and is only on a need-to-know (or need-use-with-that-design/situation) basis. The more elaborate a design becomes, the more likely it will hit bugs across those various browsers/browser versions &#8211; so I think it&#8217;s important to master the bug-fixing for simple, more graceful layouts first, establishing how to resolve bugs at that stage before moving on to the elaborate stuff later on.</p>
<p>I agree though &#8211; it&#8217;s the diversity of solutions that can seem so awkward, and some &#8216;unified&#8217; method for bug-fixing across multiple browsers is sorely needed.</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment byuser comment-author-site-admin-2 bypostauthor odd alt thread-odd thread-alt depth-1" id="comment-910920">
				<div id="div-comment-910920" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://1.gravatar.com/avatar/b467deb4ea6a75878c75094ad2b1ef3c?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn"><a href='http://www.molly.com/' rel='external nofollow' class='url'>Molly</a></cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-910920">
			Saturday  29 December 2007 at 11:47</a>		</div>

		<p>@all: good ideas so far. I agree that reset is important, but I&#8217;m not convinced that there&#8217;s a &#8220;one-size fits all&#8221; solution to reset. Every company/situation is going to be different. The same is true with managing CC&#8217;s.</p>
<p>This is why I&#8217;m examining method beyond technique. It&#8217;s not a quest to figure out what to apply, but how to apply it and in what scenarios. </p>
<p>@dean: Ohhh. IE7 scripts changes? This is big/interesting news. Care to share more about what you&#8217;ll be doing? I shudder to think that you&#8217;ll probably be breaking stuff just to match IE7. Yikes! <img src='http://www.molly.com/wp/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment even thread-even depth-1" id="comment-911100">
				<div id="div-comment-911100" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://1.gravatar.com/avatar/b33181b8e12bd10dfa373acc8af37cbb?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn"><a href='http://dean.edwards.name/' rel='external nofollow' class='url'>Dean Edwards</a></cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-911100">
			Saturday  29 December 2007 at 13:24</a>		</div>

		<p>@Molly:</p>
<p>I just started the rewrite a few days ago. The idea with the new version is that the script brings IE5/6 in line with the &#8220;real&#8221; IE7. That means that I will have to remove a lot of the fixes that were in the original version. I&#8217;m going to move all of the surplus fixes to another script: &#8220;IE8&#8243;. The new version will be smaller, faster and centrally hosted on googlecode (cached and gzipped). The overall experience I hope will be more seamless than the original incantation. I&#8217;ll blog about it sometime soon because I want some feedback before I set this in stone.</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment byuser comment-author-site-admin-2 bypostauthor odd alt thread-odd thread-alt depth-1" id="comment-912075">
				<div id="div-comment-912075" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://1.gravatar.com/avatar/b467deb4ea6a75878c75094ad2b1ef3c?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn"><a href='http://www.molly.com/' rel='external nofollow' class='url'>Molly</a></cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-912075">
			Sunday  30 December 2007 at 02:09</a>		</div>

		<p>@dean:</p>
<p>I don&#8217;t know what inspired the rewrite, but woah very timely. And good on you for wanting feedback. Are you going to work on it on your own or open via wiki, etc?</p>
<p>I&#8217;m reviewing a boatload of tests for the public, for Microsoft, for the W3C about how to manage IE6 > 7 > IE8. </p>
<p>My interest is particularly in error handling and figuring out baseline behaviors. I imagine anything you have found between IE7 as you imagined it via specs versus the way it was implemented is golden info.</p>
<p>I want to start a wiki where tests for CSS can be posted along with JS.</p>
<p>It&#8217;s the one shot I believe in.</p>
<p>M</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment even thread-even depth-1" id="comment-912718">
				<div id="div-comment-912718" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://0.gravatar.com/avatar/2dcf0167afc77fe3eea71c772430929d?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn"><a href='http://boinkinchipmunks.com' rel='external nofollow' class='url'>thacker</a></cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-912718">
			Sunday  30 December 2007 at 10:06</a>		</div>

		<p>Dan Schulz stated:</p>
<blockquote><p>[...]have no idea how much flak I catch for even speaking such heresy in a public venu as what I typed out here.</p></blockquote>
<p>Schulz&#8211;</p>
<p>Why do you catch grief for such a thing?  More importantly, what type of specific objections do you receive?</p>
<p>Thank you.</p>
<p>Molly Holzschlag stated:</p>
<blockquote><p>I want to start a wiki where tests for CSS can be posted along with JS.</p></blockquote>
<p>Holzschlag&#8211;</p>
<p>Is this being done as a joint venture with Microsoft and using some of their resources, e.g. funding, staff and servers?  Will it be incorporated and/or used as a prelude to their intended bug reporting system?</p>
<p>Thank you.</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment odd alt thread-odd thread-alt depth-1" id="comment-914185">
				<div id="div-comment-914185" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://0.gravatar.com/avatar/2e87c61c09f5f2b16dc5e11d9559a304?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn">Dan Schulz</cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-914185">
			Monday  31 December 2007 at 02:07</a>		</div>

		<p>thacker, I tend to get the &#8220;holier than thou&#8221; attitude from people who&#8217;s knowledge is at least 10 years out of date (at best) and/or who think that HTML and CSS are simple toys rather than actual structural and presentational markup languages with rules (such as semantics) that have to be obeyed.  Especially from the SEO con artists and frauds who think that they&#8217;re God&#8217;s gift to #1 rankings in the various SERPs.</p>
<p>Right now I&#8217;m fighting with someone at SitePoint over proper source code order who&#8217;s demanding I provide outside 3rd party verification that a &#8220;content first SEO&#8221; approach will not only potentially neuter his search engine ranking, but also inhibit the usability and acceessibility of his Web sites as well.</p>
<p>Sometimes on ICQ and AIM I&#8217;ll get chewed out for telling people to use actual images for their logos (using CSS to serve header backgrounds when approrpriate) rather than H1 headings, since the H1 element is the topmost heading of the page (which I tell people mans it&#8217;s &#8220;page&#8221; not &#8220;site&#8221; centric &#8211; and is best used as a page title).</p>
<p>Usually though the response to my rebuttals tends to be &#8220;but I learned it from ________ so it must be true.&#8221;</p>
<p>Oh, and Molly, you might be interested to know that SitePoint has a HTML, CSS and JavaScript reference under development.  Currently, the CSS reference is available to SitePoint forum members who registered before 1 December 2007, though that won&#8217;t matter much in a day or so. <img src='http://www.molly.com/wp/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>But if you want to go ahead with it, I have a site under development which could be used to host the wiki for you if you&#8217;re interested.  You have my email address should you want to talk about this further in private.</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment even thread-even depth-1" id="comment-915148">
				<div id="div-comment-915148" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://0.gravatar.com/avatar/2e87c61c09f5f2b16dc5e11d9559a304?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn">Dan Schulz</cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-915148">
			Monday  31 December 2007 at 10:28</a>		</div>

		<p>No problem.  And please, just call me Dan. <img src='http://www.molly.com/wp/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment odd alt thread-odd thread-alt depth-1" id="comment-922631">
				<div id="div-comment-922631" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://0.gravatar.com/avatar/a0d7aeb8929963ca6aff93917da88041?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn"><a href='http://proxybar.net' rel='external nofollow' class='url'>Michele Costabile</a></cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-922631">
			Thursday  3 January 2008 at 18:04</a>		</div>

		<p>I think that when following a standard you incur in a lot of problems, then you should not call that a standard and use something else until a standard shows up.</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment even thread-even depth-1" id="comment-923289">
				<div id="div-comment-923289" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://0.gravatar.com/avatar/2e87c61c09f5f2b16dc5e11d9559a304?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn">Dan Schulz</cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-923289">
			Friday  4 January 2008 at 00:23</a>		</div>

		<p>Michele, the problem isn&#8217;t that the standard doens&#8217;t work, it&#8217;s that a lot of people either don&#8217;t know, don&#8217;t know better, or just don&#8217;t care, and write broken code anyway.  HTML and CSS are forgiving, but they&#8217;re not so forgiving that they&#8217;ll bend over backwards to let you do whatever you want to do, rather than what they were designed to do.  Browsers on the other hand&#8230;</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment odd alt thread-odd thread-alt depth-1" id="comment-923640">
				<div id="div-comment-923640" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://0.gravatar.com/avatar/a0d7aeb8929963ca6aff93917da88041?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn"><a href='http://proxybar.net' rel='external nofollow' class='url'>Michele Costabile</a></cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-923640">
			Friday  4 January 2008 at 03:35</a>		</div>

		<p>@dan I have bookmarked this page and will try your suggestions.<br />
I have struggled a lot with page generation in XML/XSL and what I came up with was a framework of sorts with unit tests and everything a programmer (Java or C++ I mean) would expect.<br />
I managed to keep the content, the html, the scripts and the style for each page component in a single place. I had a structure for unit testing each transformation to check the result of each rectangle separately. It was also xhtml 1.1 Strict.<br />
All in all I think it was too much work for the expected result.<br />
I think that people using a text editor for web creation are like those who program in Assembler: too much detail, too much flexibility no defaults, no components that just work and behave.<br />
I had to make a layout for a customer lately even if my main job is programming applications. I studied carefully the layouts on position is everything, but I found out that there is too much code based on bugs in some other code. I hate making my code uglier to be fair to buggy code elsewere.<br />
The second point I found was that it does not &#8220;just work&#8221; you can still break a layout with code you add. This means that there is no sensible delegation of responsibility at each layer of code and every piece tries to do too much rediscussing everything from the start each tim.<br />
All in all I think we need some good practice to html design, like isolation, delegation, unit tests. We also need more powerful tools.<br />
When I had a phone call asking me to change completely a layout half an hour before a meeting I used tables with no regrets and had the right grid in no time. Ok, I will rewrite it before going in production, but any meeting breaks the layout anyway,</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="pingback even thread-even depth-1" id="comment-926227">
				<div id="div-comment-926227" class="comment-body">
				<div class="comment-author vcard">
				<cite class="fn"><a href='http://www.jbvisions.co.uk/voices/archives/87' rel='external nofollow' class='url'>JBVoices &raquo; How was it for you?</a></cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-926227">
			Saturday  5 January 2008 at 06:26</a>		</div>

		<p>[...] Best of the Beast Jack Pickard Blair Millen Molly Holzschlag [...]</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment odd alt thread-odd thread-alt depth-1" id="comment-944665">
				<div id="div-comment-944665" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://0.gravatar.com/avatar/ec58b4d374523bb85a7e628f09957046?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn"><a href='http://webbugtrack.blogspot.com/2007/08/welcome-to-web-bug-track.html' rel='external nofollow' class='url'>Carlson</a></cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-944665">
			Saturday  12 January 2008 at 13:48</a>		</div>

		<p>Milo is totally correct with the list of 5 steps to fix bugs.</p>
<p>But the final comment about &#8220;some browsers&#8221; is inaccurate because only one vendor refuses to play fair.</p>
<p>Microsoft Internet Explorer</p>
<p>MS used to have a bug tracker called IE Feedback.  It wasn&#8217;t the best system by far, but at least it existed.  Now, there is nothing.</p>
<p>Web Bug Track (see here)<br />
<a href="http://webbugtrack.blogspot.com/" rel="nofollow">http://webbugtrack.blogspot.com/</a></p>
<p>Is now one of the premier resources for tracking bugs in IE, and getting a handle on the workarounds if there are any.</p>
<p>What is wrong, is that the need for a site like this even exists.  If MS got their stuff together, we would have full bug tracking on a Microsoft site.</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment even thread-even depth-1" id="comment-944668">
				<div id="div-comment-944668" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://0.gravatar.com/avatar/ec58b4d374523bb85a7e628f09957046?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn"><a href='http://webbugtrack.blogspot.com/2007/08/welcome-to-web-bug-track.html' rel='external nofollow' class='url'>Carlson</a></cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-944668">
			Saturday  12 January 2008 at 13:53</a>		</div>

		<p>@Rick &#8211; The upgrade to Firefox is always free! &#8211; Only upgrading IE costs money based on your O.S.</p>
<p>Not only is it free, it will improve your Web Browsing experience 10 fold.</p>
<p>You couldn&#8217;t pay me to use IE6.  Seriously, I wouldn&#8217;t even accept a Job offer where the company didn&#8217;t allow Firefox. Period.</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment odd alt thread-odd thread-alt depth-1" id="comment-950653">
				<div id="div-comment-950653" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://1.gravatar.com/avatar/5b2bf65a98aaed7e642c32516578a07c?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn"><a href='http://learningtheworld.eu' rel='external nofollow' class='url'>Martin Kliehm</a></cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-950653">
			Tuesday  15 January 2008 at 08:40</a>		</div>

		<p>We develop a solid base with valid XHTML on a reliable browser (Firefox), then we take a look at Internet Explorer and other browsers from Yahoo&#8217;s Graded Browser Support matrix to fix the bugs. We fix bugs early in small iteration loops so that they do not pile up to larger inconsistencies.</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment even thread-even depth-1" id="comment-968054">
				<div id="div-comment-968054" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://1.gravatar.com/avatar/976db35857bb1a06462e5b4a9524b94c?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn"><a href='http://www.varmisin-yokmusun.com' rel='external nofollow' class='url'>varmısın yokmusun</a></cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-968054">
			Wednesday  23 January 2008 at 06:20</a>		</div>

		<p>thanks</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment odd alt thread-odd thread-alt depth-1" id="comment-968060">
				<div id="div-comment-968060" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://1.gravatar.com/avatar/976db35857bb1a06462e5b4a9524b94c?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn"><a href='http://www.sizinlink.com' rel='external nofollow' class='url'>site ekle</a></cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-968060">
			Wednesday  23 January 2008 at 06:22</a>		</div>

		<p>thank you</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment even thread-even depth-1" id="comment-968062">
				<div id="div-comment-968062" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://1.gravatar.com/avatar/976db35857bb1a06462e5b4a9524b94c?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn"><a href='http://www.hostingmerkezim.com' rel='external nofollow' class='url'>hosting</a></cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-968062">
			Wednesday  23 January 2008 at 06:23</a>		</div>

		<p>ie perfect</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment odd alt thread-odd thread-alt depth-1" id="comment-968876">
				<div id="div-comment-968876" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://1.gravatar.com/avatar/b8059665d7c751ee0d42cad830c9a4df?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn">Herne</cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-968876">
			Wednesday  23 January 2008 at 15:21</a>		</div>

		<p>I have a dumb idea&#8230; How about instead of working around IE&#8217;s stupidity, everyone completely abandons IE and forces Microsoft to build a browser that actually works correctly. Saves everyone time.</p>
<p>Preload a browser sniffer page, and if it comes up with IE, you&#8217;re forced to click on a big Firefox button and download it instead.</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment even thread-even depth-1" id="comment-969435">
				<div id="div-comment-969435" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://1.gravatar.com/avatar/ffe07b0e04cabb03c37a701754a00449?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn"><a href='http://webcampone.com' rel='external nofollow' class='url'>Jim Pietrangelo</a></cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-969435">
			Wednesday  23 January 2008 at 21:48</a>		</div>

		<p>IE6 lurks like a mugger in a back alley as I make my way into each new project. If you let it, you will lose your wallet, your watch, and your carefully crafted markup. The way I deal with IE6 is to invite it to the party right from the get-go. Each step of the way the page and associated markup is tested against Safari, Firefox (windows &amp; mac,) IE7, and IE6. If something doesn&#8217;t work, it&#8217;s fixed then and there before I move on. For certain, the skeleton of the site (navigation, basic layout, etc.) is going to be bulletproof in all browsers before adding any real page content.</p>
<p>My preferred method of dealing with IE6 issues, and some IE7, is to put them in separate stylesheets using conditional statements tucked in the head of each page. If I&#8217;m really lucky, when I get to the end of the project, those extra stylesheets will be blank, or at least real short because of the testing that was done along the way.</p>
<p>Anyway, that&#8217;s my way of handling the problem of IE6 incompatibilities. I really just wish it would go away. Oh, and I don&#8217;t worry at all about anything less than version 6. Period. You&#8217;ve got to draw the line somewhere.</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment odd alt thread-odd thread-alt depth-1" id="comment-986722">
				<div id="div-comment-986722" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://0.gravatar.com/avatar/a5be5a3c378581f0726cc88610a03032?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn">Thomas Suters</cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-986722">
			Wednesday  30 January 2008 at 22:44</a>		</div>

		<p>I have a feeling that trying to implement meta tags in the  of an webpage to try and make it compliant with IE7 XHTML standards can sometimes confuse the pre-load of any subsequent CSS files, so they do not get a chance to load even with a stock standard installation of IE7.  Now I have no strong evidence of this, but I have seen this happened to me while I was developing my website.  By placing a line such as  stopped the load of the CSS file.  Reverting to just plain  resolved it.  Now this probably doesn&#8217;t make sense but I reckon those sites that have a lot of meta tags or try to enforce XHTML are always the sites that &#8220;SOMETIMES&#8221; don&#8217;t load the CSS properly and you need to Refresh the page (F5), sometimes a couple of times before IE7 decides its going to load the CSS.  Sadly Molly, your site is currently one site that behaves like this.</p>
<p>Admittedly I probably have a rubbishy computer (2.8 gig Presscot with 1 Gig DDR) and hasn&#8217;t had its Internet cache purged or its O/S revamped (XP SP2).  And my Registry is cluttered with useless data.  A rebuild could do the trick but I not going to do this simply to test that theory.</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment even thread-even depth-1" id="comment-986735">
				<div id="div-comment-986735" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://0.gravatar.com/avatar/a5be5a3c378581f0726cc88610a03032?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn">Thomas Suters</cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-986735">
			Wednesday  30 January 2008 at 22:49</a>		</div>

		<p>The (html) were deleted in my last post.  It was the (html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221; lang=&#8221;en&#8221;) that caused the problem.  Just using (html) solved it.  Yes that does seem ODD?</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment odd alt thread-odd thread-alt depth-1" id="comment-989691">
				<div id="div-comment-989691" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://0.gravatar.com/avatar/a5be5a3c378581f0726cc88610a03032?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn">Thomas Suters</cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-989691">
			Thursday  31 January 2008 at 21:51</a>		</div>

		<p>You may ignore my previous post, more or less as another website that doesn&#8217;t load the CSS files the first time is using the more standard form of (html) [except the</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment even thread-even depth-1" id="comment-2089699">
				<div id="div-comment-2089699" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://1.gravatar.com/avatar/711e55e5b9d24a415bdc0983ba4cbbe2?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn"><a href='http://www.chatlama.net' rel='external nofollow' class='url'>Chat</a></cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-2089699">
			Friday  17 October 2008 at 13:08</a>		</div>

		<p>very nice. thanks molly.</p>

		<div class="reply">
				</div>
				</div>
		</li>
		<li class="comment odd alt thread-odd thread-alt depth-1" id="comment-2119950">
				<div id="div-comment-2119950" class="comment-body">
				<div class="comment-author vcard">
		<img alt='' src='http://1.gravatar.com/avatar/3d1ffe2cde56d55ca021c7335292094f?s=32&amp;d=http%3A%2F%2Fwww.molly.com%2Fwp%2Fwp-includes%2Fimages%2Fblank.gif&amp;r=R' class='avatar avatar-32 photo' height='32' width='32' />		<cite class="fn"><a href='http://www.tvizleyelim.com' rel='external nofollow' class='url'>tv izle</a></cite> <span class="says">says:</span>		</div>

		<div class="comment-meta commentmetadata"><a href="http://www.molly.com/2007/12/28/best-bets-for-browser-bug-bashing/comment-page-1/#comment-2119950">
			Tuesday  28 October 2008 at 12:35</a>		</div>

		<p>thanks</p>

		<div class="reply">
				</div>
				</div>
		</li>
	</ol>

	<div class="navigation">
		<div class="alignleft"></div>
		<div class="alignright"></div>
	</div>
 


</div>

<!-- start of footer include -->
<div id="footer"> Molly&#174; is a registered trademark of <a href="mailto:molly@molly.com">Molly E. Holzschlag</a>.<br />
Powered by <a href="http://wordpress.org"><strong>WordPress</strong></a>
</div>
<!-- end of footer include -->

</div>
<!-- end content -->

<!-- begin sidebar division -->
<div id="sidebar"> 

<!-- start of localnav -->
<div id="localnav"> 

<!-- start of search include -->

<form id="searchbox" method="get" action="/index.php">
<fieldset>
<legend>search</legend>
<label for="s">search:</label>
<input type="text" class="form" name="s" id="s" size="15" />
<input type="submit" id="search" name="submit" value="go" />
</fieldset>
</form>

<!-- end of search include -->

<div id="butterfly">
<h3>Recent</h3>
<ul>
 	<li><a href='http://www.molly.com/2010/01/05/bob-dylan-meets-html5/' title='Bob Dylan Meets HTML5'>Bob Dylan Meets HTML5</a></li>
	<li><a href='http://www.molly.com/2010/01/05/shine-on-brad/' title='Shine On, Brad'>Shine On, Brad</a></li>
	<li><a href='http://www.molly.com/2009/10/13/czech-interview-published-as-i-journey-to-prague/' title='Czech Interview Published as I Journey to Prague'>Czech Interview Published as I Journey to Prague</a></li>
	<li><a href='http://www.molly.com/2009/09/29/why-bottom-posting-sucks/' title='Why Bottom Posting Sucks'>Why Bottom Posting Sucks</a></li>
	<li><a href='http://www.molly.com/2009/09/29/the-painter-the-shoemaker/' title='The Painter, The Shoemaker'>The Painter, The Shoemaker</a></li>
</ul>
</div>


<h3>Flickr</h3>
<div id="flickr">
<script type="text/javascript">
<!-- 

flickr_badge_width = "120px";
flickr_badge_image_border = "1px solid #000000";
flickr_badge_link_color = "#000000";

//-->
</script>
<script type="text/javascript" src="http://www.flickr.com/badge_code.gne?nsid=26015483@N00&amp;count=5&amp;display=latest&amp;name=0&amp;size=square"></script>
</div>


<h3>Archives</h3>
<ul>
	<li><a href='http://www.molly.com/2010/01/' title='January 2010'>January 2010</a></li>
	<li><a href='http://www.molly.com/2009/10/' title='October 2009'>October 2009</a></li>
	<li><a href='http://www.molly.com/2009/09/' title='September 2009'>September 2009</a></li>
	<li><a href='http://www.molly.com/2009/08/' title='August 2009'>August 2009</a></li>
	<li><a href='http://www.molly.com/2009/07/' title='July 2009'>July 2009</a></li>
	<li><a href='http://www.molly.com/2009/06/' title='June 2009'>June 2009</a></li>
	<li><a href='http://www.molly.com/2009/05/' title='May 2009'>May 2009</a></li>
	<li><a href='http://www.molly.com/2009/04/' title='April 2009'>April 2009</a></li>
	<li><a href='http://www.molly.com/2009/03/' title='March 2009'>March 2009</a></li>
	<li><a href='http://www.molly.com/2009/02/' title='February 2009'>February 2009</a></li>
	<li><a href='http://www.molly.com/2009/01/' title='January 2009'>January 2009</a></li>
	<li><a href='http://www.molly.com/2008/12/' title='December 2008'>December 2008</a></li>
	<li><a href='http://www.molly.com/2008/11/' title='November 2008'>November 2008</a></li>
	<li><a href='http://www.molly.com/2008/10/' title='October 2008'>October 2008</a></li>
	<li><a href='http://www.molly.com/2008/09/' title='September 2008'>September 2008</a></li>
	<li><a href='http://www.molly.com/2008/08/' title='August 2008'>August 2008</a></li>
	<li><a href='http://www.molly.com/2008/07/' title='July 2008'>July 2008</a></li>
	<li><a href='http://www.molly.com/2008/06/' title='June 2008'>June 2008</a></li>
	<li><a href='http://www.molly.com/2008/05/' title='May 2008'>May 2008</a></li>
	<li><a href='http://www.molly.com/2008/04/' title='April 2008'>April 2008</a></li>
	<li><a href='http://www.molly.com/2008/03/' title='March 2008'>March 2008</a></li>
	<li><a href='http://www.molly.com/2008/02/' title='February 2008'>February 2008</a></li>
	<li><a href='http://www.molly.com/2008/01/' title='January 2008'>January 2008</a></li>
	<li><a href='http://www.molly.com/2007/12/' title='December 2007'>December 2007</a></li>
	<li><a href='http://www.molly.com/2007/11/' title='November 2007'>November 2007</a></li>
	<li><a href='http://www.molly.com/2007/10/' title='October 2007'>October 2007</a></li>
	<li><a href='http://www.molly.com/2007/09/' title='September 2007'>September 2007</a></li>
	<li><a href='http://www.molly.com/2007/08/' title='August 2007'>August 2007</a></li>
	<li><a href='http://www.molly.com/2007/07/' title='July 2007'>July 2007</a></li>
	<li><a href='http://www.molly.com/2007/06/' title='June 2007'>June 2007</a></li>
	<li><a href='http://www.molly.com/2007/05/' title='May 2007'>May 2007</a></li>
	<li><a href='http://www.molly.com/2007/04/' title='April 2007'>April 2007</a></li>
	<li><a href='http://www.molly.com/2007/03/' title='March 2007'>March 2007</a></li>
	<li><a href='http://www.molly.com/2007/02/' title='February 2007'>February 2007</a></li>
	<li><a href='http://www.molly.com/2007/01/' title='January 2007'>January 2007</a></li>
	<li><a href='http://www.molly.com/2006/12/' title='December 2006'>December 2006</a></li>
	<li><a href='http://www.molly.com/2006/11/' title='November 2006'>November 2006</a></li>
	<li><a href='http://www.molly.com/2006/10/' title='October 2006'>October 2006</a></li>
	<li><a href='http://www.molly.com/2006/09/' title='September 2006'>September 2006</a></li>
	<li><a href='http://www.molly.com/2006/08/' title='August 2006'>August 2006</a></li>
	<li><a href='http://www.molly.com/2006/07/' title='July 2006'>July 2006</a></li>
	<li><a href='http://www.molly.com/2006/06/' title='June 2006'>June 2006</a></li>
	<li><a href='http://www.molly.com/2006/05/' title='May 2006'>May 2006</a></li>
	<li><a href='http://www.molly.com/2006/04/' title='April 2006'>April 2006</a></li>
	<li><a href='http://www.molly.com/2006/03/' title='March 2006'>March 2006</a></li>
	<li><a href='http://www.molly.com/2006/02/' title='February 2006'>February 2006</a></li>
	<li><a href='http://www.molly.com/2006/01/' title='January 2006'>January 2006</a></li>
	<li><a href='http://www.molly.com/2005/12/' title='December 2005'>December 2005</a></li>
	<li><a href='http://www.molly.com/2005/11/' title='November 2005'>November 2005</a></li>
	<li><a href='http://www.molly.com/2005/10/' title='October 2005'>October 2005</a></li>
	<li><a href='http://www.molly.com/2005/09/' title='September 2005'>September 2005</a></li>
	<li><a href='http://www.molly.com/2005/08/' title='August 2005'>August 2005</a></li>
	<li><a href='http://www.molly.com/2005/07/' title='July 2005'>July 2005</a></li>
	<li><a href='http://www.molly.com/2005/06/' title='June 2005'>June 2005</a></li>
	<li><a href='http://www.molly.com/2005/05/' title='May 2005'>May 2005</a></li>
	<li><a href='http://www.molly.com/2005/04/' title='April 2005'>April 2005</a></li>
	<li><a href='http://www.molly.com/2005/03/' title='March 2005'>March 2005</a></li>
	<li><a href='http://www.molly.com/2005/02/' title='February 2005'>February 2005</a></li>
	<li><a href='http://www.molly.com/2005/01/' title='January 2005'>January 2005</a></li>
	<li><a href='http://www.molly.com/2004/12/' title='December 2004'>December 2004</a></li>
	<li><a href='http://www.molly.com/2004/11/' title='November 2004'>November 2004</a></li>
	<li><a href='http://www.molly.com/2004/10/' title='October 2004'>October 2004</a></li>
	<li><a href='http://www.molly.com/2004/09/' title='September 2004'>September 2004</a></li>
	<li><a href='http://www.molly.com/2004/08/' title='August 2004'>August 2004</a></li>
	<li><a href='http://www.molly.com/2004/07/' title='July 2004'>July 2004</a></li>
	<li><a href='http://www.molly.com/2004/06/' title='June 2004'>June 2004</a></li>
	<li><a href='http://www.molly.com/2004/05/' title='May 2004'>May 2004</a></li>
	<li><a href='http://www.molly.com/2004/04/' title='April 2004'>April 2004</a></li>
	<li><a href='http://www.molly.com/2004/03/' title='March 2004'>March 2004</a></li>
	<li><a href='http://www.molly.com/2004/02/' title='February 2004'>February 2004</a></li>
	<li><a href='http://www.molly.com/2004/01/' title='January 2004'>January 2004</a></li>
	<li><a href='http://www.molly.com/2003/12/' title='December 2003'>December 2003</a></li>
	<li><a href='http://www.molly.com/2003/11/' title='November 2003'>November 2003</a></li>
	<li><a href='http://www.molly.com/2003/10/' title='October 2003'>October 2003</a></li>
	<li><a href='http://www.molly.com/2003/09/' title='September 2003'>September 2003</a></li>
	<li><a href='http://www.molly.com/2003/08/' title='August 2003'>August 2003</a></li>
</ul>

<p><a href="http://molly.com/archive-july2003.php">Past archives</a></p>



<h3>Subscribe to Molly.Com</h3>
<p class="rss">You can subscribe using <a href="http://www.molly.com/feed/rss/" title="Syndicate this site using RSS"><abbr title="Really Simple Syndication">RSS</abbr> 2.0</a> or <a href="http://molly.com/feed/atom/">Atom</a>. </p>

</div>
<!-- end of localnav -->
</div>
<!-- end of sidebar -->

<!-- start of ephemera include -->
<div id="ephemera" style="margin-top: -12px"> 

<h3>Upcoming Travels</h3>

<div id="tripit-badge"><script type="text/javascript" src="http://www.tripit.com/account/badge/id/4D831A59C59B6DE46AEF6143E6FA8364/div_id/tripit-badge/badge.js"></script><noscript><a href="http://www.tripit.com/">TripIt - Organize your travel</a></noscript></div>


</div>
<!-- end of ephemera include -->
</div>
<!-- end of container -->

<!-- begin analytics -->

<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>

<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-4445796-1");
pageTracker._initData();
pageTracker._trackPageview();
</script>
<!-- end analytics -->

</body>
</html>
