Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Rozwijane menu w css i chowanie się rozwiniętego menu pod zawartość strony, z-index nie działa
MOniToR
post
Post #1





Grupa: Zarejestrowani
Postów: 182
Pomógł: 2
Dołączył: 16.11.2003
Skąd: Wrocław / Skokowa

Ostrzeżenie: (10%)
X----


Strona http://www.goprojects20080129.dev.mamboassistance.com/

Znalazłem proste drop down menu css, wszystko ładnie śmiga tylko dla przykładu jak się najedzie na obrazek, który jest jako pierwszy element menu ucina rozwinięte menu, od momentu gdy nachodzi na cześć z zawartością strony. Kombinowałem z z-index ale nie przyniosło to żadnego efektu :/ Często mi się tak zdarzało w innych projektach, zazwyczaj jednak rezygnowałem z rozwijanego menu ale w tym przypadku tak zrobić nie mogę :/ proszę o pomoc...
CSS:
  1. #menu {
  2. background: url(../images/menu.png) no-repeat top left;
  3. width:524px;
  4. height:50px;
  5. text-align:left;
  6. float:right;
  7. z-index:400;
  8. }
  9.  
  10. #cssdropdown, #cssdropdown ul {
  11. padding: 0;
  12. margin: 0;
  13. list-style: none;
  14. }
  15.  
  16. #cssdropdown li {
  17. float: left;
  18. position: relative;
  19. }
  20.  
  21. .mainitems{
  22. border: 1px solid black;
  23. background-color: #562f2c;
  24. }
  25.  
  26. .mainitems a{
  27. margin-left: 6px;
  28. margin-right: 8px;
  29. text-decoration: none;
  30.  
  31. }
  32.  
  33. .subuls{
  34. display: none;
  35. width: 10em;
  36. position: absolute;
  37. top: 1.2em;
  38. left: 0;
  39. background-color: #562f2c;
  40. border: 1px solid black;
  41. }
  42.  
  43. .subuls li{
  44. width: 100%;
  45. }
  46.  
  47. .subuls li a{
  48. text-decoration: underline;
  49. }
  50.  
  51. #cssdropdown li>ul { /* to override top and left in browsers other than IE, which will position to the top right of the containing li, rather than bottom left */
  52. top: auto;
  53. left: auto;
  54. }
  55.  
  56. #cssdropdown li:hover ul, li.over ul { /* lists nested under hovered list items */
  57. display: block;
  58. }
  59.  
  60. #restofcontent { /*wrap rest of content of the page inside this div*/
  61. clear: left;
  62. }

HTML:
  1. <div id="menu"><ul id="cssdropdown">
  2.  
  3. <li class="mainitems">
  4. <a href="http://www.cssdrive.com"><img src="templates/mbpc/images/menu_aboutus.png" alt="" height="20" border="0" /></a>
  5. <ul class="subuls">
  6. <li><a href="">Gordon Mac</a></li>
  7. <li><a href="">Juiced Thoughts</a></li>
  8. <li><a href="">The Daily Flight</a></li>
  9. <li><a href="">GrapeFruit</a></li>
  10. </ul>
  11. </li>
  12.  
  13. <li class="mainitems">
  14. <a href="http://www.cssdrive.com/index.php/examples/">CSS Examples</a>
  15. <ul class="subuls" style="width: 15em">
  16. <li><a href="">CSS2 Generated Content</a></li>
  17. <li><a href="">Custom scrollbar colors</a></li>
  18. <li><a href="">Markerless and "no indent" Lists</a></li>
  19. </ul>
  20. </li>
  21. <li class="mainitems">
  22. <a href="http://www.cssdrive.com/index.php/examples/">CSS Examples</a>
  23. <ul class="subuls" style="width: 15em">
  24. <li><a href="">CSS2 Generated Content</a></li>
  25. <li><a href="">Custom scrollbar colors</a></li>
  26. <li><a href="">Markerless and "no indent" Lists</a></li>
  27. </ul>
  28. </li>
  29. <li class="mainitems">
  30. <a href="http://www.cssdrive.com/index.php/examples/">CSS Examples</a>
  31. <ul class="subuls" style="width: 15em">
  32. <li><a href="">CSS2 Generated Content</a></li>
  33. <li><a href="">Custom scrollbar colors</a></li>
  34. <li><a href="">Markerless and "no indent" Lists</a></li>
  35. </ul>
  36. </li>
  37. <li class="mainitems">
  38. <a href="http://www.cssdrive.com/index.php/examples/">CSS Examples</a>
  39. <ul class="subuls" style="width: 15em">
  40. <li><a href="">CSS2 Generated Content</a></li>
  41. <li><a href="">Custom scrollbar colors</a></li>
  42. <li><a href="">Markerless and "no indent" Lists</a></li>
  43. </ul>
  44. </li>
  45. </ul>
  46.  
  47. <div id="restofcontent">
  48. <br />
  49.  
  50. </div></div>


