Menüproblem

Status
Nicht offen für weitere Antworten.

Pielo

Mitglied
Tagchen ich schon wieder. Es geht wieder ums Menü, aber diesmal ums Untermenü.

Ich wollte in meinen Menü so ein Efekt wie hier auf der Seite einbauen.

http://www.cssplay.co.uk/menus/slide_fly.html

nur mit den Unterschied das mein Menü mit Bildern gemacht ist, und das Untermenü ach mit Bilder sein soll. Es ist bei mir nur ein Untermenü mit zwei Punkten.

quasi so:

[Bild 1]
[Bild 2]
[Bild 3]
[Bild 4]
[Bild 5]
[Bild 5.1]
[Bild 5.2]
[Bild 6]
[Bild 7]

Jetzt zu meiner Frage. Ist das überhaupt zu realisieren?

Ich habe mir den Quellcode schon mal angesehn, aber da gibt es doch das ein oder ander was ich ncoh nicht so versteh. Hab es schon mal probiert in meine Seite einzubasteln, aber irgendwie haut das noch nicht so wirklich hin.

hier mal der bisherige Code für das Menü

html:

Code:
  <ul id="nav1">
    <li><a href="mich.html" id="mich" target="frame"><span>link 1</span></a></li>
    <li><a href="html.html" id="html" target="frame"><span>link 2</span></a></li>
    <li><a href="smileys.html" id="smileys" target="frame"><span>link 3</span></a></li>
    <li><a href="guides.html" id="guides" target="frame"><span>link 4</span></a></li>
    
    <li class="sub"> <a href="texte.html" id="textehaupt" target="frame"><!--[if gte IE 7]><!--></a><!--<![endif]-->
    	<!--[if lte IE 6]><table><tr><td><![endif]--><ul>
            <li><a href="texte.html" id="texte" target="frame"><span></span></a></li>
            <li><a href="gehirn.html" id="gehirn" target="frame"><span></span></a></li>
      </ul><!--[if lte IE 6]></td></tr></table></a><![endif]-->
    </li>
 
    <li><a href="musik.html" id="musik" target="frame"><span>link 6</span></a></li>
    <li><a href="http://..." id="gb" target="frame"><span>link 7</span></a></li>
    <li><a href="links.html" id="links" target="frame"><span>link 8</span></a></li>
  </ul>

CSS:

Code:
/* Link Einstellungen Menü-Button */

ul#nav1 {
margin:0;
padding:0;
list-style:none;
position: absolute;
top: 300px;
left: 30px;
}

ul#nav1 a {
display:block;
width:99px; 
height:57px;
margin: 0 0 0 0;
}


/* Bilder für die Links inkl Efekt */

/* link_1 (mich) */
ul#nav1 li a#mich:link, ul#nav1 li a#mich:visited {
background-image:url(Page_neu/mich-off.gif);  
}
 
ul#nav1 li a#mich:hover {
background-image:url(Page_neu/mich-off.gif); 
}

ul#nav1 li a#mich:active, ul#nav1 li#current a#mich {
background-image:url(Page_neu/mich-on.gif); 
}


/* link_2 (html) */
ul#nav1 li a#html:link, ul#nav1 li a#html:visited {
background-image:url(Page_neu/html-off.gif); 
}
ul#nav1 li a#html:hover {
background-image:url(Page_neu/html-off.gif); 
}
ul#nav1 li a#html:active, ul#nav1 li#current a#html {
background-image:url(Page_neu/html-on.gif); 
}

/* link_3 (Smileys) */
ul#nav1 li a#smileys:link, ul#nav1 li a#smileys:visited {
background-image:url(Page_neu/smileys-off.gif); 
}
ul#nav1 li a#smileys:hover {
background-image:url(Page_neu/smileys-off.gif); 
}
ul#nav1 li a#smileys:active, ul#nav1 li#current a#smileys {
background-image:url(Page_neu/smileys-on.gif);  
}  
    
/* link_4 (guides) */
ul#nav1 li a#guides:link, ul#nav1 li a#guides:visited {
background-image:url(Page_neu/guides-off.gif); 
}
ul#nav1 li a#guides:hover {
background-image:url(Page_neu/guides-off.gif); 
}
ul#nav1 li a#guides:active, ul#nav1 li#current a#guides {
background-image:url(Page_neu/guides-on.gif);  
}  
        
