Welcome, Guest. Please login or register.
Did you miss your activation email?
May 24, 2012, 07:15:24 AM

Login with username, password and session length
Search:     Advanced search
Interested in joining the WebsiteBaker team?
For more Information read here or on our new website.
155442 Posts in 21702 Topics by 7734 Members
Latest Member: zvaigzdzius
* Home Help Search Login Register
Pages: [1]   Go Down
Print
Author Topic: Linkfarbe css  (Read 4475 times)
enni

Offline Offline

Posts: 81



« on: October 06, 2008, 12:29:36 PM »

Hallole,

eine "dumme Frage" - Wie erreiche ich es, dass auf der aktuellen Seite, auf der ich mich gerade befinde, die Frabe des aufgerufenen Links statt blau (wie der rest des menus) grün ist?

In der css Datei sieht das ganze so aus:

Code:
.menu {
    color: #181B6A;
    font-size: 14px;
    font-weight: bold;
}
.menu a:link {
    color: #181B6A;
    text-decoration:none;
}
.menu a:visited {
    color: #181B6A;
    text-decoration:none;
}
.menu a:hover {
    color: #669900;
    text-decoration:none;
}
.menu a:active {
    color: #669900;
    text-decoration:none;
}

Der Aufruf des Menüs so:

Code:
show_menu2(0, SM2_ROOT, SM2_START, SM2_ALL, '&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;[a][menu_title]</a>', '', '', '', '[a][menu_title]</a>');

Also ganz einfach in einer Reihe:

Startseite | Link1 | Link2 | Link3 ...etc....

Wenn ich z.B. auf der Seite Link2 bin soll dieser grün statt sonst blau sein....irgendwie klappt des net^^

Danke für eure Hilfe
Logged
ruebenwurzel
WebsiteBaker Org e.V.

Offline Offline

Posts: 7972



WWW
« Reply #1 on: October 06, 2008, 01:46:12 PM »

Hallo,

aktuell = active. Einfach der klasse "active" grün zuordnen.

Matthias
Logged
Stefek
WebsiteBaker Org e.V.

Offline Offline

Posts: 4884



« Reply #2 on: October 06, 2008, 02:39:28 PM »

Ja, aber da fehlt noch was in der SM2 Aussage:
<'. "[if(class=menu-current){class=\"active\" }]" .' href="[url]">[menu_title]</a>

Um es so hinzubekommen, müsstest Du, Enni, das SM2 wie folgt aufrufen:

Code:
<?php
show_menu2
(0SM2_ROOTSM2_STARTSM2_ALL'&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;<a '"[if(class=menu-current){class=\"active\" }]" .' href="[url]">[menu_title]</a>''''''''<a '"[if(class=menu-current){class=\"active\" }]" .' href="[url]">[menu_title]</a>') ; ?>



Ich habe es nicht geprüft, aber schau mal, ob es so funktioniert und lass mich wissen.

MfG,
Stefek

P.S. Der CSS Selector a:active bezieht sich auf den Moment des Klickens auf den a Link, nicht auf den Zustand "menu-current". Daher  sagen wir in der SM2 Aussage "wenn die Standard-Klasse menu-current ist, dann gib ihm die Klasse 'active' stattdessen".

Nachtrag: um den gleichen Effekt bei a:active und a.active zu haben, müssen die Selectoren hintereinander angelegt werden, bevor die Deklaration kommt:
a:active, a.active {deine declaration}
« Last Edit: October 08, 2008, 12:09:26 PM by Stefek » Logged

"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
dbs
WebsiteBaker Org e.V.

Offline Offline

Posts: 3714


WWW
« Reply #3 on: October 06, 2008, 08:26:26 PM »

sieht bei mir so aus:

Code:
#navi ul li a:hover{
    background-color:#ccc;
    border-bottom:1px solid #800;
    border-top:1px solid #800;
    color:#660000;
}
#navi li .menu-current{
        background-color:#ccc;
    border-bottom:1px solid #800;
    border-top:1px solid #800;
    color:#006400;
}