Ten post edytował MOniToR 7.02.2008, 12:33:00
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
nevt
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


oddziel w kodzie i spozycjonuj menu i resztę, czyli w htlm:
  1. <div id="menu">
  2. ...
  3. </div>
  4. <div id="restofcontent">
  5. ...
  6. </div>

a w css dodaj:
Kod
#menu
{ position: relative; z-index: 10; overflow: visible; }

#restofcontent
{ position: relative; z-index: 1; top: -100px; }
//top ustaw tak żeby ładnie "podeszło" pod menu...

i powinno być ok. chyba że się gdzieś pomyliłem, pisałem z pamięci...

Ten post edytował nevt 7.02.2008, 13:03:51
Go to the top of the page
+Quote Post
MOniToR
post
Post #3





Grupa: Zarejestrowani
Postów: 182
Pomógł: 2
Dołączył: 16.11.2003
Skąd: Wrocław / Skokowa

Ostrzeżenie: (10%)
X----


możesz mi powiedzieć o masz na myśli mówiąc oddziel w kodzie html?
Go to the top of the page
+Quote Post
nevt
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


a nie widzisz co napisałem? w twoim kodzie div#restofcontent zawiera się wewnątrz div#menu, a w moim kodzie są rozdzielone... (wg DOM: u ciebie są jak rodzic - dziecko, a u mnie jak rodzeństwo.)

dość istotne, bo z-index dotyczy kolejności renderowania elementów na tym samym poziomie drzewa DOM...
Go to the top of the page
+Quote Post
MOniToR
post
Post #5





Grupa: Zarejestrowani
Postów: 182
Pomógł: 2
Dołączył: 16.11.2003
Skąd: Wrocław / Skokowa

Ostrzeżenie: (10%)
X----


tylko, że template jest tak zrobiony, że content(zawartość) jest pierwsza w kodzie html i menu jest niżej i chyba przez to dalej nie działa tak jak powinno bo wprowadziłem zmiany o których mówiłeś :/

  1. <div id="minHeight"></div>
  2. <div id="outer">
  3. <div id="outer2">
  4. <div id="outer3">
  5. <div id="centrecontent">
  6. <!--centre content goes here -->
  7. <div id="main">
  8. <div id="main_start"></div>
  9. <div id="main_content"><div class="txt"><?php mospathway() ?>
  10. <?php mosMainBody(); ?>
  11. <?php mosLoadModules('bottom');?></div></div>
  12. <div id="main_end"></div>
  13. </div>
  14. </div>
  15. <div id="right">
  16. <div id="right_start"></div>
  17. <div id="right_main"><div class="txt"><?php mosLoadModules('right');?></div></div>
  18. <div id="right_end"></div>
  19. </div>
  20. <div id="clearfooter"></div>
  21. <!-- ie needs this -->
  22. <div id="header">
  23. <div id="top"><div id="topmenu"><?php mosLoadModules('top');?></div></div>
  24. <div id="menu_leftside"></div>
  25. <div id="menu">
  26.  
  27. TUTAJ ZAWARTOŚĆ MENU
  28.  
  29. <div id="restofcontent">
  30. <br />
  31.  
  32. </div><?php mosLoadModules('user3');?> </div>
  33. </div>
  34. </div>
  35. </div>
  36. <div id="shadow_main_bottom"></div>
  37. <div id="footer">
  38. <div id="user1"><div id="user1_a"><?php mosLoadModules('user1');?> </div></div>
  39. <div id="user2"><div id="user2_a"><?php mosLoadModules('user2');?> </div></div>
  40. <?php mosLoadModules('footer');?>
  41. </div>
  42. </div>
  43. <!-- end outer div -->
  44. </body>
  45. </html>


Ten post edytował MOniToR 7.02.2008, 13:33:03
Go to the top of the page
+Quote Post
nevt
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


to zmień template - w czym kłopot ? przesuwasz </div> z linijki zaznaczonej XXX do linijki >>>
  1. TUTAJ ZAWARTOŚĆ MENU
  2.  
  3. >>>
  4. <div id="restofcontent">
  5. <br />
  6.  
  7. </div><?php mosLoadModules('user3');?> </div>
  8. </div>
  9. XXX </div>

i będzie ok.
Go to the top of the page
+Quote Post
MOniToR
post
Post #7





Grupa: Zarejestrowani
Postów: 182
Pomógł: 2
Dołączył: 16.11.2003
Skąd: Wrocław / Skokowa