/* link_5 (texte) */
ul#nav1 li a#textehaupt:link, ul#nav1 li a#textehaupt:visited {
background-image:url(Page_neu/texte-off.gif); 
}
ul#nav1 li a#textehaupt:hover {
background-image:url(Page_neu/texte-off.gif); 
}
ul#nav1 li a#textehaupt:active, ul#nav1 li#current a#textehaupt {
background-image:url(Page_neu/texte-on.gif); 
}  
            
/* link_6 (musik) */
ul#nav1 li a#musik:link, ul#nav1 li a#musik:visited {
background-image:url(Page_neu/musik-off.gif); 
}
ul#nav1 li a#musik:hover {
background-image:url(Page_neu/musik-off.gif); 
}
ul#nav1 li a#musik:active, ul#nav1 li#current a#musik {
background-image:url(Page_neu/musik-on.gif); 
}  
               
/* link_7 (book) */
ul#nav1 li a#gb:link, ul#nav1 li a#gb:visited {
background-image:url(Page_neu/book-off.gif); 
}
ul#nav1 li a#gb:hover {
background-image:url(Page_neu/book-off.gif); 
}
ul#nav1 li a#gb:active, ul#nav1 li#current a#book {
background-image:url(Page_neu/book-on.gif); 
}   
    
/* link_8 (links) */
ul#nav1 li a#links:link, ul#nav1 li a#links:visited {
background-image:url(Page_neu/links-off.gif); 
}
ul#nav1 li a#links:hover {
background-image:url(Page_neu/links-off.gif); 
}
ul#nav1 li a#links:active, ul#nav1 li#current a#links {
background-image:url(Page_neu/links-on.gif);  
}   

/* Untermenü 

 Link Texte */
 
 
ul#nav1 li a#texte:link, ul#nav1 li a#texte:visited {
background-image:url(Page_neu/storys.gif); 
}
ul#nav1 li a#texte:hover {
background-image:url(Page_neu/storys.gif); 
}
ul#nav1 li a#texte:active, ul#nav1 li#current a#texte {
background-image:url(Page_neu/storys.gif); 
}

/* Link Gehirn  */

ul#nav1 li a#gehirn:link, ul#nav1 li a#links:visited {
background-image:url(Page_neu/Gehirn.gif); 
}
ul#nav1 li a#gehirn:hover {
background-image:url(Page_neu/Gehirn.gif); 
}
ul#nav1 li a#gehirn:active, ul#nav1 li#current a#links {
background-image:url(Page_neu/Gehirn.gif); 
}

Ich hab leider noch nicht gepeillt wo bzw. was die Funkion ist die das hoch und runter fahren lässt, und wie es geht das das Untermenü kommt und wieder geht. Also wie du dir sicher denken kannst wenn du das so liest ist das Untermenü einfach mit in der Reihe eingereit.

Wäre lieb wenn mir jemand mal einen kleinen Tip geben könnte wo ich mir in der Beziehung noch paar Tips holen könnte oder vielleicht kann auch hier sich jemand die Mühe machen und mir hier etwas dazu erklären.

***lg Pielo***
 
Hi,

die Submenüs sind zu Beginn des Seitenaufrufs mit left:-9999px außerhalb des Anzeigebereichs positioniert:

Code:
#menu ul,
#menu :hover ul ul,
#menu :hover ul :hover ul ul {position:absolute; left:-9999px; width:150px;}
und werden beim Überfahren der jeweiligen Menüpunkte in den sichtbaren Bereich positioniert.

Erste Submenü-Ebene:

Code:
#menu :hover ul {position:static; height:180px; margin-top:-1px; background:#383838;}

Zweite und dritte Submenü-Ebene:

Code:
#menu :hover ul :hover ul :hover ul {display:block; position:absolute; left:130px; top:0; height:auto; z-index:500; border:1px solid #fff;}
Ich wüsste jetzt nicht, weshalb du da in den Submenüs keine Grafiken verwenden könntest, denn beispielsweise die gelben Pfeile sind ja auch als Hintergrundbild definiert.

