Hi Wei Li,
That happens under .NET 4 because it now adds this javascript which sets some styles on the menu, if you view the source of your page you will see something like this near the bottom:
Sys.WebForms.Menu({ element: 'ctl00_SiteMenu1_ctl00', disappearAfter: 500, orientation: 'horizontal', tabIndex: 0, disabled: false });
I was able to fix menu display issues in included skins in the repository including the Mitchinson-earthy skins which use Superfish. I had to add different things to different skins to solve different issues, but what I had to add to stylemenu.css for mitchinsone-earthy was:
li.dynamic { position:static !important; visibility: visible !important; }
for others it was different settings to adjust bt always I had to use the !important to make my setting trump the hard coded settings that the javascript was adding.
There is also another way to fix it easily and that is in Web.config by changing the rendering compatibility to 3.5 instead of 4.0 in the controlRenderingCompatibilityVersion attribute.
<pages validateRequest="false" enableViewStateMac="false" viewStateEncryptionMode="Auto" maxPageStateFieldLength="100" controlRenderingCompatibilityVersion="4.0" clientIDMode="AutoID">
However, this affects more than just menus and defeats some of the value of using .NET 4, so it is much better if you can find a CSS solution and keep the rendering as 4.0
Hope it helps,
Joe