Question

i just went to test a website in firefox 4 (beta 10) and the horizontal menu is showing up vertically.

In chrome, the menu is horizontal like this: enter image description here

but in firefox 4 it shows up like this:

enter image description here

I am using the superfish horizontal menu. The examples on the website seems fine in firefox 4.

how would i begin to investigate if this is a bug in firefox 4 or is there something wrong with my horizontal menu code??

Was it helpful?

Solution

I don't think your problem is with superfish or the underlying suckerfish. A quick look indicates that <div id="title"> is floated to the left but the floats aren't cleared between that and <table id="menuHeader">. The #menuHeader table and hence the <ul> are positioned right beside #title in Firefox so the table doesn't get enough width for the floats to layout horizontally.

As a quick hack you can stuff a <br/> right before #menuHeader:

<br /><table id="menuHeader">

and you should see the Firefox problem go away. However, you should explicitly clear your floats somewhere sensible after #title and before #menuHeader. Clearing between #header and #flashwrapper seems appropriate:

<div id="header">
    <!--...-->
</div>
<div style="clear: both;"></div>
<div id="flashwrapper">
    <!--...-->
</div>

You might be able to use an overflow:hidden clear fix for this too but I tend to prefer explicit clearing even if it does pollute my HTML with styling information.

And as far as how to debug this sort of thing goes, the DOM inspector in WebKit browsers (such as Chrome and Safari) is freakin' awesome. Firebug's DOM inspector is also pretty good. In a case like this, you'll want to use them both concurrently. DOM inspectors, guess work, experience, and lots of swearing are my tools for figuring out things like this.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top