Ostrzeżenie: (10%)
X----


Zrobiłem tak i dalej nic:/

MI się wydaje, że to może przez to, że div z zawartością jest wyżej, przez co jest interpretowany jako ważniejszy i dlatego tak sie dzieje...

http://www.goprojects20080129.dev.mamboass...pc/css/menu.css
http://www.goprojects20080129.dev.mamboass...emplate_css.css
http://www.goprojects20080129.dev.mamboass...late_ie_css.css

Teraz to wygląda tak:

  1. <div id="minHeight"></div>
  2. <div id="outer">
  3. <div id="outer2">
  4. <div id="outer3">
  5. <div id="centrecontent">
  6. <!--centre content goes here -->
  7. <div id="main">
  8. <div id="main_start"></div>
  9. <div id="main_content"><div class="txt"><?php mospathway() ?>
  10. <?php mosMainBody(); ?>
  11. <?php mosLoadModules('bottom');?></div></div>
  12. <div id="main_end"></div>
  13. </div>
  14. </div>
  15. <div id="right">
  16. <div id="right_start"></div>
  17. <div id="right_main"><div class="txt"><?php mosLoadModules('right');?></div></div>
  18. <div id="right_end"></div>
  19. </div>
  20. <div id="clearfooter"></div>
  21. <!-- ie needs this -->
  22. <div id="header">
  23. <div id="top"><div id="topmenu"><?php mosLoadModules('top');?></div></div>
  24. <div id="menu_leftside"></div>
  25. <div id="menu">
  26.  
  27. TUTAJ MENU
  28.  
  29. </div>
  30. <div id="restofcontent">
  31. <br />
  32. </div>
  33.  
  34. </div><?php mosLoadModules('user3');?> </div>
  35. </div>
  36.  
  37. <div id="shadow_main_bottom"></div>
  38. <div id="footer_shadow_top"></div>
  39. <div id="footer">
  40. <div id="bottom">
  41. <div id="bottom_start"></div>
  42. <div id="bottom_main"><div id="user1_a"><?php mosLoadModules('user1');?> </div>
  43. </div>
  44. <div id="bottom_end"></div>
  45. </div>
  46. <div id="bottom2">
  47. <div id="bottom_start"></div>
  48. <div id="bottom_main"><div id="user1_a"><?php mosLoadModules('user2');?> </div>
  49. </div>
  50. <div id="bottom_end"></div>
  51. </div>
  52. <?php mosLoadModules('footer');?>
  53. </div>
  54. </div>
  55. <!-- end outer div -->
  56. </body>

Lub live - www.goprojects20080129.dev.mamboassistance.com

Możesz poradzić coś jeszcze? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
nevt
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


kod który ci nie działa - to nie ten sam kod który pokazujesz tu na forum - wystaw gdzieś tą stronkę - wtedy będzie można popatrzeć co naprawdę nie trybi...

a elementy renderowane są przez przeglądarkę w takiej kolejności:

napierw rodzice, potem dzieci (bez względu na z-index) - dzieci są zawsze "nad" rodzicami
bracia według z-index - większy z-index jest "nad" mniejszym
jeśli bracia nie mają z-index (albo mają jednakowe) to według kolejności wystąpienia w kodzie - element później zdefiniowany jest "nad" wcześniej zdefiniowanym

innych reguł nie ma (nie licząc flasha, ramek czy innych plugin'ów)

EDIT:
coś ty wykombinował (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif)
  1. <div id="restofcontent">
  2. <br />
  3. </div>


W <div id="restofcontent"> MUSISZ ZAWRZEć CAŁĄ POZOSTAŁĄ ZAWARTOŚć STRONY (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) !

Ten post edytował nevt 7.02.2008, 15:16:53
Go to the top of the page
+Quote Post
MOniToR
post
Post #9





Grupa: Zarejestrowani
Postów: 182
Pomógł: 2
Dołączył: 16.11.2003
Skąd: Wrocław / Skokowa

Ostrzeżenie: (10%)
X----


Strona to jest Joomla. Skrypt wziąłem stad http://www.cssdrive.com/index.php/examples...drop_down_menu/

Jaki kod potrzebujesz? Mi się wydaje, że zamieściłem cały odpowiedzialny za ten skrypt...

Edit:

No tak ale jak ja mam o zrobić na takim template jaki mam? Gdybym miał to zrobione tak, że najpierw jest menu a później zawartość to by było łatwo ale na tym to nie wiem...

Ten post edytował MOniToR 7.02.2008, 15:20:43
Go to the top of the page
+Quote Post

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: 22.12.2025 - 16:52