Hi,
I think that the problem that you had was that each level of the DOM had positioning associated with it and due to the way that inheritance is applied in each level the outcome was very different in each browser.
When designing the CSS start with broad strokes and then fine tune individual elements. Also keep checking in different browsers so that if discrepancies do occur then you know exactly what is causing them. Setting all padding and margins to 0 is something that I do whenever I am using CSS as it gives more control over the page across browsers, I also tend to remove borders from images that are children of anchors as by default they get a blue border.
I have (almost) managed to recreate the page which is standard across all browsers. For comparison the size of the CSS is under 2K compared to 35K. The only difference to the HTML is that the tabbed links at the top are now:
[HTML]
<li class="navbut4"><span> </span><a class="b" href="popular-news">Popular News</a></li>
<li class="navbut3"><a class="b" href="upcoming">Upcoming News</a></li>
<li class="navbut3"><a class="b" href="node/add/storylink">Submit News</a> </li>
[/HTML]
The classes are on the list items instead of the anchors, the span on the first tab has been moved outside of the anchor and the spans of the other tabs have been removed. The span has a space in it so that it does not collapse to nothing.
The CSS used is:
-
/*Remove all padding and margins*/
-
*{padding:0;margin:0;}
-
-
/*general styles according to element types*/
-
a img{border:none;}
-
li{list-style-type:none;}
-
body{background:transparent url(http://ebizontech.vpsland.com/menu_test/spreadfirefox/images/bg_head.gif) repeat-x;font-family:verdana, sans-serif;font-size:76%;}
-
-
/*general classes for repeated use*/
-
.b{font-weight:bold;}
-
.hide{display:none;}
-
-
-
#wrapper{width:950px;margin:0 auto;}
-
-
/* top image styles*/
-
#site-name{font-size:2.5em;}
-
#site-name *{color:#FFFFFF;text-decoration:none;}
-
-
/*tabbed navigation styles*/
-
.cab li{float:left;margin:0 0.5em;}
-
.cab a{padding:0 0.5em;position:relative;top:8px;color:#666666;}
-
.cab a:hover{color:#774525;}
-
.navbut4{background:transparent url(http://ebizontech.vpsland.com/menu_test/spreadfirefox/images/tabrightB.png) no-repeat top right;height:32px;}
-
.navbut4 span{background:transparent url(http://ebizontech.vpsland.com/menu_test/spreadfirefox/images/tableftB.png) no-repeat;height:32px;float:left;}
-
-
.navbut3{background:transparent url(http://ebizontech.vpsland.com/menu_test/spreadfirefox/images/tabrB2.png) no-repeat top right;height:32px;}
-
.navbut3 span{background:transparent url(http://ebizontech.vpsland.com/menu_test/spreadfirefox/images/tablB2.png) no-repeat;height:32px;float:left;}
-
.navbut3:hover{background:transparent url(http://ebizontech.vpsland.com/menu_test/spreadfirefox/images/tabrightB.png) no-repeat top right;}
-
-
/*navigation styles*/
-
#navbar{border-top:8px solid #F74594;background-color:#FFC3DE;padding:8px 0 8px 30px;clear:left;}
-
/* Hack for IE6 position*/
-
* html #navbar{padding-top:0;}
-
-
/*add bullets back to list item*/
-
#navbar li{list-style-type:disc;padding:0;margin:0;}
-
-
/*footer styles*/
-
#footer{border-top:1px solid #666666;text-align:center;font-size:0.8em;margin:2em 0;padding:1em 0;}
-
#footer *{color:#666666;}
-
The URLs for the images are absolute at present so these could be made relative again. The main differences in style are that the tabbed navigation does not overlap the site logo and that the tabs do not change background colour when hovered on in IE6. This is because IE6 only applies :hover to anchors, this could be corrected using javascript or adding more styling but as it works correctly in IE7 I would say that it acceptable as it is.
The tabs could be made to overlap the images, but this would start the issue of positioning and inheritance being applied differently so hacks would be required to make all browsers render the same.