views:

474

answers:

4

Hi

I have built a site in wordpress and the home page is really screwed up in IE, but works fine in FF, Chrome and Safari.

I have a conference call in 5 hours and I need it to be fixed and would be very grateful if someone could help.

The site is http://www.fullygreen.com and the core issues are:-

  1. red box around first menu item
  2. menu pushed to the right and items missing
  3. tabs in tab box all squashed up
  4. sidebar appears underneath tabs instead of to the side

All other pages appear fine in terms of the menu / header layout.

Thanks in advance

Jonathan

+5  A: 

Try this in your header

<!--[if lt IE 8]>
<script src="http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE8.js" type="text/javascript"></script>
<![endif]-->

What it does is fix many of IE's CSS bugs and limitations. I use it on all my sites and it often saves days of work chasing down IE's MANY rendering problems.

Home Page of IE7-js

If this solves your problem and you still want to donate give it to Dean Edwards, the man behind the script: http://dean.edwards.name/donate/

UPDATE: Just looked at your source code and noticed this naughtiness:

<script type="text/javascript" src="http://www.fullygreen.com/wp-content/themes/fully-green/js/jquery-1.2.1.pack.js"&gt;&lt;/script&gt;
<script type="text/javascript" src="http://www.fullygreen.com/wp-content/themes/fully-green/js/jquery-easing.1.2.pack.js"&gt;&lt;/script&gt;
<script type="text/javascript" src="http://www.fullygreen.com/wp-content/themes/fully-green/js/jquery-easing-compatibility.1.2.pack.js"&gt;&lt;/script&gt;
<script type="text/javascript" src="http://www.fullygreen.com/wp-content/themes/fully-green/js/coda-slider.1.1.1.js"&gt;&lt;/script&gt;

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US">

That's going to cause IE to go into hasLayout mode (aka, non-standard mode). Get that doctype up onto the FIRST line (no whitespace or other tags before it) or you're going to see all kinds of crazy bugs.

SpliFF
this looks cool. must try.
Arnis L.
Not just cool, I would say essential. it has saved me thousands of dollars in development costs. I tend to find IE fixes require about 8-20 hours per website, depending on layout complexity and site size. I estimate I've saved over 200 hours total over 4 years of using it.
SpliFF
That works if you have good, solid, working code that you just need to clean up the IE issues. This code has basic html problems.
Emily
yeah, you beat me to the DOCTYPE thing, anyway it's hard to get standards compliant CSS when your (X)HTML is not valid. Use the w3c validator to catch the most serious errors (ignore the warnings since you're on a tight schedule).
SpliFF
+4  A: 

To fix the position of the navigation menu, add clear:left to #wrapper1

#wrapper1 {
position:relative;
text-align:left;
padding-top:20px;
padding-left:5px;
clear:left;
}

Change the top value for all inner divs to 0

#mnufghome {
position:absolute;
top: 0;
left: 0px;
}


I just looked at your source, the DOCTYPE declaration must be the first thing in the HTML file. You have some javascript includes. Not having a DOCTYPE or having an invalid DOCTYPE throws IE into quirks mode and it goes crazy.

You also have a javascript error in function introshowtabs()


In the sidebar, your image is bursting out of the rounded corners because your image is 250px wide but your containing div (#sidebarads) is only 240px wide. IE will expand a container to fit what it contains.

None of your rounded corners are centered in the gray because IE6 is in quirks mode.


This is the problem for the red border around the first menu item (around line 546 in style.css):

a.current.fghome { width:130px; background: url(images/menu/sel_home.jpg) left top no-repeat; border: 3px red solid; }

Remove the border: 3px red solid;

Emily
+1 good answers, you certainly know what you are talking about!
Michiel
+1  A: 

Here are some answers to the 4 questions:

Question 1: The stylesheet includes a 3px boder in style.css like Emily points out and the html code contains an error, the double quote is on the wrong side after onclick: >"

<a class="fghome" href="/home" title="fg home"alt="fg home" onclick="menuselected(1)>"</a>

Question 2: You are better off changing your HTML structure slightly by moving the wrapper1 DIV outside the header DIV.

<div class="span-24" id="wrapper">
  <div class="span-24" id="header">
    <div id="headerimage"><img alt="" src="http://www.fullygreen.com/wp-content/themes/fully-green/images/icons/hp_icon.jpg"/&gt;&lt;/div&gt;
    <div id="logo"><img title="fully green" src="http://www.fullygreen.com/wp-content/themes/fully-green/images/hp_logo.png"/&gt;&lt;/div&gt;
  </div>
  <div id="wrapper1">
    <div id="mnufghome"> <a onclick="menuselected(1)" alt="fg home" title="fg home" href="/home" class="fghome" /></div>
    <div id="mnufgstory"> <a alt="fg story" title="fg story" href="/story" class="fgstory" /></div>
    <div id="mnufgprojects"> <a alt="fg projects" title="fg projects" href="/projects" class="fgprojects" /></div>
    <div id="mnufgnews"> <a alt="fg news" title="fg news" href="/news" class="fgnews" /></div>
    <div id="mnufgpeople"> <a alt="fg people" title="fg people" href="/people" class="fgpeople" /></div>
    <div id="mnufgabout"> <a alt="fg contact" title="fg contact" href="/contact" class="fgabout" /></div>
  </div>
</div>

And some style changes in style.css:

#header {
background: url(images/header.jpg) no-repeat top center;
height: 110px;
}

#mnufgprojects {
float: left;
width: 170px;
}

#mnufgstory {
float: left;
width: 170px;
}

Similarly for the other navigation buttons...

Question 3.

Seems almost fixed with help of the other answers like the position of the JS includes.

Question 4.

Could not discover the problem from your question and by looking at your site.

Hope this and the other answers will help you get things fixed in IE on time. Good luck!

Michiel
Thanks very, very much to ALL who have helped - I'm well on the way to a fix.
Jonathan Lyon
A: 

So you don't have to do anything IE8 specific, throw that compatibility meta tag in your page:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" >

You should be able to use EmulateIE6 instead if need be.

Brent Baisley