Initialzustand für a:active?

Tensi

Mitglied
Hallo,

hab eine Navigationsmenü mit hover-Effekt gebastelt bei dem der aktive Link mit active angezeigt werden soll. t auch ganz gut, nur wenn die Seite geladen wird sind alle Links gleichfarbig. Habt ihr einen Tipp? Evtl. auch PHP?

Vielen Dank und viele Grüße,

Daniel

Code:
#rollovermenu a
{
    font-family: "Arial";
    font-size: 14px;
    font-weight: normal;
    
    display: block;
    text-decoration: none;
    background-position: left center;
    margin-left: 20px;
    vertical-align: middle;
    height: 21px;
    width: 140px;
    background-attachment: fixed;
    background-repeat: no-repeat;
    text-align: left;
    text-indent: 35px;
}

#rollovermenu #aktuelles a
{   background: url("anchor.png") no-repeat;
    color: #c1b59b;}
#rollovermenu #aktuelles a.link
{   background: url("anchor.png") no-repeat;
    color: #c1b59b;}
#rollovermenu #aktuelles a:visited{
	background:url("anchor.png") no-repeat;
	color: #c1b59b;}
#rollovermenu #aktuelles a:hover{
	background:url("anchor_red.png") no-repeat;
	color: #ff0000;}
#rollovermenu #aktuelles a:active{
	background:url("anchor_red.png") no-repeat;
	color: #ff0000;}
#rollovermenu #aktuelles a:focus{
	background:url("anchor_red.png") no-repeat;
	color: #ff0000;}
 
Hi,

die :active-Pseudoklasse gilt so lange, wie die Maustaste auf dem Element gedrückt gehalten wird, und verliert ihre Gültigkeit, sobald sie losgelassen bzw. das Verweisziel im Fenster geladen wird.

Ich empfehle dir hierzu den Artikel Highlighting current page with CSS.

mfg Maik
 
Hi Maik,

danke für den Link!
Ich muß zu meiner Schande gestehen, das ich die Seite mit Frames aufgebaut habe, da ich mit CSS grobe Darstellungsprobleme im Safari hatte (alle Container waren untereinander) im IE6/7 war es okay. Dir stellen sich jetzt warscheinlich sämtliche Haare auf : -), aber meine Navigation sieht jetzt so aus (Auszug):
Code:
	        <span  id="aktuelles"><a href="aktuelles.html" target="mainframe">Aktuelles</a></span >
Wie schaffe ich es jetzt, das wenn z. B. die Seite aktuelles.html als erste Seite geladen wird, der entsprechende Navigationseintrag z. B. rot hervorgehoben wird, ohne zu Klicken?
Ich weiß, das mit den Frames ist Pfusch, aber ich habe wirklich mit CSS angefangen und auch gut zu Recht gekommen (außer den Darstellungsdifferenzen). Leider mußte ich aus Zeitgründen wieder auf Frames zurückgreifen. Früher oder später werde ich auf div-Container umbauen (versprochen *g*)
Danke und Gruß, Daniel
 
In diesem Fall wirst du hier ohne den Einsatz von Javascript nicht weiterkommen.

Javascript:
function aktivieren(strHref)
{
    if(document.getElementById)
        {
            for(i=0;i<document.links.length;++i)
                {
                    if(String(document.links[i].className).match(/^(nav|clicked)$/))
                        {
                            document.links[i].className=(document.links[i].href==strHref)?'clicked':'nav';
                        }
                }
        }
}
CSS:
a.nav, a.clicked {
color: #b9b9b9;
}
a.nav:hover, a.clicked {
color: #0090E0;
}
HTML:
<a href="aktuelles.html" target="mainframe" class="nav" onclick="aktivieren(this.href)">Aktuelles</a>


Falls du dich irgendwann mal von den Frames wieder verabschieden, und stattdessen das Seitenkonzept mit PHP + CSS umsetzen solltest, kannst du einen Blick in den Thread Link auf active setzen werfen.

mfg Maik
 
... sorry, das ich schon wieder frage,
aber würde das auch Serverseitig, z. B. in PHP gehen?
Danke und Grüße,
Daniel
 
Siehe mein Link zu dem empfohlenen Thema im PHP-Forum, sofern die Inhalte nicht in einem (i)Frame geladen werden.

mfg Maik
 
Super, danke! Soweit unten hab ich dann gar nicht mehr gelesen, sorry!
Vielen Dank und einen schönen rest-Sonntag.
VG Daniel
 
Zurück