Wenn du aber nur eine einzige Submenü-Ebene für "Menüpunkt 5" benötigst, warum suchst du dir dann nicht ein passenderes, sprich abgespeckteres Beispiel heraus, wie z.B. http://www.cssplay.co.uk/menus/vertical-concertina.html oder http://www.cssplay.co.uk/menus/vertical_slide.html, denn mehr als die Hälfte des HTML- und CSS-Codes wäre aus diesem Menü absolut überflüssig, und verwirrt dich offensichtlich unnötigerweise doppelt.

mfg Maik
 
Vielleicht ist es in deinem Fall ratsam, sich erstmal in einem (deutschsprachigen) Tutorial die Basics und Funktionsweise einer CSS-Listennavigation anzueignen, bevor man sozusagen von null auf hundert in Stu Nicholls' komplexen CSS-Menüs einsteigt, die i.d.R. von ihm unkommentiert, also ohne "Gebrauchsanleitung" veröffentlicht werden.

Da bedarf es dann schon fundierter CSS-Kenntnisse, um an dem Code individuelle Änderungen vorzunehmen.

mfg Maik
 
Ja du hast recht ich werd mir mal die Basics durchlesen. Weil ich gerade nicht wirklich den gewünschten Efekt habe, wenn ich ehrlich bin bin ich kein Schritt weiter, auser das es jetzt noch kurioser aussieht. Aber es bewegt sich schon mal :D . aber leider auch alle anderen Links in der Reihe :confused: . Naja mal sehn das die Basics mir so vermitteln.

Danke wiedermal für deine hilfe, ich werd wenn ich trotzdem nciht weiterkomm mich noch mal hier in diesen Thema melden.

***lg Pielo***
 
Tagchen, ich noch mal. Nach dem ich die halbe Nacht gelesen und probiert hab bin ich meiner meinung nach schon gut vorran gekommen (find ich zumindest). Habe den Code bissl gekürtzt und das was ich denke was ich nciht brauche rausgeschmissen. Ich komme der Sache eigendlcih schon gut nähr.

Meine jetzt noch vorhandenen Probleme sind:

- das sich alle Links nach unten schieben wenn ich mit der Maus drüber fahr
- das wenn ich auf das Submenü gehn will muss ich übels schnell sein sonnst geht es
wieder zu (auser im FF)
- und das der zweite Punkt des Submenü nicht da ist, und die Grafig des Links ist über
den letzten Link

Hier mal mein Code:

CSS:

Code:
ul#nav1 {padding:0; margin:0; list-style:none; width:150px; height:500px; border:0px; position:relative; overflow:hidden;} /* Algemeine Einstellung des Navi */
ul li div {position:absolute; left:-9999px;} /* Kasten am Untermenü */
#nav1 li.top {height:55px; width:150px; float:center;} /* Der Kasten ist im vordergrund und und der abstand zwischen Text und Musik link*/
#nav1 li:hover {height:175px;} /* Spalte beim hover */
#nav1 li:hover div {position:static; height:100px; width:100px; padding:1px;  font-family: verdana, sans-serif;}
#nav1 div img {display:block; margin:0 0 0 0;}


/* link_1 (mich) */
ul#nav1 li a#mich:link, ul#nav1 li a#mich:visited {
background-image:url(Page_neu/mich-off.gif);  
}
 
ul#nav1 li a#mich:hover {
background-image:url(Page_neu/mich-off.gif); 
}

ul#nav1 li a#mich:active, ul#nav1 li#current a#mich {
background-image:url(Page_neu/mich-on.gif); 
}


/* link_2 (html) */
ul#nav1 li a#html:link, ul#nav1 li a#html:visited {
background-image:url(Page_neu/html-off.gif); 
}
ul#nav1 li a#html:hover {
background-image:url(Page_neu/html-off.gif); 
}
ul#nav1 li a#html:active, ul#nav1 li#current a#html {
background-image:url(Page_neu/html-on.gif); 
}

/* link_3 (Smileys) */
ul#nav1 li a#smileys:link, ul#nav1 li a#smileys:visited {
background-image:url(Page_neu/smileys-off.gif); 
}
ul#nav1 li a#smileys:hover {
background-image:url(Page_neu/smileys-off.gif); 
}
ul#nav1 li a#smileys:active, ul#nav1 li#current a#smileys {
background-image:url(Page_neu/smileys-on.gif);  
}  
    
