Sebastian: a:visited geht irgendwie nicht

Guetn Abend,

ich habe ein stylesheet für ein drop-down Menue und ausserdem mit a:link, a:visited und a:hover die Untermenue's gestaltet.

Nun wird komischerweise als einziges das a:visited {color:#9999FF; text-decoration:none;} nicht ausgeführt (die Farbe wird bei besuchten Links nicht geändert), zumindest nicht wenn ich die html datei "normal" im browser öffne, allerdings geht es in der Vorschau von Dreamweaver (temp-Datei)!?!?!

Ich habe zwar schonmal weiter unten gepostet und würde auch normalerweise dort wieder posten, aber nachdem ich so schnell Hilfe von Herrn Einspender bekommen habe und ich daraufhin postete dass nun alles funktioniert nachdem ich es in der Vorschau von DW probiert habe,nun es aber anscheined doch wieder nicht funktioniert, habe jetzt eine neuen Thread eröffnet, ich hoffe, man möge mir verzeihen ;-)

Und falls sich die Sätze da oben etwas komisch lesen sollten - hey es geht auf halb drei zu und mein Hirn ist nurnoch Matsch *g*

Für die Hilfestellung schonmal Danke ;-)

Sebastian

  1. hallo,

    ich habe ein stylesheet für ein drop-down Menue und ausserdem mit a:link, a:visited und a:hover die Untermenue's gestaltet.
    Nun wird komischerweise als einziges das a:visited {color:#9999FF; text-decoration:none;} nicht ausgeführt

    Sowas kann mal vorkommen, wenn man mehrere Klassen definiert

    zumindest nicht wenn ich die html datei "normal" im browser öffne, allerdings geht es in der Vorschau von Dreamweaver (temp-Datei)!?!?!

    Dann schau mal nach, ob du irgendwelche "übriggebliebene" Temp-Dateien hast und wirf sie manuell raus.

    Wenn du bereits hier im Forum gepostet hast wirst du vielleicht wissen, daß dir kaum weitergeholfen werden kann, solange du den Code, in dem der Fehler stecken muß, nicht angibst.

    Christoph S.

    1. hi & danke für die "nächtliche" Antwort ;-)

      Hier der complette Code:
      -------------------------------------------------------------------

      <html>
      <head>
      <title>      Sebastian Schneider      </title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      <style type="text/css">
      .Menu       {position:absolute; width:101px; height:150px; clip:rect(0px 101px 14px 0px); layer-background-color:#CCCCFF; background-color:#CCCCFF; z-index:31; visibility:hidden;}
      .MenuUnten  {position:absolute; width:101px; height:3px; clip:rect(0px 101px 3px 0px); top:11; layer-background-color:#000000; background-color:#000000; z-index:2;}
      .MenuText   {position:absolute; width:91px; left:5px; top:15px; font-weight:bold; color:#000000; text-decoration:none; font-family:arial, helvetica, sans-serif; font-size:10px; background-color:#CCCCFF; z-index:1;}
      a:link      { color:#666699; text-decoration:none; }
      a:visited   { color:#9999FF; text-decoration:none; }
      a:hover    { color:#000000; text-decoration:none; }
      </style>
      <script language="JavaScript" type="text/javascript">
      function lib_bwcheck(){
       this.ver=navigator.appVersion
       this.agent=navigator.userAgent
       this.dom=document.getElementById?1:0
       this.opera5=this.agent.indexOf("Opera 5")>-1
       this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0;
       this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
       this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
       this.ie=this.ie4||this.ie5||this.ie6
       this.mac=this.agent.indexOf("Mac")>-1
       this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0;
       this.ns4=(document.layers && !this.dom)?1:0;
       this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5)
       return this
      }
      var bw=new lib_bwcheck()
      nPlace=0
      var nNumberOfMenus=2
      var nMwidth=101 //The width on the menus (set the width in the stylesheet as well)
      var nPxbetween=20 //Pixels between the menus
      var nFromleft=15 //The first menus left position
      var nFromtop=85 //The top position of the menus
      var nBgcolor='#000000' //The bgColor of the bottom mouseover div
      var nBgcolorchangeto='#9999FF' //The bgColor to change to
      var nImageheight=11 //The position the mouseover line div will stop at when going up!
      function makeNewsMenu(obj,nest){
       nest=(!nest) ? "":'document.'+nest+'.'
          this.css=bw.dom? document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+"document.layers." +obj):0;
       this.evnt=bw.dom? document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+"document.layers." +obj):0;
       this.scrollHeight=bw.ns4?this.css.document.height:this.evnt.offsetHeight
       this.moveIt=b_moveIt;this.bgChange=b_bgChange;
       this.slideUp=b_slideUp; this.slideDown=b_slideDown;
       this.clipTo=b_clipTo;
          this.obj = obj + "Object";  eval(this.obj + "=this")
      }
      var px = bw.ns4||window.opera?"":"px";
      function b_moveIt(x,y){this.x=x; this.y=y; this.css.left=this.x+px; this.css.top=this.y+px;}
      function b_bgChange(color){this.css.backgroundColor=color; this.css.bgColor=color; this.css.background=color;}
      function b_clipTo(t,r,b,l){
       if(bw.ns4){this.css.clip.top=t; this.css.clip.right=r; this.css.clip.bottom=b; this.css.clip.left=l
       }else this.css.clip="rect("+t+"px "+r+"px "+b+"px "+l+"px)";
      }
      function b_slideUp(ystop,moveby,speed,fn,wh){
       if(!this.slideactive){
        if(this.y>ystop){
         this.moveIt(this.x,this.y-5); eval(wh)
         setTimeout(this.obj+".slideUp("+ystop+","+moveby+","+speed+",'"+fn+"','"+wh+"')",speed)
        }else{
         this.slideactive=false; this.moveIt(0,ystop); eval(fn)
        }
       }
      }
      function b_slideDown(ystop,moveby,speed,fn,wh){
       if(!this.slideactive){
        if(this.y<ystop){
         this.moveIt(this.x,this.y+5); eval(wh)
         setTimeout(this.obj+".slideDown("+ystop+","+moveby+","+speed+",'"+fn+"','"+wh+"')",speed)
        }else{
         this.slideactive=false; this.moveIt(0,ystop); eval(fn)
        }
       }
      }
      function newsMenuInit(){
       oTopMenu=new Array()
       zindex=10
       for(i=0;i<=nNumberOfMenus;i++){
        oTopMenu[i]=new Array()
        oTopMenu[i][0]=new makeNewsMenu('divTopMenu'+i)
        oTopMenu[i][1]=new makeNewsMenu('divTopMenuBottom'+i,'divTopMenu'+i)
        oTopMenu[i][2]=new makeNewsMenu('divTopMenuText'+i,'divTopMenu'+i)
        oTopMenu[i][1].moveIt(0,nImageheight)
        oTopMenu[i][0].clipTo(0,nMwidth,nImageheight+3,0)
        if(!nPlace) oTopMenu[i][0].moveIt(i*nMwidth+nFromleft+(i*nPxbetween),nFromtop)
        else{
         oTopMenu[i][0].moveIt(nFromleft,i*nImageheight+nFromtop+(i*nPxbetween))
         oTopMenu[i][0].css.zIndex=zindex--
        }
        oTopMenu[i][0].css.visibility="visible"
       }
      }
      function topMenu(num){
       if(oTopMenu[num][1].y==nImageheight) oTopMenu[num][1].slideDown(oTopMenu[num][2].scrollHeight+20,10,40,'oTopMenu['+num+'][0].clipTo(0,nMwidth,oTopMenu['+num+'][1].y+3,0)','oTopMenu['+num+'][0].clipTo(0,nMwidth,oTopMenu['+num+'][1].y+3,0)')
       else if(oTopMenu[num][1].y==oTopMenu[num][2].scrollHeight+20) oTopMenu[num][1].slideUp(nImageheight,10,40,'oTopMenu['+num+'][0].clipTo(0,nMwidth,oTopMenu['+num+'][1].y+3,0)','oTopMenu['+num+'][0].clipTo(0,nMwidth,oTopMenu['+num+'][1].y+3,0)')
      }
      function menuOver(num){oTopMenu[num][1].bgChange(nBgcolorchangeto)}
      function menuOut(num){oTopMenu[num][1].bgChange(nBgcolor)}
      if (bw.bw) onload = newsMenuInit;
      </script>
      </head>

      <body bgcolor="#FFFFFF" text="#000000" background="bilder/bg.gif" leftmargin="15" marginwidth="15">
      <img src="bilder/head.gif" width="740" height="44" alt="    Sebastian  Schneider   ">
      <div id="divTopMenu0" class="Menu"><a href="#" onmouseover="menuOver(0)" onmouseout="menuOut(0)" onclick="topMenu(0); return false;" onfocus="if(this.blur)this.blur();"><img src="bilder/menu1.gif" width=101 height=11 alt="  Menue 1  " border=0 align="top"></a>
       <div id="divTopMenuText0" class="MenuText">
        <a href="http://www.ideenreich.com">Untermenue 1</a><br>
        <a href="#">Untermenue 2</a><br>
        <a href="#">Unetrmenue 3</a>
         </div>
       <div id="divTopMenuBottom0" class="MenuUnten"></div>
      </div>
      <div id="divTopMenu1" class="Menu"><a href="#" onmouseover="menuOver(1)" onmouseout="menuOut(1)" onclick="topMenu(1); return false;" onfocus="if(this.blur)this.blur();"><img src="bilder/menu2.gif" width=101 height=11 alt="  Menue 2  " border=0 align="top"></a>

      <div id="divTopMenuText1" class="MenuText">
        <a href="#">Untermenue 1</a><br>
        <a href="#">Untermenue 2</a><br>
        <a href="#">Untermenue 3</a><br>
        <a href="#">Untermenue 4</a><br>
        <a href="#">Untermenue 5</a><br>
        <a href="#">Untermenue 6</a><br>
        <a href="#">Untermenue 7</a>
         </div>
       <div id="divTopMenuBottom1" class="MenuUnten"></div>
      </div>
      <div id="divTopMenu2" class="Menu"><a href="#" onmouseover="menuOver(2)" onmouseout="menuOut(2)" onclick="topMenu(2); return false;" onfocus="if(this.blur)this.blur();"><img src="bilder/menu3.gif" width=101 height=11 alt="  Menue 3  " border=0 align="top"></a>
       <div id="divTopMenuText2" class="MenuText">
        <a href="#">Untermenue 1</a><br>
        <a href="#">Untermenue 2</a><br>
        <a href="#">Untermenue 3</a>
       </div>
       <div id="divTopMenuBottom2" class="MenuUnten"></div>
      </div>

      </body>
      </html>
      ---------------------------------------------------------------------

      1. hi

        a:link      { color:#666699; text-decoration:none; }
        a:visited   { color:#9999FF; text-decoration:none; }
        a:hover    { color:#000000; text-decoration:none; }

        this.opera5=this.agent.indexOf("Opera 5")>-1

        direkt zum Thema hab' ich nix, aber 2 Sachen:
        1. :visited klappt in einigen Browesrn bei links die nur auf # lauten nicht so wirklich.
        2. deine abfrage geht bei Opera6 daneben. Lass in der Abfrage die Zahl weg, was anderes als Version 5 und 6 findet man eh nicht mehr.

        gruss Kai

        1. hi ihr beiden und danke für die antworten

          ehrlich gesagt habe ich das Script nicht selber geschreiben sondern von http://www.dhtmlcentral.com/

          gruss

          sebastian

      2. hallo,

        Hier der complette Code:

        ups ....
        ich hatte gedacht, da kämen nun vier Zeilen CSS, jetzt kommt gleich ein vollständiges HTML-Dokument. Allerdings zu recht. Das Problem liegt nicht in deiner CSS, sondern in der Art der links. Mit <a href="#"> wissen viele Browser  -  darunter der IE  -  nicht, _was_ sie jetzt als "visited" betrachten sollen. Du siehst das daran, daß es bei dem link, der eine "echte" Adresse hat, im IE funktioniert.
        Außerdem: du hast da einen ziemlich komplexen Javascript-Code, der Slide-Effekte und Timeouts enthält. Auch das sind "aktive" Vorgänge, die unter Umständen das Browser-Verhalten beeinflussen können.
        Ich habe probehalber mal das noch fehlende a:active eingefügt, das wird befolgt bis zum nächsten Mausklick irgendwo; das heißt, deine CSS wird schon berücksichtigt und "abgearbeitet".
        Mit der "Browserweiche" hast du dir sehr viel Mühe gegeben. Das scheint auch auf Windows zu funktionieren (ich habe nicht alle von dir berücksichtigten Browser) aber Netscape 4.7x unter LINUX und der Konqueror haben etwas Mühe mit der Konstruktion. Irgendwo fehlt da wohl noch eine "else"-Angabe mit einer Art von Standard-Festlegung, was "andere" Browser als die von dir berücksichtigten tun sollen.
        Obwohl deine Javascript-Anweisungen viel Überlegung erfordert haben müssen, ist wohl doch noch einmal zu überprüfen, ob das alles wirklich zwingend erforderlich ist oder mit etwas geringerem Aufeand nicht vielleicht derselbe Effekt erzielt werden kann.

        Christoph S.