Thread Dynamisches Menü mit sichtbarem selektiertem Submenü (Kein JS, kein CSS, nur HTML) (12 answers)
Opened by GwenDragon at 2009-01-16 17:18

Struppi
 2009-01-16 19:09
#118102 #118102
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
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>

View full thread Dynamisches Menü mit sichtbarem selektiertem Submenü (Kein JS, kein CSS, nur HTML)