/* link_4 (guides) */
ul#nav1 li a#guides:link, ul#nav1 li a#guides:visited {
background-image:url(Page_neu/guides-off.gif); 
}
ul#nav1 li a#guides:hover {
background-image:url(Page_neu/guides-off.gif); 
}
ul#nav1 li a#guides:active, ul#nav1 li#current a#guides {
background-image:url(Page_neu/guides-on.gif);  
}  
        
/* link_5 (texte) */
ul#nav1 li a#textehaupt:link, ul#nav1 li a#textehaupt:visited {
background-image:url(Page_neu/texte-off.gif); 
}
ul#nav1 li a#textehaupt:hover {
background-image:url(Page_neu/texte-off.gif); 
}
ul#nav1 li a#textehaupt:active, ul#nav1 li#current a#textehaupt {
background-image:url(Page_neu/texte-on.gif); 
}  
            
/* link_6 (musik) */
ul#nav1 li a#musik:link, ul#nav1 li a#musik:visited {
background-image:url(Page_neu/musik-off.gif); 
}
ul#nav1 li a#musik:hover {
background-image:url(Page_neu/musik-off.gif); 
}
ul#nav1 li a#musik:active, ul#nav1 li#current a#musik {
background-image:url(Page_neu/musik-on.gif); 
}  
               
/* link_7 (book) */
ul#nav1 li a#gb:link, ul#nav1 li a#gb:visited {
background-image:url(Page_neu/book-off.gif); 
}
ul#nav1 li a#gb:hover {
background-image:url(Page_neu/book-off.gif); 
}
ul#nav1 li a#gb:active, ul#nav1 li#current a#book {
background-image:url(Page_neu/book-on.gif); 
}   
    
/* link_8 (links) */
ul#nav1 li a#links:link, ul#nav1 li a#links:visited {
background-image:url(Page_neu/links-off.gif); 
}
ul#nav1 li a#links:hover {
background-image:url(Page_neu/links-off.gif); 
}
ul#nav1 li a#links:active, ul#nav1 li#current a#links {
background-image:url(Page_neu/links-on.gif);  
}   

/* Untermenü 

 Link Texte */
 
 
ul#nav1 li a#texte:link, ul#nav1 li a#texte:visited {
background-image:url(Page_neu/Storys.gif); 
}
ul#nav1 li a#texte:hover {
background-image:url(Page_neu/Storys.gif); 
}
ul#nav1 li a#texte:active, ul#nav1 li#current a#texte {
background-image:url(Page_neu/Storys.gif); 
}

/* Link Gehirn  */

ul#nav1 li a#gehirn:link, ul#nav1 li a#links:visited {
background-image:url(Page_neu/Gehirn.gif); 
}
ul#nav1 li a#gehirn:hover {
background-image:url(Page_neu/Gehirn.gif); 
}
ul#nav1 li a#gehirn:active, ul#nav1 li#current a#links {
background-image:url(Page_neu/Gehirn.gif); 
}


html

Code:
  <ul id="nav1">
    <li><a href="mich.html" id="mich" target="frame"><span>link 1</span></a></li>
    <li><a href="html.html" id="html" target="frame"><span>link 2</span></a></li>
    <li><a href="smileys.html" id="smileys" target="frame"><span>link 3</span></a></li>
    <li><a href="guides.html" id="guides" target="frame"><span>link 4</span></a></li>
 
	<li class="top"><a class="outer" href="#url" id="textehaupt" ><!--[if gte IE 7]><!--></a><!--<![endif]-->
		
		<!--[if lte IE 6]><table><tr><td><![endif]-->
		<div>
		<a href="texte.html" id="texte" target="frame"><span>Texte</span></a>
		<a href="gehirn.html" id="gehirn" target="frame"><span>Gehirn</span></a>
		</div>
		<!--[if lte IE 6]></td></tr></table></a><![endif]-->
	</li>
    <li><a href="musik.html" id="musik" target="frame"><span>Musik</span></a></li>
    <li><a href="http://www.flf-book.de/Benutzer/Pielo.htm" id="gb" target="frame"><span>GB</span></a></li>
    <li><a href="links.html" id="links" target="frame"><span>Links</span></a></li>
  </ul>

