Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][CSS] Menu jedno pod drugim.
Forum PHP.pl > Forum > Przedszkole
GoldeNx3
Witam! Mam taki kod menu:

  1. #left_menu {
  2. float: left;
  3. width: 240px;
  4. margin: 15px 0 15px 5px;
  5. padding: 5px;
  6. background-color: #FFF;
  7. border-radius: 3px;
  8. -moz-border-radius: 3px;
  9. -webkit-border-radius: 3px;
  10. -khtml-border-radius: 3px;
  11. list-style: none;
  12. display: block;
  13. }
  14.  
  15. #left_menu li a {
  16. display: block;
  17. height: 20px;
  18. margin: 4px 0 5px;
  19. font-family: tahoma;
  20. font-size: 11px;
  21. font-weight: bold;
  22. color: #000;
  23. text-decoration: none;
  24. padding: 5px;
  25. line-height : 20px;
  26. }
  27.  
  28. #left_menu li a:hover {
  29. background: #0b4774;
  30. color: #FFF;
  31. margin: 0 auto;
  32. padding: 5px;
  33. margin: 4px 0 5px;
  34. }



HTML:

  1. <ul id="left_menu">
  2. <li><a class="menu" href="index.php">Strona główna</a></li>';
  3. <li><a class="menu" href="#">Menu #2</a></li>
  4. <li><a class="menu" href="#">Menu #3</a></li>
  5. </ul>
  6.  
  7. <ul id="left_menu">
  8. <li><a class="menu" href="index.php">Strona główna </a></li>';
  9. <li><a class="menu" href="#">Menu #2 2 </a></li>
  10. <li><a class="menu" href="#">Menu #3 2 </a></li>
  11. </ul>


Problem w tym, że mam te dwa bloki, ale są one obok siebie. Co zrobić, by były jeden pod drugim?
Dodanie display:block; do #left_menu nie działa.
Niktoś
Dodaj do css'a:
  1. ul{
  2. clear:both;
  3. }
GoldeNx3
To sie naprawiło, ale kolejna rzecz sie zepsuła.

Po lewej mam te menu, a po prawej mam tak jakby główne okno z informacjami i jest ono generowane coś jak system newsow.


CSS:


  1. .right_side {
  2. width: 600px;
  3. background: #fefefe;
  4. color:#2085d3;
  5. text-align:left;
  6. margin: 15px 5px 5px 15px;
  7. float:right;
  8. border-radius: 3px;
  9. -moz-border-radius: 3px;
  10. -webkit-border-radius: 3px;
  11. -khtml-border-radius: 3px;
  12. padding: 5px;
  13. display:block;
  14. }
  15.  
  16. .right_title
  17. {
  18. width: 600px;
  19. height: 25px;
  20. color: #000;
  21. text-align: center;
  22. padding-top: 10px;
  23. font-weight: bold;
  24. background : url('../images/cellpic.gif');
  25. }
  26.  
  27. .right_content {
  28. margin-top: 8px;
  29. margin-left: auto;
  30. margin-right: auto;
  31. text-align: left ;
  32. height: auto;
  33. max-width: 625px;
  34. color: #000;
  35. }
  36.  
  37. .right_author {
  38. width: auto;
  39. height: 15px;
  40. color: #a1a1a1;
  41. padding-top: 5px;
  42. background-color: #f1f1f1;
  43. float: right;
  44. padding-left: 6px;
  45. padding-right: 6px;
  46. margin-top: 15px;
  47. font-size: 10px;
  48. }



HTML:

  1. <div class="right_side">
  2. <div class="right_title">Tytuł</div>
  3. <div class="right_content">Tresc</div>
  4. <div class="right_author">Autor</div>
  5. </div>
  6. <div class="right_side">
  7. <div class="right_title">Tytuł#2</div>
  8. <div class="right_content">Tresc#2</div>
  9. <div class="right_author">Autor#2</div>
  10. </div>


I teraz ta cała treść spadła w dół i nie jest na równi z menu które jest po lewej, tylko jest menu, po prawe pusto i jak się kończy menu to dopiero pokazuje się główna treść.
Niktoś
To zamiast clear:both ,daj clear:left;
GoldeNx3
Niestety, nic nie pomogło.
Niktoś
Dobra to powinno pomóc:

ul{
display:block;
clear:left;

}
GoldeNx3
To wróciło do wersji początkowej - menu obok siebie.


Link: http://goldenx2.unixstorm.org/


ul{
display:block;
clear:left;

}

niestety, nie działa.
Niktoś
Zostaw tak jak jest i zmień :
  1. .right_side {
  2. -moz-border-radius: 3px 3px 3px 3px;
  3. background: none repeat scroll 0 0 #FEFEFE;
  4. color: #2085D3;
  5. display: inline-block;
  6. margin: 15px 5px 5px 15px;
  7. padding: 5px;
  8. text-align: left;
  9. width: 600px;
  10. }

To tak doraźnie-ale działa.
Poza tym masz błedną strukturę w ul:
Masz
  1. <ul>
  2. <div></div>
  3. <li></li>
  4. </ul>

Wewnątrz ul -nie można zagnieżdżać elementów takie jak <div>
GoldeNx3
To też nie działa jak powinno, ale zrobiłem już po swojemu. Wszystkie menu dałem na jeden UL i oddziela je tylko tytuł, wydaje mi się, iż wygląda równie dobrze, a nawet lepiej.

Co do zagnieżdżania to już jutro poprawię (span mogę dać między UL?), dzięki wielkie!
Niktoś
Niestety żadnych znaczników nie można użyć, tylko wewnątrz<li>.
http://www.kurshtml.edu.pl/html/wykaz,tekst.htmlTe menu musiałoby być zrobione miej więcej w takiej hierarchii:
  1. <div>
  2. <div>TITLE1</div>
  3. <ul>
  4. <li></li>
  5. <li></li>
  6. </ul>
  7. </div>
GoldeNx3
Jakbyś mógł, to pomóż też z tym nagłówkiem, aby nie było tego div'a. ;/

Aktualnie mam tak:

  1. <ul id="left_menu">
  2. <div class="main_left_nav">
  3. <div class="main_left_nav_title">Menu</div>
  4. </div>
  5. <li><a class="menu" href="index.php">Strona główna</a></li>
  6. </ul>


  1. .main_left_nav {
  2. background : url('../images/cellpic.gif');
  3. height : 30px;
  4. width : 100%;
  5. margin-bottom: 5px;
  6. display:block;
  7. text-align : center;
  8. }
  9. .main_left_nav_title {
  10. color : #000000;
  11. font-weight : bold;
  12. text-align : center;
  13. line-height : 30px;
  14. vertical-align : middle;
  15. }
Niktoś
Spróbuj tak:
  1. <div class="main_left_nav">
  2. <div class="main_left_nav_title">Menu</div>
  3. <ul id="left_menu">
  4. <li><a class="menu" href="index.php">Strona główna</a></li>
  5. </ul>
  6. </div>
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.