CSS Position bringt Menü durch einander...

Darian

Erfahrenes Mitglied
Hallo Leute,

mein JS Menü das sich aufklappt, ist jetzt wegen einer CSS Eigenschaft immer ganz oben. Sollte aber neben dem Menü sein (siehe Foto)

Das Menü pickt also immer ganz am oberen Rand, obwohl es nebem dem anderen erscheinen sollte.

Wenn ich das position:absolute auskommentiere, passt es wieder.

Hier der HTML Code:

HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>SACBE - Mittelamerika Reisen</title>

<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">

<link rel="shortcut icon" href="http://sacbe/favicon.ico">

<link href="http://sacbe/css/style.css" rel="stylesheet" type="text/css" media="screen">

<script type="text/javascript" src="js/de_menu.js"></script></head>
<body>
	<div id="logo">

</div>
<div id="line1">
</div>

<div id="copyright">
	Besucher:<!-- Start of StatCounter Code -->
	<script type="text/javascript">
		var sc_project=3974619; 
		var sc_invisible=0; 
		var sc_partition=31; 
		var sc_click_stat=1; 
		var sc_security="4e09e153"; 
		var sc_text=2; 
	</script>
		<br>
	<br>
	Copyright Rene Meier 2008<br>

	Webdesign <a href="http://www.guate.ws">www.guate.ws</a>
</div>
<div id="language_box">
	<a href="http://sacbe/german">deutsche version</a> /
	<a href="http://sacbe/english">english version</a>
</div>
<div id="line2">
</div>
<img id="banner" src="http://sacbe/images/sacbestyle/banner.jpg">

<div id="content">

	
	<noscript>
		<p>Your need JavaScript for the menu, please activate it!</p>
	</noscript>	
	
	
	Deutsches Bild<br>

<img src="http://sacbe/images/startpage/map.jpg"></div>
	<input type="hidden" name="lang" value="de">
</body>
</html>

CSS:

HTML:
body {
margin:0px;
padding:0px;
margin-right:5px;
margin-bottom:5px;
background:url(../images/sacbestyle/greenline.jpg) repeat-y;
}

a:link, a:visited {
color:#000000;
font-size:11px;
text-decoration:none;
}

a:focus, a:hover, a:active {
color:#009999;
font-weight:bold;
}

#logo {
position:absolute;
top:0px;
left:10px;
width:151px;
height:161px;
margin-bottom:0px;
z-index:2;
background: url(../images/sacbestyle/logo.jpg) no-repeat;
}

#line1 {
position:absolute;
top:167px;
left:0px;
width:210px;
height:27px;
background-color:#649496;
}

#copyright {
position:absolute;
top:600px;
left:43px;
width:165px;
color:#666666;
font-size:10px;
}

#language_box {
position:absolute;
top:3px;
right:0px;
text-align:right;
margin-right:10px;
font-size:10px;
}

#copyright a:link, #copyright a:visited {
color:#666666;	
}

#line2 {
position:absolute;
top:22px;
left:166px;
right:8px;
height:26px;
background-color:#392562;
}

#banner {
position:absolute;
top:50px;
right:15px;
}

#content {
position:absolute;
top:120px;
right:5px;
}


Und falls noch jemand braucht, hier ein Link zum JS Menü:
JavaScript Menü

Ich habe es mit float:right probiert, was das selbe Ergebniss ist, aber auch dann funktioniert das Menü nicht richtig.

Weiss jetzt auch nicht wie ich es machen könnte, wäre super wenn ihr mir ein paar Denkanstösse geben könntet.

lg aus Guatemala
Darian
 

Anhänge

  • menu.jpg
    menu.jpg
    7,9 KB · Aufrufe: 54
Hallo @Darian

Ganz ehrlich:
Ich hab einen kurzen Blick auf die HTML, die CSS und die JS Datei geworfen.
Bitte poste einen Teil der relevant ist, denn ich helfe dir gerne, aber ich bin nicht gewillt mich da jetzt ewig rein zu lesen und die ganzen JS Funktionen durch zu gehen.
Bitte poste nur wesentliche Dinge, dann wird dir auch bestimmt lieber geholfen.

Nicht böse gemeint.
Grüße Simon
 
Hallo,

dachte nur weil ich selber nicht wusste woran es liegen könnte, habe ich mehr gepostet.

Wie soviel Code ist es mir nicht vorgekommen, und wegen JS, das weiss ich selber nicht was da relevant ist, und was nicht.

Hier dann der relevantere Code:
HTML:
#content {
position:absolute;
top:120px;
right:5px;
}

Wie kann ich das selbe machen, ohne dass position:absolute; zu brauchen, weil daran scheint es zu liegen.

lg aus Guatemala
Darian
 
Moin Darian,

Wenn ich das position:absolute auskommentiere, passt es wieder.

