[HTML/CSS] Sprungmarken/Anker farblich ändern

Rain

Lieutenant
Registriert
Mai 2003
Beiträge
704
Hallo! :)

Ich bekomm grad was nicht hin, vielleicht kann mir einer helfen:


Ich hab n paar Tabellen untereinander und dazu eine Navigation linkerhand, wo ich mithilfe von Sprungmarken schneller zur jeweiligen Tabelle komme und nicht ewig scrollen muss. Die Tabellen und die Navigation werden mit PHP erzeugt. Funktioniert auch alles so wie es soll. Nun sehen die Tabellen alle relativ gleich aus und ich dachte mir dass es doch praktisch wäre, die Sprungmarke (== Name der Tabelle) farblich zu ändern, wenn jemand auf den Link in der Navigation geklickt hat. Ist es möglich das mit CSS relativ einfach zu machen?

///
Ich könnte natürlich per php die url auslesen und nach # exploden und dann mit if zum ergebnis kommen, aber der hat schon genug mit parsen zu tun
 
kennst dich etwas mit css aus?
eigentlich ist das nichts anderes wie wenn di die schrift änderst oder so also die fraben usw!

bsp:

h1 { color:red; font-size:48px; }

und so machst das mit der sprungmarke
 
also ich mach seit tagen nix anderes ausser css, weiß aber sicher net alles. bin mir nicht sicher ob du weißt was ich will. ich versuchs nochmal:

in der navigation hab ich die links, die zu den sprungmarken führen. die links sind nach dem schema: <a class="navilink" href="#goto1">..</a>
die sprungmarken: <a class="sprungmarke" name="goto1">..</a>

die links in der navigation sind alle mit css formatiert und die sprungmarken-links ebenfalls. ich will aber, dass eine grad besuchte sprungmarke (nach einem klick auf ein link in der navigation) farbig anders dargestellt werden soll als die übrigen
 
Hallo Rain,

du benutzt doch sowieso schon Parameter in der URL - dann kommt's auf einen mehr oder weniger auch nicht mehr an!

Deshalb versuch's mal so:
Definiere in deinem Stylesheet eine Klasse mit der Farbgebung für die Tabelle. Da du ja PHP benutzt, übergebe mit dem jeweiligen Link eine weitere Variable per URL (exploden brauchst du die übrigens nicht, die stehen automatisch zur Verfügung und können per $_GET o. $_REQUEST abgerufen werden!).
Füge dann bei jeder Tabelle, die du andersfarbig dargestellt haben willst, mithilfe einer if-Abfrage die class-Anweisung in das <table>-Tag (evtl. verwendest du sogar besser das <tbody>-Tag!).

Viel Glück...
Grüße
 
nagut, dachte ja dass es eventuell für die anker/sprungmarker auch css definitionen gibt um das zu erreichen was ich will. dann muss erst mal die php-version herhalten, danke dir :)

was allerdings ein nachteil ist mit der php-variante:

vorher sahen die links so aus: <a href="#goto1">
mit php muss ich ja eine variable losschicken <a href="?marked=goto1#goto1">

damit muss die seite neu geladen werden, was ja bei reinen ankern nicht notwendig ist. da ziemlich viel mysql abgefragt wird in den tabellen ist das etwas unvorteilhaft, naja muss ich mal schauen wie sich das dann in der praxis verhält.
 
Ach so, es handelt sich um ein Submenü der Navigation oder wie hat man das zu verstehen? Dachte, dass nach Klick auf Link die Seite sowieso neu geladen wird und die Tabellen(inhalte) erst dann generiert werden.
Wie sich das jetzt darstellt, sollten dir evtl. JavaScript-Funktionen (AJAX/DOM) weiterhelfen können. Das würde dann auch den Server nicht weiter belasten. Vom Prinzip her ist das ja auf Webseiten z.B. bei Schriftgrößenanpassung oder DIV-Ein-/Ausblendung etc. umgesetzt. Da bin ich allerdings nicht so der Spezi...
 
ja js könnte mir da sicher weiterhelfen, aber darin kenn ich mich überhaupt nicht aus und erwünscht ist es bei dem projekt auch nicht.
 
hi, in deinem bsp werden die links farblich geändert nach einem klick, ich will aber, dass sich die textabsätze (in deinem fall) ändern ;)
 
Rain schrieb:
...erwünscht ist es bei dem projekt auch nicht.
Tja nun, manchmal muß man mal im Rahmen der Zweckdienlichkeit Abstriche bei den Wünschen hinnehmen oder aber auf solche Funktionalitäten verzichten. Mußt halt entscheiden, was da wichtiger is'... Man kann eben nich' alles haben - nothing is perfect!
Ich seh' sonst jedenfalls nur 'ne serverseitige Umsetzbarkeit, wobei ich aber JS für sinnvoller (wg. der Performance) halte.
 
da stimme ich dir voll und ganz zu. na mal schauen, vllt bin ich irgendwann mal dazu gewillt mich in js reinzufrimeln, bis dahin bleibt erst mal die php-version bzw. bei zu hoher serverbelastung lass ichs ganz weg.
 
Ich glaub, so schlimm is' das mit dem "reinfrimeln" gar nicht ;-)
Meiner Meinung nach kann man über DOM-Strukturen per document.getElementById() auf solche Element zugreifen. Wenn du Lust hast, frag doch mal in 'nem speziellen JS-Forum nach - nicht das dies hier schlecht ist, aber manchmal können so "spezielle Spezis" besser helfen...
 
Zurück
Oben