Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML] Menu poziome na wybraną szerokość
Forum PHP.pl > Forum > Przedszkole
kilas88
Witam,

Chcę zrobić menu poziome o długości powiedzmy 600px. Menu posiada kilka (nieznana ilość) pozycji, które mają jakieś tam tło. Chciałbym, aby pozycje te były rozciągnięte na długość całego menu. Oto przykład:

  1. ul, li {
  2. list-style-type: none;
  3. }
  4.  
  5. ul {
  6. display: block;
  7. width: 800px;
  8. background-color: orange;
  9. margin: 0;
  10. padding: 0;
  11. }
  12.  
  13. li {
  14. display: inline-block;
  15. background-color: yellow;
  16. }
  17.  
  18.  
  19. <ul>
  20. <li>Menu 1</li>
  21. <li>Menu 2</li>
  22. </ul>


W wyniku czego otrzymuje:



Chciałbym aby żółty kolor był rozciągnięty na całe menu (zasłaniał kolor pomarańczowy). Kombinuję już trochę i nic mi nie przychodzi do głowy, choć zadanie wydaje się łatwe.

Proszę o pomoc.
mkdes
Daj znacznik LI na float: left, usuń display: inline, bo wtedy nie można ustawiać width. Ustaw LI width procentowo % w skrypcie php w zależności od ilości elementów menu i wklejaj kod stylu dla kontenera LI w nagłówku <head> strony. Zastosuj klasy styli albo ID aby style stosować tylko do wybranych kontenerów.
Damonsson
Chyba Cię po******liło.



Co do tematu:

  1. #a {
  2. width:9999px;
  3. }
  4. ul, li {
  5. list-style-type: none;
  6. }
  7.  
  8. ul {
  9. display: block;
  10. width: 800px;
  11. background-color: orange;
  12. margin: 0;
  13. padding: 0;
  14. overflow: hidden;
  15. }
  16.  
  17. li {
  18. display: inline-block;
  19. background-color: yellow;
  20. }
  21. li:last-child {
  22. min-width: 90%;
  23. display: inline-block;
  24. background-color: yellow;
  25. }


  1. <ul>
  2. <div id="a">
  3. <li>Menu 1</li>
  4. <li>Menu 2</li>
  5. <li>Menu 3</li>
  6. <li>Menu 4</li>
  7. </div>
  8. </ul>


smile.gif
kilas88
Cytat(mkdes @ 7.08.2010, 19:05:24 ) *
Daj znacznik LI na float: left, usuń display: inline, bo wtedy nie można ustawiać width. Ustaw LI width procentowo % w skrypcie php w zależności od ilości elementów menu i wklejaj kod stylu dla kontenera LI w nagłówku <head> strony. Zastosuj klasy styli albo ID aby style stosować tylko do wybranych kontenerów.

Odpada. Musi być zrobione wyłącznie w CSS.

Cytat(Damonsson @ 7.08.2010, 19:15:23 ) *
Chyba Cię po******liło.



Co do tematu:

  1. #a {
  2. width:9999px;
  3. }
  4. ul, li {
  5. list-style-type: none;
  6. }
  7.  
  8. ul {
  9. display: block;
  10. width: 800px;
  11. background-color: orange;
  12. margin: 0;
  13. padding: 0;
  14. overflow: hidden;
  15. }
  16.  
  17. li {
  18. display: inline-block;
  19. background-color: yellow;
  20. }
  21. li:last-child {
  22. min-width: 90%;
  23. display: inline-block;
  24. background-color: yellow;
  25. }


  1. <ul>
  2. <div id="a">
  3. <li>Menu 1</li>
  4. <li>Menu 2</li>
  5. <li>Menu 3</li>
  6. <li>Menu 4</li>
  7. </div>
  8. </ul>


smile.gif

Działa, choć niekoniecznie o taki efekt mi chodziło :-) Chciałbym, aby menu było wyrównane.

Jak na razie rozwiązałem to następująco:

  1. ul, li {
  2. list-style-type: none;
  3. table-layout: fixed;
  4. }
  5.  
  6. ul {
  7. display: table;
  8. width: 800px;
  9. background-color: orange;
  10. margin: 0;
  11. padding: 0;
  12. white-space: nowrap;
  13. }
  14.  
  15. li {
  16. display: table-cell;
  17. background-color: yellow;
  18. }

Niestety, nie zadziała pod IE 7 i niżej, a klient chce by na IE 7 także śmigało. Zabieram się więc za kombinowanie z IE...

Chyba, że ktoś ma jeszcze jakieś propozycje :-)
erix
Cytat
Niestety, nie zadziała pod IE 7 i niżej, a klient chce by na IE 7 także śmigało. Zabieram się więc za kombinowanie z IE...

Łupnij expression do CSS, dla IE nie ma litości.
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.