css only dropline menü
[1] [2] [Letzte »]
| Autor | Nachricht | ||||
|
Verfasst am: 06.05.2008 [16:01]
|
|||||
| triskal [Themenersteller] dabei seit: 26.04.2006 Beiträge: 70 |
hallo, ich habe ein horizontales css-only-menü umgesetzt. es funktioniert derzeit wie in diesem beispiel: www.cssplay.co.uk/menus/dd_valid_2.html schöner wäre es aber nun, wenn die jeweiligen menüpunkte nach der anwahl aufgeklappt bleiben könnten. exakt so wie in folgendem beispiel: www.cssplay.co.uk/menus/simple_dropline.html ist ersichtlich was ich meine? stu verwendet ein php-skript um den current-<ul>s entsprechende css-klassen zuzweisen. das muss ich aber doch über TS lösen können, oder? meins sieht derzeit wie folgt aus:
start in kleinen schritten: ich möchte erstmal nur erreichen, dass die beim rollover angezeigten submenüs auch im angeklickten (rootline?-) zustand zu sehen sind. um die reaktion der submenü-links kümmer ich mich dann im zweiten schritt. kann mir hier jemand einen theoretischen ersten ansatz liefern? mein hirn ist noch so breit von der realisierung des jetzigen menü-zustands, dass ich gerade nicht mehr in der lage bin logisch und strukturiert zu denken... freu mich über jeden hinweis. danke und gruss, manuel[/TS] EDIT: gerne schiebe ich nach, dass das TS aus folgender quelle stammt: typo3.intervation.de/snippets/menues/drop-down-menu.html [Dieser Beitrag wurde 2 mal bearbeitet. Zuletzt am 06.05.2008 um 16:06] |
||||
![]() |
|||||
|
Verfasst am: 06.05.2008 [17:13]
|
|||||
| triskal [Themenersteller] dabei seit: 26.04.2006 Beiträge: 70 |
ich wieder, im prinzip muss ich das TS doch nur dazu bewegen mir folgenden HTML-code zu erzeugen:
wobei der obere block 'current' für aktuelle hauptmenü-einträge und der untere für die nicht-aktuellen hauptmenüeinträge erzeugt werden muss. aber wie das ganze gewrapt werden muss um genau das zu erreichen, dass schnall ich gerade einfach nicht... gruss, manuel |
||||
![]() |
|||||
|
Verfasst am: 07.05.2008 [03:18]
|
|||||
| Dirk1 dabei seit: 15.03.2007 Beiträge: 51 |
Hallo, ich mache das in der Art:
Es ensteht etwas in der Art: Die Listen sind also ineinander verschachtelt und auch die unsichtbaren immer da und können jederzeit über :hover sichtbar gemacht werden - oder eben über class "current". Für die innere Liste nehme ich nur aus praktischen Gründen <dl> (wegen der Unterscheidbarkeit). <ul> würde genau so gehen. Wie das menu nun genau aussieht ist Sache von CSS. Gruß Dirk [Dieser Beitrag wurde 2 mal bearbeitet. Zuletzt am 07.05.2008 um 03:32] |
||||
![]() ![]() |
|||||
|
Verfasst am: 08.05.2008 [11:35]
|
|||||
| triskal [Themenersteller] dabei seit: 26.04.2006 Beiträge: 70 |
hi dirk, vielen dank für deine schnelle antwort. ich melde mich erst jetzt, weil ich die letzten tage versucht habe, deinen vorschlag umzusetzen. es klappt insofern auch schon super, dass die submenüs wie gewünscht stehen bleiben. aber wie kann ich es steuern, dass sie ausgeblendet werden, wenn ich über andere hauptmenü-button rollover?! ist mein problem nachvollziehbar? es sieht so aus, als wenn ich hier einen css-denkfehler hätte. tut mir auch leid, hier css thematisieren zu müssen, aber da du so ein menü wie es scheint schon erfolgreich umgesetzt hast, würde ich an dieser stelle sehr gerne noch mal deine hilfe in anspruch nehmen. hier ein auszug des meines erachtens relevanten quelltextes:
die letzten zwei css-geschichten sind glaube ich relevant für meine problematik. prinzipiell müsste ich so etwas coden können:
aber das klappert leider nicht... kannst du mir sagen, wie du das gelöst hast? danke und gruss, manuel |
||||
![]() |
|||||
|
Verfasst am: 09.05.2008 [02:29]
|
|||||
| Dirk1 dabei seit: 15.03.2007 Beiträge: 51 |
Hallo Manuel, vielleicht wäre es besser, wenn du deine Operationen zur Sichtbarkeit nicht auf die einzelnen unterpunkte, sondern auf die komplette Liste anwenden würdest. Du willst doch dass das komplette Untermenu erscheint und verschwindet. Oder? Also z.B.
Das ist eigentlich schon das ganze Prinzip. das Ganze wirkt natürlich nur auf hierarchisch untergeordnete Bereiche. Effekte auf parallele Bereiche sind nicht möglich. Du kannst andere Bereiche höchstens überdecken. Das reicht aber für deinen Zweck, glaube ich. Dein Verstehe ich nicht. Das würde bedeuten deine Liste ist innerhalb des <a>-Tags. Das wäre aber kein valider HTML-Code - oder ist das für den IE6? Dafür hätte ich eine bessere Lösung. Gruß Dirk |
||||
![]() ![]() |
|||||
|
Verfasst am: 12.05.2008 [14:51]
|
|||||
| triskal [Themenersteller] dabei seit: 26.04.2006 Beiträge: 70 |
hi dirk, erneut bedanke ich mich für deine hilfe. das mit dem überdecken war der entscheidende hinweis. somit läuft das menü jetzt schonmal im firefox und ie7. wie genau sieht denn dein trick für den ie6 aus? arbeitest du wie stu mit den table-tags? ein weiteres problem besteht jedoch noch. und zwar ist per css doch ein li:hover genauso möglich wie ein a:hover, oder? aber genau das krieg ich nicht hin. beim rollover über einen hauptmenü-link wird das submenü angezeigt. versuche ich dann den mauszeiger dort hinzusteuern, verliert er den kontakt zum hauptmenü-link und das submenü verschwindet. es sind nur zwei, drei pixel die hier zwischen dem a-tag des hauptmenüs und der dl aus dem submenü fehlen. es sieht so aus, als wenn nur das a:hover zieht, nicht das li:hover. wie müssen a-, li- und hover-tags im hauptmenü css-technisch korrekt aufgebaut werden, damit das richtig funktioniert? danke und gruss, manuel |
||||
![]() |
|||||
|
Verfasst am: 12.05.2008 [15:37]
|
|||||
| Dirk1 dabei seit: 15.03.2007 Beiträge: 51 |
Hallo manuel, arbeitest du wie stu mit den table-tags? Tut er das wirklich? und zwar ist per css doch ein li:hover genauso möglich wie ein a:hover, oder? Aber leider nicht im IE6. Der kann das nur mit <a>-tags. Deshalb lösen viele das Problem, indem sie den fraglichen Bereich in ein <a> </a> verpacken. Das ist aber nicht HTML-konform. versuche ich dann den mauszeiger dort hinzusteuern, verliert er den kontakt zum hauptmenü-link und das submenü verschwindet. Ist das submenu html-mässig verschachtelt? <li class="menu-item"> <a ...>...</a> Unternmenu-elemente </li> ..erlaubt von dem aussen-liegenden <li> einen Zugriff auf das Untermenu. Aber nicht von <a> aus, da die beiden Blöcke NACHEINANDER kommen und nicht ineinander verschachtelt sind. Wenn du also W3C-konformen Code produzieren willst, kannst du beim <a> element als hover-Effekt nur Eigenschaften des <a>-Elementes selbst manipulieren. Also hover für das submenu nur über das aussen liegende <li>, oder was immer man da verwendet hat. Das kann aber IE6 wie gesagt nicht. Man kann es ihm aber beibringen mit einem htc-script, EINER Zeile (!) in der CSS-Datei und NULL Eingriff in HTML oder Typo3. Details verrate ich dir, wenn du dein Verfahren im Firefox und IE7 sauber zu laufen gebracht hast. Man kann sich aber auch auf den Standpunkt stellen, dass der IE6 dann eben nicht hovern kann - sozusagen als Anreiz zum Update. Deine Navigation sollte aber natürlich trotzdem funktionieren und daher auch nicht auf den hover -Effekt angewiesen sein. Gruß Dirk |
||||
![]() ![]() |
|||||
|
Verfasst am: 13.05.2008 [07:41]
|
|||||
| triskal [Themenersteller] dabei seit: 26.04.2006 Beiträge: 70 |
hi dirk, ok. in ff und ie7 funktioniert es soweit. hier der beweis: [LINK GELÖSCHT] verrätst du mir die 'zauber-css-zeile' für den ie6? danke und gruss, manuel |
||||
![]() |
|||||
|
Verfasst am: 13.05.2008 [13:14]
|
|||||
| Dirk1 dabei seit: 15.03.2007 Beiträge: 51 |
Gerne: Du erstellst eine Datei (Inhalt folgt am Ende), die du z.B. in folgender Weise über CSS referenzierst: body {behavior:url("fileadmin/hover.htc")} CSS-Validatoren meckern diese Zeile allerdings an. Vielleicht kann man das über Kommentar-Tricks (mit denen ich mich nicht beschäftigt habe) aber auch noch irgend wie hin bekommen. Denn es ist ja wirklich nur für IE6. Zu beachten ist allerdings noch, dass die Klassen mit dem voll qualifizierten Objekttyp angesprochen werden müssen. Also nicht #ml .. li:hover {..}, sondern div#ml .. li:hover {..} Funktioniert sonst nicht - daran bin ich mal fast einen vollen Tag verzweifelt. Was dir dann noch passieren kann, ist die Kollision mit Javascript. Ich hatte z.B. mit der Extension JW_Calendar das Problem, dass das menu immer so seltsam flackerte. Aber auch dafür gibts eine Lösung.
Gruß Dirk |
||||
![]() ![]() |
|||||
|
Verfasst am: 13.05.2008 [13:26]
|
|||||
| Dirk1 dabei seit: 15.03.2007 Beiträge: 51 |
Ich sehe gerade, dass es von dem script eine neue Version gibt: http://www.xs4all.nl/~peterned/htc/csshover.htc Vielleicht kannst du das ja mal auf Unterschiede (vielleicht geht jetzt auch #ml) überprüfen? Dirk [Dieser Beitrag wurde 1 mal bearbeitet. Zuletzt am 13.05.2008 um 13:27] |
||||
![]() ![]() |
|||||
[1] [2] [Letzte »]