wichtig is ja nur color... hab mal darkgreen(#006400) eingetragen...

Code:
<div id="navi"><?php show_menu2(0SM2_ROOTSM2_START+1false'<li>[ac][menu_title]</a>'falsefalsefalse); ?></div>

hilft das weiter?
Logged

Stefek
WebsiteBaker Org e.V.

Offline Offline

Posts: 4884



« Reply #4 on: October 06, 2008, 08:51:06 PM »

Dein CSS Beispiel würde tatsächlich dann funktionieren, wenn im SM2 Aufruf [ac] (wie Du es gemacht hast) statt [a] stehen würde.
In diesem Falle werden aber alle links mit den SM2 spezisischen Klassen-Namen im HTML Code ausgegeben.

Generell führen hier viele Wege zum Ergebnis und oft ist es schwer etwas zu Show_menu2 pauschal zu sagen, wenn man nicht das Template drum herum hat und auch nicht weiß, wie die Linkstruktur letzten Endes aussehen soll (die Andordnug der Seiten, Menütiefe, Anzahl verwendeter $menu 's usw. usf.

Was sagst Du Enni.
Hilft überhaupt einer der Tipps hier weiter?

MfG,
Stefek
Logged

"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
enni

Offline Offline

Posts: 81



« Reply #5 on: October 06, 2008, 10:01:38 PM »

guten abend, sorry für die späte antwort, ich musste etwas länger arbeiten^^
recht herzlichen dank für die zahlreichen antworten - echt nett von euch! ich werde es morgen früh gleich testen und mich wieder melden.

eine gute nacht schon einmal
enni
*wink*
Logged
enni

Offline Offline

Posts: 81



« Reply #6 on: October 07, 2008, 07:18:45 AM »

Guten Morgen,

aaalso, hab die vorgeschlagenen Sachen mal ausprobiert - so richtig tuts noch nicht. Zum Code:

Den Menüaufruf habe ich wie von Stefek vorgeschlagen geändert in:

Code:
<div align="right" class="menu">
              <?php show_menu2(0SM2_ROOTSM2_STARTSM2_ALL'&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;<a '"[if(class=menu-current){class=\"active\" }]" .' href="[url]">[menu_title]</a>''''''''<a '"[if(class=menu-current){class=\"active\" }]" .' href="[url]">[menu_title]</a>') ; ?>
            </div>

Die css Datei habe ich wie folgt ergänzt:

Code:
.menu {
    color: #181B6A;
    font-size: 14px;

}
.menu a:link {
    color: #181B6A;
    text-decoration:none;
    font-weight: bold;
}
.menu a:visited {
    color: #181B6A;
    text-decoration:none;
    font-weight: bold;
}
.menu a:hover {
    color: #669900;
    text-decoration:none;
    font-weight: bold;
    border-bottom:1px solid #800;
    border-top:1px solid #800;
}
.menu a:active {
    color: #669900;
    text-decoration:none;
    font-weight: bold;
}

.menu .active {
    border-bottom:1px solid #800;
    border-top:1px solid #800;
    color:#006400;
}

Somit wird der Link beim drüberfahren und auch der aktive Link unterstrichen - aber die Farbe ändern klappt leider nicht. Nach anklicken ist der Link immer noch blau sad
Logged
dbs
WebsiteBaker Org e.V.

Offline Offline

Posts: 3714


WWW
« Reply #7 on: October 07, 2008, 08:49:14 AM »

ich hab mal zu testzwecken den menu-current bzw. dein active bei mir auf weiß gesetzt.
nicht, dass wir aneinander vorbeireden..

gelöscht
« Last Edit: October 17, 2008, 02:41:34 PM by dbs » Logged

enni

Offline Offline

Posts: 81



« Reply #8 on: October 07, 2008, 09:31:53 AM »

ja genau, so solls sein...verrätst du mir auch wie?
Logged
dbs
WebsiteBaker Org e.V.

Offline Offline

Posts: 3714


WWW
« Reply #9 on: October 07, 2008, 09:43:51 AM »

öhm... wenn dir mein code nicht weiterhilft oder du ihn für dich nicht abwandeln kannst, dann sieht's schlecht aus.
für mich ist website baker und css alles neuland.
wenn ich irgendwas machen will beginnt das große suchen und lesen. *g*
aber ich versuche mal das nachzuvollziehen was ich tat und geb dann bescheid(falls niemand schneller ist).
Logged

Stefek
WebsiteBaker Org e.V.

Offline Offline

Posts: 4884



« Reply #10 on: October 07, 2008, 10:05:48 AM »

Schau mal was passiert, wenn Du es so machst.

Code:
.menu a.active {
    border-bottom:1px solid #800;
    border-top:1px solid #800;
    color:#006400;
}

(das "a" vor .active)

Grüße,
Stefek
Logged

"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
enni

Offline Offline

Posts: 81



« Reply #11 on: October 07, 2008, 10:16:12 AM »

SUUUPER!!!! Genau das war's *freu*

Danke für die Hilfe und einen schönen Tag
Enni
Logged
dbs
WebsiteBaker Org e.V.

Offline Offline

Posts: 3714


WWW
« Reply #12 on: October 09, 2008, 08:18:28 AM »

Anschlussfrage: wie kann ich denn einen active wieder ausschließen? Genauer die Home-Seite. der muss nicht markiert sein, wenn man die Seite das erste mal betritt.
Logged

dbs
WebsiteBaker Org e.V.

Offline Offline

Posts: 3714


WWW
« Reply #13 on: October 24, 2008, 02:21:56 PM »

*hochschieb*

vielleicht noch jemand einen ansatz wie ich den einen current ausschließen kann?
im moment wird bei hover und current der menülink farblich markiert. und das current möchte ich auf der home-seite ausschließen.
web developer zeigt mir auf der home-seite den markierten home-link so an:
#navi > ul .menu-top > li > a .menu-current menu-first

gruß
dbs
Logged

Stefek
WebsiteBaker Org e.V.

Offline Offline

Posts: 4884



« Reply #14 on: October 24, 2008, 03:33:48 PM »

Hallo.

Poste mal Deinen gegenwärtigen SM2 Aufruf hier. Sowie den CSS Teil des Menüs.

Gruß,
Stefek
Logged

"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
dbs
WebsiteBaker Org e.V.

Offline Offline

Posts: 3714


WWW
« Reply #15 on: October 24, 2008, 04:12:44 PM »

wäre prima, wenn du eine idee hättest  smiley

Code:
<div id="navi"><?php show_menu2(1SM2_ROOTSM2_CURR+1false'<li>[ac][menu_title]</a>'falsefalsefalse); ?></div>

Code:
#navi{
    margin:0px; /*Naviabstand zum linken Rand*/
    margin-top:0px;
    width:135px;
    border-right:3px solid #800;    
    float:left;
}
#navi ul li{
    list-style:none;
    color:#660000;
}
#navi ul ul li {
  padding-left:5px;
  font-size:7pt;
 
}
#navi ul li a{
    display:block;
    padding:5px; /*Abstand zwischen den Men�punkten*/
    border-bottom:1px solid #fff;
    border-top:1px solid #fff;
    font-weight:bold;
    color:#B22222;
}
#navi ul ul li a{
    display:block;
    padding:5px; /*Abstand zwischen den Men�punkten*/
    border-bottom:1px solid #fff;
    border-top:1px solid #fff;
    font-weight:normal;
}
#navi li a:hover{
    background-color:#ccc;
    border-bottom:1px solid #800;
    border-top:1px solid #800;
    color:#660000;
}
#navi li .menu-current{
    background-color:#ccc;
    border-bottom:1px solid #800;
    border-top:1px solid #800;
    color:#660000;
}
Logged

