Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Poziome menu z dwoma poziomami.
Forum PHP.pl > Forum > Po stronie przeglądarki > CSS
linx
Witam,

jestem w trakcie przebudowy swojej strony i ma problem. Na swojej stronie mam dwupoziomowe menu.
Na chwilę obecną kod o niego wygląda miej więcej tak:
  1. <div>
  2. <ul>
  3. <li>poziom 1</li>
  4. <li>poziom 1</li>
  5. <li>poziom 1</li>
  6. </ul>
  7. </div>
  8. <div>
  9. <ul>
  10. <li>poziom 2</li>
  11. <li>poziom 2</li>
  12. <li>poziom 2</li>
  13. </ul>
  14. </div>

Do zobaczenia na stronie Moja strona.

Teraz chce je przerobić aby wyglądało dla klienta identycznie, ale z takim kodem.
  1. <div>
  2. <ul>
  3. <li>poziom 1</li>
  4. <li>poziom 1
  5. <ul>
  6. <li>poziom 2</li>
  7. <li>poziom 2</li>
  8. <li>poziom 2</li>
  9. </ul>
  10. </li>
  11. <li>poziom 1</li>
  12. </ul>
  13. </div>
  14.  

I niestety nic mi nie wychodzi nie mam już pomysłów jak to zrobić.
Co zresztą widać http://linx.vipserv.org/

Css wygląda na chwilę obecną tak:

  1. div#menu {
  2. width: 880px;
  3. height: 160px;
  4. }
  5.  
  6. ul#menu_up {
  7. border-right: 10px solid #353535;
  8. border-left: 10px solid #353535;
  9. border-top: 1px solid #353535;
  10. background-image: url('img/ul-tlo-1.jpg');
  11. background-color: #40749C;
  12. float: left;
  13. text-align: center;
  14. width: 880px;
  15. height: 60px;
  16. margin: 0;
  17. padding: 0;
  18.  
  19. }
  20. ul#menu_up li {
  21. display: inline;
  22. margin: 0;
  23. padding: 0;
  24.  
  25. }
  26. ul#menu_up li a{
  27. padding: 25px 24px 22px 24px;
  28. color: #fff;
  29. text-decoration: none;
  30. border-right: 1px solid #fff;
  31. border-left: 1px solid #fff;
  32. background-image: url('img/ul-tlo-1.jpg');
  33.  
  34.  
  35. }
  36. ul#menu_up li a:hover {
  37. background-image: url('img/ul-tlo-2.jpg');
  38. color: #fff;
  39. }
  40. ul#menu_up li a#active {
  41. background: #CACACA;
  42. border-bottom: 2px solid white;
  43. color: #840204;
  44.  
  45. }
  46.  
  47. ul#menu_up_pod2{
  48.  
  49. width: 880px;
  50. height: 120px;
  51. border-right: 10px solid #353535;
  52. border-left: 10px solid #353535;
  53. border-bottom: 1px solid #353535;
  54. border-top: 1px solid #353535;
  55. float: left;
  56. background-image:none;
  57. display: block
  58. }
  59. ul#menu_up_pod2 li{
  60.  
  61. float: left;
  62. text-align: center;
  63. background-image:none;
  64. margin: 9px 14px 0px 14px;
  65.  
  66. }
  67. ul#menu_up_pod2 li a {
  68. padding: 2px 10px 2px 10px;
  69. color: #000;
  70. text-decoration: none;
  71. border-right: 1px solid #fff;
  72. border-left: 1px solid #fff;
  73. text-align: center;
  74. float: left;
  75. }
  76. ul#menu_up_pod2 li a:hover {
  77. background-color: #dfdfdf;
  78. color: #840204;
  79. }
  80. ul#menu_up_pod2 li a#active {
  81. background: #dfdfdf;
  82. color: #840204;
  83. }


Jakiś pomysł?


mathijas
Najprościej głównemu ul nadać position relative i height obejmujący obydwie listy. Li w głównej ULce zostawić w spokoju (może ewentualnie margin-bottom zapewniający miejsce dla dolnej listy), a wewnętrzną ULkę dać na position absolute z left i bottom na 0px i width 100%.

Czyli tak:
ul.top_level { position: relative; height: 100px; width: 1024px; text-align: center }
ul.top_level > li { display: inline; width: 180px; height: 80px; margin-bottom: 20px }

ul.top_level ul.bottom_level { position: absolute; left: 0px; bottom: 0px; width: 1024px; height: 20px; text-align: center }
ul.top_level ul.bottom_level li { display: inline }

(sorry że nie stosuję Twojego nazewnictwa i całości stylu ale jest długi a mi dzisiaj nieco oczka szwankują, a idea chyba wydaje się jasna)

Jeszcze ewentualnie zamiast dawać kontenerowi za dużą wysokość można zrobić inny myk:
ul.top_level { height: 80px; margin-bottom: 20px; }
ul.bottom_level { position: absolute; top: 80px; height: 20px }

(chodzi mi o pozostawienie wolnej przestrzeni pod główną ULką i spozycjonowanie absolutne od topa, żeby dolna ULka wyszła poza swój kontener)

To tak najprościej. Tyle, że pozycjonowanie absolutne nie jest najszczęśliwsze, zwłaszcza jeśli chcesz żeby Twoja strona się ładnie zwijała na mniejszych ekranach.
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.