Wär lieb wenn du mir noch mal den ein oder anderen kleinen Tip geben könntest. Dein Link von gestern war wirklich sehr interessant.
 
Sorry hat ich vergessen zu erwähnen, ja als du gestern gesagt hast das ich mir die mal ansehn soll, weil die vom Aufbau her nicht so komplitziert und umfangreicht wie das andere ist hab ich mir das dann mal getan und dir voll zugestimmt.
Hast du schon ein oder anderen Fehler von mir entdeckt? (war jetzt sicher ne total dumme Frage)
 
Dass sich weiterhin alle Menüpunkte (li-Elemente) "öffnen", obwohl sie kein Submenü mehr enthalten, liegt schlichtweg an dieser Regel, mit der die li-Elemente beim Überfahren diese Höhe zugewiesen bekommen:

Code:
#nav1 li:hover {height:175px;} /* Spalte beim hover */
Abhilfe schafft da - vom Original-Menü ausgehend - folgende Ergänzung:

Code:
#nav1 li.top:hover {height:175px;} /* Spalte beim hover */
Im Menü rufst du diese Klasse dann nur noch in dem Listeneintrag li auf, der ein Submenü besitzt.

Wo hast du denn eigentlich diesen Wert aufgeschnappt?
Code:
#nav1 li.top {height:55px; width:150px; float:center;}

Für die float-Eigenschaft existieren nur diese Werte:

  • left
  • right
  • none
  • inherit

Was das Problem mit der Grafik betrifft, wäre hier zur Abwechslung ein Link zu deiner Seite ganz hilfreich, da ohne die eingebundenen Hintergrundbilder davon in dem Menü nix zu erkennen ist :)

mfg Maik
 
Wo hast du denn eigentlich diesen Wert aufgeschnappt?

Ja das hab ich eigendlich gestern gelesen das nur es nur die Werte gibt. Keine Ahnung was ich mir dabei gedacht hab :confused: (hab inherit draus gemacht)

Ich hab die Indexseite + Datein (naja zumindest ähnlichen Datein, weil die noch nicht so sind wie ich sie mir vorstell) jetzt mal hochgeladen.

Kannst ja mal auf den "Text"-Button gehn und wenn da der "Gehirn"-Button da ist klick mal drauf (dann geht er meistens weg und legt sich über den "Link"-Button ganz unten).

Und was auch komisch ist das schon ziemlcih weit rechts neben den Button das Submenü auf geht

LINK
 
Zuletzt bearbeitet:
Wenn ich das Original-Stylesheet in deine Seite einsetze, in deinem Menü die ID #nav1 gegen die ursprüngliche #slide austausche, und diese in dem ID-Selektor zur absoluten Positionierung des Menüs einsetze, wird das Submenü in allen Browsern anstandslos ein- und ausgeblendet.

Fazit: Beim Entfernen der deiner (unerfahrenen) Meinung nach überflüssigen Regeln aus dem originalen CSS-Code hast du wohl die eine oder andere entscheidende Regel in die Tonne gekloppt, die für die Funktionalität des Menüs erforderlich ist. Welche das ist / sind, kann ich dir jetzt aus dem Stand heraus auch nicht sagen, und die Zeit, jede Zeile der beiden Stylesheets miteinander zu vergleichen, hab ich auch nicht.

Augenscheinlich fehlt bei dir schon mal dieser Selektor
Code:
ul table {border-collapse:collapse; width:0; height:0; margin:-1px; padding:0;}
der den älteren IEs (bis IE6) gewidmet ist.

Ich sag mal, das Wochenende hat heute erst begonnen, und deinen gescheiterten Versuch, Stu Nicholls' komplexen CSS-Code auseinanderzunehmen, betrachten wir als "Warm-Up", also fang einfach nochmal von vorne an.

Nur diesmal solltest du es genau anders herum angehen, und deinen Quellcode in das bestehende Menü einbetten.

mfg Maik
 
Status
Nicht offen für weitere Antworten.
Zurück