Mux
Guest
« Reply #16 on: October 24, 2008, 05:18:30 PM »

Code:
[quote author=dbs link=topic=11260.msg69302#msg69302 date=1224861164]
wäre prima, wenn du eine idee hättest  :-)

#navi li .menu-current{
    background-color:#ccc;
    border-bottom:1px solid #800;
    border-top:1px solid #800;
    color:#660000;
}
[/quote]

versuch's doch mal mit

.menu-top .menu-first 

Damit hab ich's hingekriegt...

Grüße, Mux
Logged
Stefek
WebsiteBaker Org e.V.

Offline Offline

Posts: 4884



« Reply #17 on: October 24, 2008, 05:28:56 PM »

vielleicht noch jemand einen ansatz wie ich den einen current ausschließen kann?

nimmst Du diesen Aufruf statt des von Dir geposteten.
Code:
show_menu2(1, SM2_ROOT, SM2_CURR+1, false, '<li><a '. "[if(id==1){} else {class=\"[class]\"}]" .' href="[url]">[menu_title]</a>', false, false, false);

@Mux:
Ja, dieser Weg ist auch möglich.

Gruß,
Stefek

P.S.
Auch der folgende Aufruf ist gut, wenn man den ersten Link vielleicht ganz anders Stylen will:
Code:
show_menu2(1, SM2_ROOT, SM2_CURR+1, false, '<li><a '. "[if(id==1){class=\"kuckuk\" } else {class=\"[class]\"}]" .' href="[url]">[menu_title]</a>', false, false, false);

