Thread Dynamisches Menü mit sichtbarem selektiertem Submenü (Kein JS, kein CSS, nur HTML)
(12 answers)
Opened by GwenDragon at 2009-01-16 17:18
Also ich würd' sowas komplett mit CSS lösen und dem aktiven Link eine Klasse zuweisen class="active".
Ein B Tag wird, genau wie der I oder der FONT Tag, heutzutage nicht mehr empfohlen zu benutzen, da die Darstellung der Elemente komplett das CSS übernimmt und die Elemente nur beschreiben benutzt werden, also in dem Fall Strong. Um das 2. Problem zu lösen kannst du dem parent LI Element die Klasse zuweisen und dann mit CSS alle UL Listen ausblenden bzw. einblenden Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 #!/usr/bin/perl $| = 1; use strict; use warnings; use HTML::TreeBuilder; use CGI; my $url = '/intern/proj'; # URL des ausgewählten Menüeintrags, bzw. geladene Webseite my $tree = HTML::TreeBuilder->new; # empty tree $tree->implicit_tags(0); $tree->store_comments(1); $tree->parse_file(*DATA); foreach my $t ($tree->look_down( '_tag' , 'a' )) { if ($url eq $t->attr('href')) { $t->parent->attr('class', 'active'); last; } } my $html = $tree->as_HTML; $html =~ s/<html>//g; $html =~ s/<\/html>//g; print CGI::header(); print CGI::start_html(); print $html; print CGI::end_html(); $tree->delete; 1; __DATA__ <style type="text/css"> #menu {} #menu .active a{ font-weight:bold; } #menu li.active ul{ display:block; } #menu li ul { display:none; } </style> <!-- ul ist immer / --> <ul id="menu"> <li><a href="/">Startseite</a></li> <li><a href="/intern/proj">Projekte</a> <ul> <li>Perl</li> <li>PHP <ul> <li><a href="/php/templating_all.html">Templating</a></li> <li>Module</li> <li>CGI-Test</li> </ul> </li> <li>Blog</li> </ul> </li> <li>Devshed</li> <li>Kontakt</li> </ul> |