Versuche mal, das #content ohne Positionsangabe zu positionieren.
Das Menu(hab mir das ganze nicht weiter angeschaut :-( ) wird vermutlich auch mit absoluten Positionsangaben arbeiten.
Diese beziehen sich normalerweise auf den <body>, es sei denn, eines der Elternelemente wurde "positioniert".

Per margin-top und margin-left sollte das eigentlich gehen, da ja sonst alles absolut positioniert ist.

Ist aber nur nen Schuss ins Blaue :suspekt:
 
Naja aber ich meinte den JS Code, der viel ist ;)
Ich hab ihn jetzt nur mal überflogen, aber wie ich das sehe positioniert der Code die Felder schon absolut und pixelgenau.
Da ist es dann klar, dass wenn du den Boxen was anderes sagst, alles durcheinander kommt ;)

Wieso musst du absolute anstatt static verwenden ?
Gibt es da villeicht eine andere Lösung oder ein anderes Naviscript ;)
 
Ich habe es jetzt geschafft, habe alles ein wenig durch probiert, und mich weniger auf das CSS beschäftigt, sondern mir mehr das Script angeschaut.

Ich musste folgende Einstellung ändern:
HTML:
var MenuWrap=0;			// enables/ disables menu wrap 1 or 0
Jetzt geht es, weiss zwar nicht so genau was ich da gemacht habe, aber scheint zu passen.

Jedenfalls danke für eure Hilfe, und ich hoffe dass ich jetzt ein paar Stunden ohne große Probleme voran komme.

lg Darian
 
Hi,

ich hab das mal kopiert und Firebug angeworfen:

HTML:
<div id="content">
<noscript> <p>Your need JavaScript for the menu, please activate it!</p> </noscript>
Deutsches Bild
<br/>
<img src="http://sacbe/images/startpage/map.jpg"/>
</div>
<input type="hidden" value="de" name="lang"/>
<!-- Hauptmenü -->
<div style="position: absolute; visibility: visible; background-color: rgb(0, 0, 0); width: 167px; height: 379px; font-family: Tahoma,Verdana,Arial; font-weight: normal; font-style: normal; font-size: 10pt; z-index: 101; top: 212px; left: 43px;">
   <div style="overflow: hidden; position: absolute; visibility: inherit; cursor: pointer; color: rgb(0, 0, 0); background-color: rgb(224, 224, 224); text-align: left; width: 162px; height: 18px; padding-left: 3px; padding-top: 2px; left: 1px; top: 1px;">Aktuelle Rundreisen</div>
...
</div>
<!-- Unterpunkte -->
<div style="position: absolute; visibility: hidden; background-color: rgb(0, 0, 0); width: 82px; height: 211px; font-family: Tahoma,Verdana,Arial; font-weight: normal; font-style: normal; font-size: 10pt; z-index: 102; top: 0pt; left: 0pt;">
   <div style="overflow: hidden; position: absolute; visibility: inherit; cursor: pointer; color: rgb(0, 0, 0); background-color: rgb(224, 224, 224); text-align: left; width: 77px; height: 18px; padding-left: 3px; padding-top: 2px; left: 1px; top: 1px;">Länderinfo</div>
   <div style="overflow: hidden; position: absolute; visibility: inherit; cursor: pointer; color: rgb(0, 0, 0); background-color: rgb(224, 224, 224); text-align: left; width: 77px; height: 18px; padding-left: 3px; padding-top: 2px; left: 1px; top: 22px;">Karte</div>
...
</div>

Das ist ja ... fürchterbar ...
Das umschließende Div des Untermenüs bekommt onmouseover einen left-Wert von 176px und einen top-Wert von 0px zugewiesen. Da es direkt unter dem Body-Element liegt...

LG

EDIT: Ups, ich hab so lange gebraucht, das auf ein erträgliches Maß zu schneiden...
Darian, nimm das nächste Mal lieber ein CSS-Menü, das erspart Dir einiges. Du findest viele Beispiele dazu in der Linkliste dieses Forums. Außerdem hat es den Vorteil, dass Suchmaschinen nicht nur den "Bitte Javascript aktivieren"-Hinweis sehen. ;)
 
Zuletzt bearbeitet:
Passt danke für die Bemühungen. Das nächste mal wird es wirklich ein anderes Menü werden denke ich. Aber aufklappen ist ja leider nur mit JS möglich.

Aber danke, das nächste mal suche ich nach alternativen. Wie hast du das mit Firebug gemacht, hast du da ein paar Tips? Installiert habe ich es, aber irgendwie weiss ich nicht wie ich es anwende.

lg aus Guatemala
Darian
 
Hi,

Aber aufklappen ist ja leider nur mit JS möglich.

Na, das sieht z.B. Stu Nicholls ganz anders... ;)

Schau Dich mal im CSS-Unterforum "Resourcen" um.

Wie hast du das mit Firebug gemacht, hast du da ein paar Tips? Installiert habe ich es, aber irgendwie weiss ich nicht wie ich es anwende.

Hast Du's denn schon mal geöffnet? Unten rechts in der Statusleiste auf das Symbol klicken und Firebug aktivieren. Da kannst Du Dir dann die generierte HTML-Struktur anschauen (und vieles mehr). Spiel einfach mal damit rum.

LG
 

Neue Beiträge

Zurück