Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [css] Menu rozwijane w css
Forum PHP.pl > Forum > Przedszkole
lukash82
Witam,

Na podstawie http://www.alistapart.com/articles/dropdowns/ zrobiłem takie testowe menu rozwijane. Chciałbym je jednak nieco zmodyfikować ale pomysły mi się skończyły i nie bardzo wiem jak ten temat dalej ruszyć. Działający kod wygląda tak:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <style type="text/css">
  3. body{
  4. background : grey;}
  5. #top .menu{
  6. padding : 0;
  7. margin : 0 auto;
  8. height : 30px;
  9. width : 300px;
  10. text-align : center;
  11. background : red;}
  12. #top .menu ul{
  13. padding : 0;
  14. margin : 0 auto;
  15. list-style : none;
  16. float : none;}
  17. #top .menu li{
  18. position : relative;
  19. margin : 0;
  20. text-align : center;
  21. height : 30px;
  22. float : left;
  23. width : 100px;}
  24. #top .menu a{
  25. margin : 0;
  26. padding : 0 0 10px 0;
  27. display : block;}
  28. #top .menu a:hover{
  29. margin : 0;
  30. padding : 0 0 10px 0;
  31. background : white;
  32. display : block;}
  33. #top .menu li ul{
  34. display : none;
  35. position : absolute;
  36. top : 0;
  37. left : 0;}
  38. #top .menu li > ul {
  39. top : auto;
  40. left : auto;}
  41. #top .menu li:hover ul, li.over ul{
  42. display : block;
  43. background : green;
  44. margin : 0;}
  45. <script type="text/javascript"><!--//--><![CDATA[//><!--
  46. startList = function() {
  47. if (document.all&&document.getElementById) {
  48. navRoot = document.getElementById("nav");
  49. for (i=0; i<navRoot.childNodes.length; i++) {
  50. node = navRoot.childNodes[i];
  51. if (node.nodeName=="LI") {
  52. node.onmouseover=function() {
  53. this.className+=" over";
  54. }
  55. node.onmouseout=function() {
  56. this.className=this.className.replace(" over", "");
  57. }
  58. }
  59. }
  60. }
  61. }
  62. window.onload=startList;
  63. //--><!]]></script>
  64. </head>
  65. <div id="top">
  66. <div class="menu">
  67. <ul id="nav">
  68. <li><a href="#">menu 1</a></li>
  69. <li><a href="#">menu 2</a>
  70. <ul>
  71. <li><a href="#">podmenu 2-1</a></li>
  72. <li><a href="#">podmenu 2-2</a></li>
  73. <li><a href="#">podmenu 2-3</a></li>
  74. </ul>
  75. </li>
  76. <li><a href="#">menu 3</a></li>
  77. </ul>
  78. </div>
  79. </div>
  80. </body>
  81. </html>


I teraz jak najeżdża się na menu to tło zmienia się na białe. Następnie gdy najedziemy na któreś podmenu to wtedy ono też robi się białe jednak tło głównego menu wraca do koloru czerwonego w tym przypadku. Efekt jaki chciałbym osiągnąć to po najechaniu na podmenu, menu główne dalej pozostaje podświetlone na biało. Maci na to jakiś pomysł może?
Damonsson
Dodaj do stylów:

  1. #top .menu li:hover{
  2. margin : 0;
  3. background : white;
  4. display : block;}
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.