Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Jak zrobić podkreślenie oglądanego linku?
harbii
post
Post #1





Grupa: Zarejestrowani
Postów: 311
Pomógł: 1
Dołączył: 27.05.2006

Ostrzeżenie: (0%)
-----


Witam!
Chciałbym zrobić coś takiego:
Mamy:

Link1 * Link2 * Link3 * Link4

Chciałbym aby po kliknieciu np Link2 (otwiera się stronka) i linki wyglądają tak:

Link1 * Link2 * Link3 * Link4

Jeżeli wybiore sobie np link4 to mamy:

Link1 * Link2 * Link3 * Link4


Czyli jak zrobić aby w "menu" z linkami był podreślany link z którego aktualnie oglądana jest stronka?
Oczywiście po przejściu na inny link podkreślony jest tylko ten na który prześliśmy (tak jak w przykładzie).

Ten post edytował harbii 17.10.2006, 17:40:44
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
batman
post
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




http://www.w3schools.com/css/css_pseudo_classes.asp
Go to the top of the page
+Quote Post
siemakuba
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


Nie, nie chodzi tu o pseudoklasy hover, active itp.
Musisz jakoś wiedzieć na której jesteś podstronie. Załóżmy, że zrobisz sobie zmienną, która będzie przechowywała informacje o aktualnej oglądanej stronie.
  1. <?php
  2. $page = 'strona2';
  3. ?>

Teraz, musisz nadać linkowi odpowiadającemu tej stronie odpowiednia klasę.
  1. <?php
  2. echo '<a href="#" class="'.($page == 'strona1' ? 'current' : 'normal').'">Link 1</a>';
  3. echo '<a href="#" class="'.($page == 'strona2' ? 'current' : 'normal').'">Link 2</a>';
  4. echo '<a href="#" class="'.($page == 'strona3' ? 'current' : 'normal').'">Link 3</a>';
  5. ?>

Na koniec, nadajesz klasie "current" odpowiedni styl:
  1. A.current {
  2. text-decoration:underline;
  3. }

pozdr.
Go to the top of the page
+Quote Post
Lee
post
Post #4





Grupa: Zarejestrowani
Postów: 319
Pomógł: 0
Dołączył: 11.04.2006
Skąd: Chojnów

Ostrzeżenie: (0%)
-----


Kod
a.active {
    text-decoration: underline;
}

nie działa ?
Go to the top of the page
+Quote Post
batman
post
Post #5





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat
Musisz jakoś wiedzieć na której jesteś podstronie. Załóżmy, że zrobisz sobie zmienną, która będzie przechowywała informacje o aktualnej oglądanej stronie.


Po co zmienna? $_SERVER - tam jest wszystko co potrzeba. Po za tym jestem pewien, że pseudo klasy powinny sobie z tym poradzić.

Ten post edytował batman 13.10.2006, 20:15:25
Go to the top of the page
+Quote Post
harbii
post
Post #6





Grupa: Zarejestrowani
Postów: 311
Pomógł: 1
Dołączył: 27.05.2006

Ostrzeżenie: (0%)
-----


hmmm zaden pomysł nie działa
@siemakuba - może twój jest ok. ale co gdziw powklejac bo niebardzo mi to działa. Może coś źle robie.
Podaj wersje dla totalnego laika. gdzie co wkleić na które podstrony jaki kod
ja zrobułem w menu.php
  1. <?php
  2. echo '<a href="#" class="'.($page == 'strona1' ? 'current' : 'normal').'">Link 1</a>';
  3. echo '<a href="#" class="'.($page == 'strona2' ? 'current' : 'normal').'">Link 2</a>';
  4. echo '<a href="#" class="'.($page == 'strona3' ? 'current' : 'normal').'">Link 3</a>';
  5. ?>

w style.css
  1. A.current {
  2. text-decoration:underline;
  3. }

i w np index.php
  1. <?php
  2. $page = 'strona1';
  3. ?>

itd z s2 s3

ale tak nie działa.
HELP!
Go to the top of the page
+Quote Post
siemakuba
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


@harbii: możesz pokazać troszkę więcej (jakikolwiek) kodu - jak i gdzie ustawiasz zmienne, jak pokazujesz.

@batman: masz rację, jest tablica $_SERVER, ale wydaje mi się, że dla laika prościej będzie ustawić kilka zmiennych i z nich korzystać niż grzebać w tabjemniczej tablicy $_SERVER i dochodzić co w niej jest.