Und nicht vergessen: id==1 muss gegebenenfalls angepasst werden, wenn die page_id der Startseite nicht 1 ist.
Logged

"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
Mux
Guest
« Reply #18 on: October 24, 2008, 05:52:02 PM »


@Mux:
Ja, dieser Weg ist auch möglich.


oops, Mist, so geht's doch nicht, da dann auch in den Submenus das jeweils erste Item keine Änderung mehr erfährt.

Stefan, hättest du vielleicht Lust,  mal aufzuschlüsseln, was bei deinem ersten Vorschlag genauer passiert. Wäre sehr hildreich, um diese ganzen show_menu2-Funktionen mal genauer zu verstehen...

Grüße
Mux
Logged
Stefek
WebsiteBaker Org e.V.

Offline Offline

Posts: 4884



« Reply #19 on: October 24, 2008, 06:09:01 PM »

OK, ich versuche es mal "aufzuschlüßeln".
Aber bei SM2 hilft wirklich nur, das ganze mal für sich durchzukauen.
Aber dies kann ein kleiner Fingerzeig werden, um in die restliche Doku von SM2 besser einzusteigen.

Also:
<'. "[if(id==1){class=\"kuckuk\" } else {class=\"[class]\"}]" .' href="[url]">[menu_title]</a>

mit <a öffnen wir den a-Tag.
Da sehen wir dann die ganzen Attribute, die später ins HTML geschrieben werden:
class=
href=
die Dinger in den eckigen Klammern werden später per den gegebenen Umständen interpretiert.

[url] ist selbsterklärend
[class] das sind die SM2 typischen Klassen, die per default rauskommen
mann könnte auch noch das title= Attribut mit reinnehmen. Ebenfalls das target= Attribut.
Dann würde es etwa so aussehen:
<'. "[if(id==1){class=\"kuckuk\" } else {class=\"[class]\"}]" .' href="[url]" target="[target]" title="[page_title]">[menu_title]</a>

So..
[page_title] und [menu_title] sollten auch selbsterklärend sein.

Jetzt kommen wir zu dem Teil mit der if/else Aussage.
Da steht wörtlich geschrieben: "Wenn id ist gleich 1 gebe class="kuckuk" andernfalls gebe [class] aus (die SM2 default Klassen)."

Viel Spaß.

Gruß,
Stefek
Logged

"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
dbs
WebsiteBaker Org e.V.

Offline Offline

Posts: 3714


WWW
« Reply #20 on: October 24, 2008, 06:12:29 PM »

@mux: hab's gemerkt, dass menu-first auch jede erste unterseite betrifft.
wäre ja auch zu schön, wenn es so einfach wäre. trotzdem danke. wink

@stefek: genial!  grin
genau so wollte ich es. funktioniert prächtig!
das buch mit sieben sechs siegeln, auch SM2 genannt, hätte ich nie so hinbekommen. wollte gerade mux beipflichten wegen erläuterung, aber du hast es eben beim tippen gepostet. klasse!

besten dank und gruß
dbs
« Last Edit: October 24, 2008, 06:15:30 PM by dbs » Logged

Pages: [1]   Go Up
Print
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!