Philipp: Link so lange die Seite benutzt wird "activ"

Hi,

ich habe auf meiner Homepage (www.rollbrett.tk) eine Menüleitste. Jeder Menüpunkt, führt zu einer Seite. Wie gehts das, dass so lange ich eine Seite anschaue, der Menüpunkt, der zu dieser Seite führt, activ bleibt (z.B: fett, unterstrichen... )

ich denke mal ihr versteht meine Frage nicht, deswegen hier ein Link zu einer Seite, die die Menüleiste genau so hat wie ich sie will:

http://www.am16junius.de.vu

Gruß Philipp

  1. Hallo,

    ich würde auf das Frameset verzichten, und das Menü in jede HTML-Datei einfügen.

    Eine andere Möglichkeit ist JavaScript. Entweder wenn man auf einen Link klickt, soll der jeweilige Link markiert werden. Problematisch wird es allerdings, wenn die Seiten, die sich im Hauptframe, untereinander verlinkt sind. Deswegen würde ich jedesmal wenn eine HTML-Datei geladen wird, prüfen, ob ein Navigationsframe existiert (könnte ja sein, dass man auf die Seite von eine Suchmaschine aus gelangt), und dann den jeweiligen Link markieren.

    Die erste Lösung gefällt mir allerdings mehr.

    Mit freundlichen Grüßen
       Dimitri Rettig

    1. Danke erstmal!!!

      Ich benutze aber keine Frames. Geht das trotzdem?

      Kann ich das hier unter SelfHTML irgendwo nachlesen?

      Gruß Philipp

      1. Hi,

        ich habe da ziemlich viel falsch verstanden. Ich glaube das, wonach du suchst, sind Pseudoformate http://selfhtml.teamone.de/css/eigenschaften/pseudoformate.htm bzw http://selfhtml.teamone.de/css/eigenschaften/pseudoformate.htm#link_visited_hover_active_focus

        Hoffe, dass es jetzt stimmt.

        Mit freundlichen Grüßen
           Dimitri Rettig

    2. Oh, habe eben einen Eintrag gemacht und jetzt gemerkt, dass ich diesen Teil des Threads übersehen habe.

      Eine andere Möglichkeit ist JavaScript. Entweder wenn man auf einen Link klickt, soll der jeweilige Link markiert werden. Problematisch wird es allerdings, wenn die Seiten, die sich im Hauptframe, untereinander verlinkt sind. Deswegen würde ich jedesmal wenn eine HTML-Datei geladen wird, prüfen, ob ein Navigationsframe existiert (könnte ja sein, dass man auf die Seite von eine Suchmaschine aus gelangt), und dann den jeweiligen Link markieren.

      Hallo Dimitri,
      was du beschreibst, ist das, was ich suche. Ich kann zwar JavaScript halbwegs lesen und kapieren, aber selbst schreiben nicht so wirklich.
      Weißt du, ob man das Script, wie du es beschrieben hast, irgendwo kostenlos bekommen kann?

      Schöne Grüße,
      Linda

  2. Das geht mit Pseudo-Klassen:

    in CSS
    a.klasse:link
    a.klasse:visited
    a.klasse:hover
    a.klasse:activ

    und dann in html so aufrufen...

    <a class="klasse" href="test.html">

    Gruß Verona

    PS: Die Reihenfolge mußt Du wohl einhalten

  3. Hi,

    ich habe auf meiner Homepage (www.rollbrett.tk) eine Menüleitste. Jeder Menüpunkt, führt zu einer Seite. Wie gehts das, dass so lange ich eine Seite anschaue, der Menüpunkt, der zu dieser Seite führt, activ bleibt (z.B: fett, unterstrichen... )

    Das ist mit CSS alleine nicht möglich.
    CSS kennt nur die Zustände visited, hover, active und focus.  (wobei active nicht das ist, was Du suchst, es gilt während der Aktivierung des Links).
    Einen Zustand
    "In einem anderen Fenster oder Frame wird zufällig gerade die Seite angezeigt, auf die das href-Attribut des Links verweist"
    gibt es in CSS nicht.

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    1. Hi,

      Das ist mit CSS alleine nicht möglich.
      CSS kennt nur die Zustände visited, hover, active und focus.  (wobei active nicht das ist, was Du suchst, es gilt während der Aktivierung des Links).
      Einen Zustand
      "In einem anderen Fenster oder Frame wird zufällig gerade die Seite angezeigt, auf die das href-Attribut des Links verweist"
      gibt es in CSS nicht.

      Nachtrag: es gibt auch keinen Zustand
      "Das href-Attribut dieses Links zeigt auf das aktuelle Dokument".

      Du mußt dem Link einfach eine Klasse zuweisen...

      cu,
      Andreas

      --
      Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
      http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    2. "In einem anderen Fenster oder Frame wird zufällig gerade die Seite angezeigt, auf die das href-Attribut des Links verweist"
      gibt es in CSS nicht.

      aber wie hat es dann der mensch hin bekommen, der die von mir erwähnte beispiel seite entworfen hat?

      Gruß Philipp

    3. wobei active nicht das ist, was Du suchst

      wie kommst du darauf das er active nicht gemeint hat? Das ist ja gerade das oder? So wie auf meine Page; www.ferbyfun.com da hab ich das auch mit active gelösst!

      1. Hi,

        wobei active nicht das ist, was Du suchst
        wie kommst du darauf das er active nicht gemeint hat? Das ist ja gerade das oder? So wie auf meine Page; www.ferbyfun.com da hab ich das auch mit active gelösst!

        active gilt nur während der Aktivierung des Links - also bei Mausbedienung vom Drücken bis zum Loslassen der Maustaste.
        (siehe http://www.w3.org/TR/REC-CSS2/selector.html#dynamic-pseudo-classes, wo es heißt:
        "The :active pseudo-class applies while an element is being activated by the user. For example, between the times the user presses the mouse button and releases it.")

        Der IE macht das afaik falsch und wendet die bei :active angegebenen Formatierungen auch dann an, wenn eigentlich die bei :focus angegebenen gelten sollten...

        Hier geht es aber darum, daß die Formatierung solange gelten soll, wie die URL des aktuellen Dokuments mit der URL im href-Attribut übereinstimmt.

        cu,
        Andreas

        --
        Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
        http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    4. Das ist mit CSS alleine nicht möglich.
      CSS kennt nur die Zustände visited, hover, active und focus.  (wobei active nicht das ist, was Du suchst, es gilt während der Aktivierung des Links).
      Einen Zustand
      "In einem anderen Fenster oder Frame wird zufällig gerade die Seite angezeigt, auf die das href-Attribut des Links verweist"
      gibt es in CSS nicht.

      Hallo Andreas,

      habe eben den Forum-Eintrag entdeckt. Mich würde auch mal interessieren, wie es mit relativ einfachen Mitteln möglich ist, den beschriebenen Zustand zu erreichen. Denn eigentlich wünscht sich das fast jeder, der eine Website hat, dass die momentane Seite irgendwie bei den Links gekennzeichnet ist.

      Habe mich inzwischen oft mit CSS (funktioniert mit active ja auch ansatzweise im IE) und JavaScript-Mouseovers rumgeärgert, damit es irgendwie hinhaut (mit JavaScript kenne ich mich aber nicht so wirklich aus).
      Dein Satz "Das ist mit CSS alleine nicht möglich" hat in mir die Hoffnung genährt, dass du vielleicht eine Ahnung hast, wie es denn gehen könnte, in JS oder PHP oder so???

      Würde mich über Tipps auf jeden Fall freuen! (egal ob für Frame oder nicht Frame)

      Schöne Grüße, Linda

      1. hi,

        Mich würde auch mal interessieren, wie es mit relativ einfachen Mitteln möglich ist, den beschriebenen Zustand zu erreichen. Denn eigentlich wünscht sich das fast jeder, der eine Website hat, dass die momentane Seite irgendwie bei den Links gekennzeichnet ist.

        nö. gibt weitaus wichtigere dinge.

        Dein Satz "Das ist mit CSS alleine nicht möglich" hat in mir die Hoffnung genährt, dass du vielleicht eine Ahnung hast, wie es denn gehen könnte, in JS oder PHP oder so???

        mit einer serverseitigen scriptsprache wie php alles kein problem.
        dann verzichtest du ganz auch frames, die seite wird bei jedem linkklick neu aufgebaut, und dem gerade "aktiven" link gibst du dann per php dynamisch eine andere css-klasse mit.

        gruss,
        wahsaga

        1. mit einer serverseitigen scriptsprache wie php alles kein problem.
          dann verzichtest du ganz auch frames, die seite wird bei jedem linkklick neu aufgebaut, und dem gerade "aktiven" link gibst du dann per php dynamisch eine andere css-klasse mit.

          hallo wahsaga,

          ja, das ist wohl die beste lösung, meine ich auch so.

          ich habe leider das problem mit einer website, die kein php verwendet, schon frames hat und jetzt nachträglich die links in den frame-navigationen farbig bekommen soll, wenn die entsprechende URL im inhalts-fenster aufgerufen ist.

          wenn da schon jemand erfahrungen hat, würde ich mich über tipps freuen.

          ansonsten kann ich auch nur jedem raten, php zu verwenden :-)

          wenn jemand das mit php anders macht, würde mich das auch mal interessieren. leider kann man ja den php-code von anderen seiten nicht so leicht anschauen... (nicht zum klauen: zum lernen)

          grüße,
          Linda

  4. Hallo Philipp,

    Jeder Menüpunkt, führt zu einer Seite. Wie gehts das, dass so lange ich eine
    Seite anschaue, der Menüpunkt, der zu dieser Seite führt, activ bleibt (z.B:
    fett, unterstrichen... )

    Erstmal nebenbei:
    Auf der öffentlichen CSS Mailingliste war vor ein paar Monaten der Vorschlag
    für CSS 3 der Aufnahme eines Pseudoelementes namens :here. Dieses hätte
    geleistet, was Du vermißt. Aber es dürfte anscheinend nicht mit in den
    Standard kommen.

    http://lists.w3.org/Archives/Public/www-style/2003Mar/0186.html

    Daran, daß es ein Vorschlag ist, erkennst Du, daß es so etwas nicht gibt.
    Man muß also beim Schreiben bzw. bei der Auslieferung der Seite dafür
    sorgen, daß der Link, der auf die aktuelle Seite führt, entsprechende
    Formatierungen bekommt. Arbeit also.

    Eine elegante Variante, die die Feinheiten von CSS ausnutzt ist folgende;
    sie ist an Arbeitsaufwand allerdings nur für Menüs mit einer kleinen
    Anzahl von Menüpunkte ratsam.

    Angenommen dieser Seitenentwurf ...

    <body id="b-eins">

    <ul id="navigation">
          <li><a href="" id="eins">eins</a></li>
          <li><a href="" id="zwei">zwei</a></li>
          <li><a href="" id="drei">drei</a></li>
          <li><a href="" id="vier">vier</a></li>
        </ul>

    <p>...</p>

    </body>

    ... mit diesen CSS-Regeln:

    a:link, a:visited, a:hover, a:active {color:blue;}

    body#b-eins #eins,
      body#b-zwei #zwei,
      body#b-drei #drei,
      body#b-vier #vier   {color:red;}

    Was ergibt das nun? Die erste CSS-Regel definiert die Farbe für Links
    als blau. Die zweite Regel ist etwas komplexer und erfordert einen Blick
    in die genauere Struktur der HTML-Seite.

    Im obigen Beispiel hat der body die ID "b-eins". IDs sind ja immer
    dokumentweit einzigartig, eine ID im body hat aber den Vorteil, daß
    alle sonstigen IDs im Dokument in der Hierarchie darunter liegen.

    Die vier Selektoren der zweiten Regel sind nun verschachtelt. Betrachten wir
    einfachshalber nur den ersten Selektor (body#b-eins #eins). Damit diese
    CSS-Regel in Kraft tritt, muß die ID #eins, die ja nun in diesem
    hypothetischen Projekt in jedem Navigationsmenü auf jeder Seite auftaucht,
    innerhalb der body-ID #b-eins liegen. Ebenso die anderen IDs.

    Wenn jetzt eine andere Seite aktuell ist (beispielsweise zwei) wird
    einfach deren entsprechende ID (Hier #b-zwei) als der des bodys definiert.
    Damit trifft dann die CSS-Regel zu und dem Link "zwei" wird die Farbe
    Rot zugewiesen.

    Ein Beispiel davon kann man auf der Miniseite zum neuen Buch des Herrn
    Zeldman bewundern (Die horizontale Subnavigation mit fünf Punkten):

    http://www.zeldman.com/dwws/

    Es liegt auf der Hand, daß diese Variante sich nicht unbedingt für
    Navigationsleisten mit Massen von Menüpunkten eignet. Es wäre dann
    einfach zuviel Schreibarbeit, da man all diese Abhängigkeiten im
    Stylesheet definieren muß.

    Wofür es sich aber eignet, sind Seiten mit ein paar Kategorieren,
    die dann ihrerseits viele Unterseiten haben. Ein Beispiel für diese
    Art ist http://kommdesign.de/. Dann hat man eine
    Navigationsleiste, die nur ein paar Kategorien ansteuert und bei
    den Unterseiten definiert man die ID für die Kategorie als ID im
    body. So sieht man dann auf jeder Unterseite, zu welcher Kategorie
    sie gehört.

    Und natürlich ist das nicht auf Navigationsleisten bzw. Links
    beschränkt. Man kann jedes mögliche Element in Abhängigkeit der
    body-ID setzen. Die Möglichkeiten sind unbegrenzt.

    • Tim