Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [css] parzyste wiersze <LI>
Forum PHP.pl > Forum > Po stronie przeglądarki
kukix
Witam.
W jaki sposób można pogrubic parzyste wiersze listy LI..?

Próbowalem w ten sposób, ale nie chce działać.

Mam liste:
  1. <UL id=lista_pozycji>
  2. <LI>pozycja 1</LI>
  3. <LI>pozycja 2</LI>
  4. <LI>pozycja 3</LI>
  5. <LI>pozycja 4</LI>
  6. <LI>pozycja 5</LI>
  7. </UL>


styl css:
  1. #lista_pozycji li:nth-child(even) {
  2. font-weight: bold;
  3. }
  4.  
  5. #lista_pozycji li:nth-child(odd) {
  6. font-weight: none;
  7. }
atomek4
Witaj,
przykład, który podałeś korzysta z pseudo-klasy z CSS3. Niestety tego chyba żadna przeglądarka nie wspiera. Najlepiej będzie jeśli utworzysz sobie chyba oddzielna klasę dla parzystych elementów.
abc667
możesz też użyć js

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <title>...</title>
  3. <script type="text/javascript">
  4.  
  5. function $(id)
  6. {
  7. return document.getElementById(id);
  8. }
  9.  
  10. window.onload = function() {
  11.  
  12. lists = new Array('raz', 'dwa', 'trzy');
  13. colors = new Array('red', 'green');
  14.  
  15. for(var i=0;i<lists.length;i++)
  16. {
  17. if($(lists[i]).hasChildNodes())
  18. {
  19. var elements = $(lists[i]).childNodes;
  20. var p = 0;
  21. for(var j=0;j<elements.length;j++)
  22. {
  23. if(elements[j].nodeType == 1)
  24. {
  25. elements[j].style.backgroundColor = colors[p];
  26. p = (p>=colors.length-1 ? 0 : p+1);
  27. }
  28. }
  29. }
  30. }
  31.  
  32. }
  33.  
  34.  
  35. </head>
  36.  
  37. <ul id="raz">
  38. <li>jeden
  39. <li>dwa
  40. <li>trzy
  41. <li>cztery
  42. <li>piec
  43. <li>szecs
  44. </ul>
  45.  
  46.  
  47. <ul id="dwa">
  48. <li>jeden
  49. <li>dwa
  50. <li>trzy
  51. <li>cztery
  52. <li>piec
  53. <li>szecs
  54. </ul>
  55.  
  56. <ol id="trzy">
  57. <li>jeden
  58. <li>dwa
  59. <li>trzy
  60. <li>cztery
  61. <li>piec
  62. <li>szecs
  63. </ol>
  64.  
  65. </body>
  66. </html>

to tablicy colors mozesz wpisać dowolną liczbę kolorów, które będą się powtarzać
webdice
A jak tych elementów będzie dużo więcej? Moim zdaniem pobrać lepiej wszystkie elementy o danej nazwie (name) i wtedy kolorować co druga linie.
abc667
podałem tylko przykład, raczej nie trudno sobie dostosować?
Zajec
Cytat(atomek4 @ 27.06.2007, 17:47:50 ) *
przykład, który podałeś korzysta z pseudo-klasy z CSS3. Niestety tego chyba żadna przeglądarka nie wspiera.

1) Selektory dokładnie mówiąc :-)
2) nth-child wspiera Konquerora oraz nadchodząca Opera 9.50.
atomek4
@zajec

Na jednych stronach piszą, że to pseudo klasa na drugim selektor, nie sprawdziłem dokładnie smile.gif
Zajec
Cytat(atomek4 @ 30.06.2007, 19:25:26 ) *
@zajec

Na jednych stronach piszą, że to pseudo klasa na drugim selektor, nie sprawdziłem dokładnie smile.gif


Samo W3C twierdzi że to selectors, więc myślę że można tak to przypisać :-)
abc667
ale chyba pseudoklasa to rodzaj selektora? :-)
atomek4
Robi się z tego offtopic pomału smile.gif Ja tylko tak napisałem, żeby kolega miał świadomość, że jego kod może i jest dobry, ale jeszcze nie na dzisiaj smile.gif Wiadomo na pewno, że jest to część specyfikacji CSS3.
shpyo
Po co kombinować?
Nie możesz nadać wszystkim LI jakiś styl, a potem w kodzie (pętlą którą będzie tworzył listę) w co drugim LI dasz klasę np. parzysty i tą klasę ostylujesz oddzielnie?
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.