Cytat
Po za tym jestem pewien, że pseudo klasy powinny sobie z tym poradzić.
Moja pewność jest zupełnie odwrotna. Nie wydaje mi się, żeby CSS wiedział jaką stronę aktualnie przeglądasz :) Pseudoklasa :active uruchamia się zdaje się w momencie kliknięcia na link, prawda? Po tym kliknięciu jesteś już na kolejnej podstronie.

pozdr.
Go to the top of the page
+Quote Post
batman
post
Post #8





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat
masz rację, jest tablica $_SERVER, ale wydaje mi się, że dla laika prościej będzie ustawić kilka zmiennych i z nich korzystać niż grzebać w tabjemniczej tablicy $_SERVER i dochodzić co w niej jest.


Wydaje mi się, że lepiej od samego początku uczyć się poprwnie programować, niż kombinować jak koń pod górkę. Co do styli, to moja pewność nieco zmalała (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
phpion
post
Post #9





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




a:active zadziala ale tylko w ramkach. Przy przeladowaniu strony nie bedzie dzialac. Moze zrobic to tak:
  1. .aktywny {
  2. font-weight: bold;
  3. }
  4. .normalny {
  5. font-weight: normal;
  6. }

  1. <?php
  2. $pages = Array(1 => "Strona glowna", "Druga strona", "Trzecia strona");
  3.  
  4. $page = (isset($_GET['page'])) ? $_GET['page'] : 1;
  5.  
  6. foreach ($pages as $index => $value)
  7. {
  8. $class = ($index == $page) ? 'aktywny' : 'normalny';
  9.  
  10. echo '<a href="index.php?page='.$index.'" class="'.$class.'">'.$value.'</a> ';
  11. }
  12. ?>

W sumie nie sprawdzalem ale powinno byc ok.
Go to the top of the page
+Quote Post
s_w_ir
post
Post #10





Grupa: Zarejestrowani
Postów: 315
Pomógł: 1
Dołączył: 6.08.2003
Skąd: Kielce

Ostrzeżenie: (0%)
-----


To co podam poniżej działa dzięki temu że body każdej strony ma inne id. Tzn dzięki id wiadomo która zakładka ma być wyrózniona.

http://forum.php.pl/index.php?showtopic=52...mp;#entry287981
Go to the top of the page
+Quote Post
harbii
post
Post #11





Grupa: Zarejestrowani
Postów: 311
Pomógł: 1
Dołączył: 27.05.2006

Ostrzeżenie: (0%)
-----


po testach i małych przeróbkach działa sposób @siemakuba
ALE
nie działa jeżeli wszystko wrzucam przez index.php.

Czyli jeżeli napisze to tak:

start.php
  1. <LINK rel="stylesheet" href="tlo.css" type="text/css">
  2. <?php
  3. $page = 'strona1';
  4. ?>
  5. <?php
  6. echo '<a href="start.php" class="'.($page == 'strona1' ? 'current' : 'normal').'">start<br></a>';[php]
  7. echo '<a href="strona2.php" class="'.($page == 'strona2' ? 'current' : 'normal').'">Link 2<br></a>';
  8. echo '<a href="kontakt.php" class="'.($page == 'strona3' ? 'current' : 'normal').'">Link 3<br> </a>';
  9. ?>
  10.  
  11. START


strona2.php
  1. <LINK rel="stylesheet" href="tlo.css" type="text/css">
  2. <?php
  3. $page = 'strona2';
  4. ?>
  5. <?php
  6. echo '<a href="start.php" class="'.($page == 'strona1' ? 'current' : 'normal').'">start<br></a>';
  7. echo '<a href="strona2.php" class="'.($page == 'strona2' ? 'current' : 'normal').'">Link 2<br></a>';
  8. echo '<a href="kontakt.php" class="'.($page == 'strona3' ? 'current' : 'normal').'">Link 3<br> </a>';
  9. ?>
  10.  
  11. STRONA2


kontakt.php
  1. <LINK rel="stylesheet" href="tlo.css" type="text/css">
  2. <?php
  3. $page = 'strona3';
  4. ?>
  5. <?php
  6. echo '<a href="start.php" class="'.($page == 'strona1' ? 'current' : 'normal').'">start<br></a>';
  7. echo '<a href="strona2.php" class="'.($page == 'strona2' ? 'current' : 'normal').'">Link 2<br></a>';
  8. echo '<a href="kontakt.php" class="'.($page == 'strona3' ? 'current' : 'normal').'">Link 3<br> </a>';
  9. ?>
  10.  
  11. KONTAKT


tlo.css
  1. BODY { background-color:#000000; font-size:10; color:#CCCCCC; font-family:Arial, Helvetica, sans-serif}
  2. A{color: ffffff; text-decoration:inherit; text-decoration: none; font-size:12; font-family:Arial, Helvetica, sans-serif}
  3. A:hover{color: #ffffff; font-size:12; text-decoration:underline; font-family:Arial, Helvetica, sans-serif}
  4. table { background-color:#000000; font-size:13; color:#CCCCCC; font-family:Arial, Helvetica, sans-serif}
  5. A.current {
  6. text-decoration:underline;
  7. }


TO DZIAŁA!!! (IMG:http://forum.php.pl/style_emoticons/default/aarambo.gif)

ale nie o to chodzi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) nie poto robie tą stronke w php aby każdą osobno pisać

Ja bym chciał ayby działało to tak:

tlo.css
  1. BODY { background-color:#000000; font-size:10; color:#CCCCCC; font-family:Arial, Helvetica, sans-serif}
  2. A{color: ffffff; text-decoration:inherit; text-decoration: none; font-size:12; font-family:Arial, Helvetica, sans-serif}
  3. A:hover{color: #ffffff; font-size:12; text-decoration:underline; font-family:Arial, Helvetica, sans-serif}
  4. table { background-color:#000000; font-size:13; color:#CCCCCC; font-family:Arial, Helvetica, sans-serif}
  5. A.current {
  6. text-decoration:underline;
  7. }


menu.php
  1. <?php
  2. echo '<a href="index.php?srodek=start.php" class="'.($page == 'strona1' ? 'current' : 'normal').'">start<br></a>';
  3. echo '<a href="index.php?srodek=strona2.php" class="'.($page == 'strona2' ? 'current' : 'normal').'">Link 2<br></a>';
  4. echo '<a href="index.php?srodek=kontakt.php" class="'.($page == 'strona3' ? 'current' : 'normal').'">Link 3<br> </a>';
  5. ?>




start.php
  1. <?php
  2. $page = 'strona1';
  3. ?>
  4.  
  5.  
  6. START


kontakt.php
  1. <?php
  2. $page = 'strona3';
  3. ?>
  4.  
  5.  
  6. KONTAKT


strona2.php
  1. <?php
  2. $page = 'strona2';
  3. ?>
  4.  
  5.  
  6. STRONA2


A WSZYSTKO IDZIE PRZEZ INDEX.php

index.php
  1. <LINK rel="stylesheet" href="tlo.css" type="text/css">
  2.  
  3. <?php
  4. include ('menu.php')
  5. ?><br />
  6. <br />
  7. <?php
  8.  
  9.  
  10. if (isset($_GET['srodek']))
  11. {
  12. $srodek=$_GET['srodek'];
  13. include("./$srodek");
  14. }
  15. else
  16. { 
  17. include('./start.php');
  18. }
  19.  
  20. ?>



A w ten sposób nie działa (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Myśl @siemakuba jest dobra ale teraz pomóżcie w przerobieniu to aby działoło to przez includy w index.php

(IMG:http://forum.php.pl/style_emoticons/default/blink.gif)
Go to the top of the page
+Quote Post
siemakuba
post
Post #12





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


Bo, skoro robisz to tak, to wszystko jets proste. Zamiast tworzyć zmienne tak jak pokazałem możesz użyć tego co już masz, czyli zmiennych w $_GET, bo na ich podstawie pokazujesz cokolwiek w środku.

Plik menu.php:
  1. <?php
  2. echo '<a href="start.php" class="'.($_GET['srodek'] == 'strona1' ? 'current' : 'normal').'">start<br></a>';
  3. echo '<a href="strona2.php" class="'.($_GET['srodek'] == 'strona2' ? 'current' : 'normal').'">Link 2<br></a>';
  4. echo '<a href="kontakt.php" class="'.($_GET['srodek'] == 'strona3' ? 'current' : 'normal').'">Link 3<br> </a>';
  5. ?>

Oczywiście zamiast strona1, strona2 itd. podstaw swoje wartości.

pozdr.
Go to the top of the page
+Quote Post
harbii
post
Post #13





Grupa: Zarejestrowani
Postów: 311
Pomógł: 1
Dołączył: 27.05.2006

Ostrzeżenie: (0%)
-----


wywala teraz

Notice: Undefined index: srodek in d:\easyphp1-8\easyphp1-8\www\t\menu.php on line 2
start

Notice: Undefined index: srodek in d:\easyphp1-8\easyphp1-8\www\t\menu.php on line 3
Link 2

Notice: Undefined index: srodek in d:\easyphp1-8\easyphp1-8\www\t\menu.php on line 4
Link 3


START
Go to the top of the page
+Quote Post
phpion
post
Post #14





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Moze sprobuj przetestowac to, co ja napisalem? Moje dziala na pewno.
Go to the top of the page
+Quote Post
siemakuba
post
Post #15





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


O ranny rany...
kurcze, trzeba jeszcze by sprawdzić skąd się bierze taki Notice, ale to już nie proste.. eh...
Undefined Index = nie w tablicy $_GET klucza 'srodek'. W kodzie, który pokazałeś masz sprawdzanie tego, uznałem że dalej sobie poradzisz.

Zrób tak:
  1. <?php
  2. $page = isset($_GET['srodek']) ? $_GET['srodek'] : '');
  3.  
  4. echo '<a href="start.php" class="'.($page == 'strona1' ? 'current' : 'normal').'">start<br></a>';
  5. echo '<a href="strona2.php" class="'.($page == 'strona2' ? 'current' : 'normal').'">Link 2<br></a>';
  6. echo '<a href="kontakt.php" class="'.($page == 'strona3' ? 'current' : 'normal').'">Link 3<br> </a>';
  7. ?>


pozdr.
Go to the top of the page
+Quote Post
harbii
post
Post #16





Grupa: Zarejestrowani
Postów: 311
Pomógł: 1
Dołączył: 27.05.2006

Ostrzeżenie: (0%)
-----


@siemakuba
coś to nie działa (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) , w drugiej linie jest błąd, coś chyba z nawiasami.

@phpion.com
to działa. tylko podpowiedz mi gdzie wpisać linki do podstron?
Go to the top of the page
+Quote Post
siemakuba
post
Post #17





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


@harbii: osłabiasz mnie... gdybyś trochę pomyślał a nie oczwkiwał gotowego rozwiązania wszystko by działało. Fakt, zgubiłem jeden nawias, ale powinieneś to zauważyć, tymbardziej, że dostałeś info o błędzie.
  1. <?php
  2. $page = isset($_GET['srodek']) ? $_GET['srodek'] : '';
  3. ?>

To jest poprawiona linia 2. Z mojej strony EOT, dopuki nie wykażesz inicjatywy.

pozdr.

Ten post edytował siemakuba 15.10.2006, 12:37:29
Go to the top of the page
+Quote Post
harbii
post
Post #18





Grupa: Zarejestrowani
Postów: 311
Pomógł: 1
Dołączył: 27.05.2006

Ostrzeżenie: (0%)
-----


jakbym się tak dobrze znał na php to bym poprawiał błędy, ale ja niestety się dopiero uczę php

po twojej poprawce niestety nadal nie działa.

pomysł @phpion.com działa
tylko nie wiem jak wpisac linki

Ten post edytował harbii 16.10.2006, 10:26:04
Go to the top of the page
+Quote Post
lopik
post
Post #19





Grupa: Zarejestrowani
Postów: 340
Pomógł: 0
Dołączył: 7.07.2006

Ostrzeżenie: (0%)
-----


Do skryptu: phpion.com

Jeśli dobrze to rozumiem, to dopisujesz je do tablicy:
Przecinek, i w nawiasie nazwa linka.

  1. <?php
  2. $pages = array(1 => "Strona glowna", "Druga strona", "Trzecia strona", "Strona Czwarta");
  3. ?>


Ale pewno nie rozumiem tego (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował lopik 16.10.2006, 11:17:15
Go to the top of the page
+Quote Post
harbii
post
Post #20





Grupa: Zarejestrowani
Postów: 311
Pomógł: 1
Dołączył: 27.05.2006

Ostrzeżenie: (0%)
-----


no ok.
ale gdzie wpisać linki?
bo jak skopiuje <a ....
to dublują sie i mam
Strona glowna Druga strona Trzecia strona Strona glowna Druga strona Trzecia strona

Ten post edytował harbii 16.10.2006, 11:47:36
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 10:41