Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Menu w CSS
Forum PHP.pl > Forum > Po stronie przeglądarki
Spykaj
Hmmm, normalnie używałem w menu tabel, ale przeczytałem, że lepiej menu się robi w CSS ;d no to spróbowałem i wynikły z tego same problemy tongue.gif oto kod:

  1. <head>
  2. <title>Moje projekty PHP + MySQL</title>
  3. <style type="text/css">
  4. <!--
  5. #menu .border{border-top: black 1px solid; border-left: black 1px solid; padding: 0px margin: 0px;}
  6. #menu .header{font-family: Tahoma; font-weight: bold; font-size: 10pt; border-right: black 1px solid; border-bottom: black 1px solid; color: blue;}
  7. #menu .element{font-family: Tahoma; font-size: 8pt; text-align: left; border-right: black 1px solid; border-bottom: black 1px solid; padding-left: 3px;}
  8. -->
  9. </style>
  10. </head>
  11. <body>
  12.  
  13. <div id="menu">
  14. <div class="border">
  15. <div class="header">Menu</div>
  16. <form action="nieważne">
  17. <div class="element">Link 1</div>
  18. <div class="element">Link 2</div>
  19. <div class="element">Link 3</div>
  20. </form>
  21. </div>
  22. </div>
  23.  
  24. </body>
  25. </html>


W Fx jest wszystko ok, ale IE 6 traktuje <form> i </form> jako tekst sleep.gif przez co efekt jest niezadowalający. Czy ten kod w ogóle jest dobry ? ;d zastanawiam się w tym przypadku nad powrotem do tabelek ;p ma ktoś jakiś pomysł ja kto poprawić, zmienić ten kod, czy coś ? Najlepiej ktoś, kto się zna. Dzięki z góry.
Shili
Nie wiem co chcesz osiągnąć, ale po kolei. Pierwszą rzeczą jest to, że menu buduje się na listach (na przykład ul, u Ciebie divy to nadużycie semantyczne). Druga sprawa jest taka, że forma tam nie powinno być. Form służy do wyświetlania formularzy, a u Ciebie żadnego formularza nie widzę.

  1. <title>Moje projekty PHP + MySQL</title>
  2. <style type="text/css">
  3. <!--
  4. * {padding: 0; margin: 0;}
  5. ul li {list-style-type: none;}
  6. #menu {margin: 10px;}
  7. #menu ul {border-top: black 1px solid; border-left: black 1px solid; padding: 0px margin: 0px;}
  8. #menu ul h4 {font-family: Tahoma; font-weight: bold; font-size: 10pt;color: blue;}
  9. #menu ul li {font-family: Tahoma; font-size: 8pt; text-align: left; border-right: black 1px solid; border-bottom: black 1px solid; padding-left: 3px;}
  10. #menu ul li a {color:#000000; text-decoration: none;}
  11. -->
  12. </head>
  13.  
  14. <div id="menu">
  15.  
  16. <ul>
  17. <li><h4>Menu</h4></li>
  18. <li><a href="#">Link1</a></li>
  19. <li><a href="#">Link2</a></li>
  20. <li><a href="#">Link3</a></li>
  21. </ul>
  22.  
  23. </div>
  24.  
  25. </body>
  26. </html>
To jest semantyczny kod, być może troszkę nadmiarowy css, ale efekt jest albo ten sam, albo bardzo podobny (nie chciało mi się liczyć dokładnie marginesów.

@down
Stworzyłaś tongue.gif
Spykaj
O dzięki, formularza mi się nie chciało całego tworzyć, po prostu mógłby tam być.

U ciebie nie ma tego problemu i tak, czy siak działa.

Bardzo ładny kod stworzyłeś, oczywiście plusik dla ciebie. O to mi chodziło.
Kreton
WTF ? Nie powinnaś przypadkiem <h4> wyrzucic przed samą listę. IMO h4 nijak ma się do składników menu. Jest nagłówkiem.

To tak jakbym napisał: <p><h4>Nagłówek</h4> bla bla bla lubie bzdurzyć</p>
Czyli bez sensu. Może się mylę - przepraszam w takim razie smile.gif
Shili
Zrozumiałam po div class="header" że ma być to nagłówek, a skoro nagłówek, na co nazwa wskazuje to trzeba zrobić nagłówek, miast sztucznych tworów. Czemu h4? Można i h6, można h5.

To co napisałeś poniżej faktycznie jest bez sensu, z tego względu że p nie może przyjmować jako dzieci elementów blokowych i tym się różni od li, które jak najbardziej może. Gdyby zamiast p było div miałoby to jak najbardziej sens.
Kreton
Źle mnie zrozumialaś.
Kod
<ul>
<li><h4>Menu</h4></li>
<li><a href="#">Link1</a></li>
<li><a href="#">Link2</a></li>
<li><a href="#">Link3</a></li>
</ul>

Chodzi mi o ten fragment kodu. Nieważne czy jest tam h3 czy h5. Zastanawia mnie miejsce h4 w środku listy. Z logicznego punktu widzenia ( mojego ) to jest bez sensu bo <hx> służy do czego innego. Brnąc dalej, w moim mniemaniu elementy w liście na tym samym poziomie mają jadnakową wartość co już dyskfalifikuje jakiekolwiek hx. Czyli teraz w ogromnym skruciem, imo h4 powinno być przed listą. smile.gif
Shili
Uważam, że jak najbardziej może być przed listą i z tym trudno się nie zgodzić winksmiley.jpg ale nie musi. W3C z jakiegoś powodu zezwala na umieszczanie nagłówków, moim zdaniem wie co robi.

hx służy do nagłówków (co w końcu nie jest dziwne), element listy również może być nagłówkiem, ba, każdy element może być oddzielnym nagłówkiem (można tutaj rozmawiać o sensowności takiego rozwiązania, jednak jest to rozwiązanie poprawne z punktu widzenia gramatyki języka przynajmniej xhtml - nie wiem jak definiuje to html).

Jeśli chodzi o wartość list i ich poziom - idąc tym samym tropem w liście nie powinien się pojawić również strong, em czy inne znaczniki wskazujące na większą wartość treści (chociaż fakt, hx wkazuje najbardziej winksmiley.jpg)

Także to już naprawdę jak kto woli, ale podążając za consortium i jedno i drugie jest poprawne składniowo.
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.