Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS][HTML]Menu jako drzewko problem
Forum PHP.pl > Forum > Przedszkole
shemko
Witam, mam proste drzewkowe menu na bazie samego CSS (link do strony z menu). Proszę mi powiedzieć w jaki sposób zrobić aby po kliknięciu link się pogrubiał na stałe (tj. nie tylko na zasadzie :hover jak jest obecnie) i wracał do normalnego stanu po "od kliknięciu"? Oto kod:

style css:

  1. ol.tree
  2. {
  3. padding: 0 0 0 0px;
  4. line-height:20px;
  5. }
  6. li
  7. {
  8. position: relative;
  9. margin-left: 0px;
  10. list-style: none;
  11. }
  12. li.file
  13. {
  14. margin-left: -1px !important;
  15. }
  16. li.file a
  17. {
  18. color: #000;
  19. text-decoration: none;
  20. display: block;
  21. font-size:14px;
  22. margin-left:0px;
  23. font-style: normal;
  24. }
  25.  
  26. li input
  27. {
  28. position: absolute;
  29. left: 0;
  30. margin-left: 0;
  31. opacity: 0;
  32. z-index: 2;
  33. cursor: pointer;
  34. height: 1em;
  35. width: 1em;
  36. margin-top:10px;
  37. top: 0;
  38. }
  39. li input + ol
  40. {
  41. margin: -0.938em 0 0 0px; /* 15px */
  42. height: 1em;
  43. }
  44. li input + ol > li { display: none; margin-left: 0px !important; padding-left: 1px; }
  45. li label
  46. {
  47. cursor: pointer;
  48. display: block;
  49. }
  50.  
  51. li label:hover
  52. {
  53. font-weight:bold;
  54. }
  55.  
  56. li input:checked + ol
  57. { font-style: normal;
  58. font-size:15px;
  59. margin: 10px 0px 10px 0px; /* 20px */
  60. padding: 0 0 0 0px;
  61. height: auto;
  62. }
  63. li input:checked + ol > li { display: block; margin: 0 0 0; /* 2px */}
  64. li input:checked + ol > li:last-child { margin: 0 0 0; /* 1px */ }



Kod wyświetlania menu:

  1. <ol class="tree">
  2. <li>
  3. <label for="folder2">Portfolio</label> <input type="checkbox" id="folder2" />
  4. <ol>
  5. <li>
  6. <label for="subfolder1">musicvideo</label> <input type="checkbox" id="subfolder1" />
  7. <ol>
  8. <li class="file"><a href="#" class="black">Anoice</a></li>
  9. <li class="file"><a href="#" class="black">Edyta Górniak</a></li>
  10. <li class="file"><a href="#" class="black">Ewelina Lisowska</a></li>
  11. <li class="file"><a href="#" class="black">Fox</a></li>
  12. <li class="file"><a href="#" class="black">Halina Mlynkowa</a></li>
  13. <li class="file"><a href="#" class="black">Hatbreakers</a></li>
  14. <li class="file"><a href="#" class="black">Justyna Steczkowska</a></li>
  15. <li class="file"><a href="#" class="black">Kari</a></li>
  16. <li class="file"><a href="#" class="black">K Bleax</a></li>
  17. <li class="file"><a href="#" class="black">Magda Steczkowska</a></li>
  18. <li class="file"><a href="#" class="black">Marcin Rozynek</a></li>
  19. <li class="file"><a href="#" class="black">Momo</a></li>
  20. <li class="file"><a href="#" class="black">Paulina Przybysz</a></li>
  21. <li class="file"><a href="#" class="black">Pleq</a></li>
  22. <li class="file"><a href="#" class="black">Sorry Boys</a></li>
  23. <li class="file"><a href="#" class="black">Wojciech Ezzat</a></li>
  24. </ol>
  25. </li>
  26. <li>
  27. <label for="subfolder2">live from studio</label> <input type="checkbox" id="subfolder2" />
  28. <ol>
  29. <li class="file"><a href="#" class="black">Something</a></li>
  30. </ol>
  31. </li>
  32. <li>
  33. <label for="subfolder3">show</label> <input type="checkbox" id="subfolder3" />
  34. <ol>
  35. <li class="file"><a href="#" class="black">Something</a></li>
  36. </ol>
  37. </li>
  38. <li>
  39. <label for="subfolder4">fashion film</label> <input type="checkbox" id="subfolder4" />
  40. <ol>
  41. <li class="file"><a href="#" class="black">Something</a></li>
  42. </ol>
  43. </li>
  44. <li>
  45. <label for="subfolder5">others</label> <input type="checkbox" id="subfolder5" />
  46. <ol>
  47. <li class="file"><a href="#" class="black">Something</a></li>
  48. </ol>
  49. </li>
  50. </ol>
  51. </li>
  52. </ol>
patwoj98
Jeśli dobrze rozumiem pytanie to są 2 drogi:

1) za pomocą CSS

Kod
a:visited{
font-weight:bold;
}


2) Za pomocą jQuery:

Kod
  $(document).ready(function(){
    $('a').click(function(){
        $(this).css('font-weight','bold');
    });
});


Potestuj to. 1 wersja zostawia trwały ślad, kiedy druga działa tylko do czasu wyjścia użytkownika ze strony.
shemko
Dzięki za pomoc smile.gif Jeszcze miałbym pytanie odnośnie powyższego kodu, czy jest możliwość ustawienia aby po kliknięciu innej podkategorii, ta wcześniej otwarta zamykała się automatycznie?

Chyba że jest jakiś ogólnodostępny skrypt (może jQuery) z "tree menu" który łatwo można by przerobić do tej formy co powyżej?

Chciałem stworzyć proste menu na zasadzie Portfolio > (rozwija) > klika podkategorii > każda podkategoria rozwija linki do podstron. Z tym że kliknięcie każdej podkategorii powoduje zamknięcie wcześniej co daje możliwość otwarcia tylko jednej podkategorii w jednym momencie.
patwoj98
Wszystko się da zrobić wink.gif Trzeba tylko chcieć i pomyśleć.

http://jqueryui.com/accordion/ - możesz to spróbować przerobić. Potrzeba do tego biblioteki jQuery UI.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.