En als je er dan eindelijk bent en 'alles' weet, dan is er wel weer iemand zo vriendelijk iets nieuws te ontwikkelen

Mooi dat 't geschikt is. Op die z-index kom ik zo, eerst even iets anders.
Goed, eerst maar even koffiegedronken. Zit ik 'n heel verhaal te typen over dat dit menu niet zo geschikt is omdat je zonder JavaScript geen links ziet, blijkt dat je er nog geen links in hebt zitten. Inmiddels dus wel enigszins wakker, geloof ik, grinnik. Ik was al verbaasd omdat jQuery goed bekend staat op dit gebied.
float, position, z-index en zo is even lastig in de vingers te krijgen, maar als je 't eenmaal 'n beetje door hebt is 't ongelooflijk flexibel en handig.
Dat 't menu verdwijnt heeft inderdaad met z-index te maken. De html wordt op het scherm gezet in de volgorde zoals die in de code staat. En div#content komt na div#header, dus wordt div#content over div#header gezet.
Daar komt nog bij dat ze beide 'n fixed positie hebben, wat o.a. inhoudt dat ze volkomen asociaal zijn en elkaar straal negeren. Oftewel: je menu verdwijnt vrolijk achter div#content, want die vertikt het om even ruimte te maken.
Als je nou aan div#header 'n z-index geeft van bijvoorbeeld 10, dan is het menu wel zichtbaar. Dus aan de css voor div#header toevoegen:
Je moet die z-index aan div#header toevoegen, omdat die op hetzelfde 'niveau' staat als div#content. Jouw code springt heel netjes in, daardoor kun je dat ook goed zien. Als je de z-index ergens aan 't menu toevoegt, werkt die alleen binnen div#header en niet ten opzichte van div#content. 'n z-index werkt altijd alleen maar ten opzichte van z'n broertjes en zusjes, om 't zomaar te zeggen.
Je kunt voor z-index elke waarde nemen, net hoe 't uitkomt. div#content heeft automatisch (dat is altijd zo) 'n z-index van 1, dus als 't maar hoger is dan 1, dan is 't goed.