Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS][HTML]Problem z <li>
Forum PHP.pl > Forum > Przedszkole
lepmajster
Mam dziwny problem z tagami <li>.
Mianowicie we wszystkich przegladarkach "punktator" graficzny ma poprawny odstep od tresci tekstowej, ale juz w IE 7 i IE 6, ta ikonka jest zaraz przed tekstem, nie wiem jak mam to ustawic.
Oto obrazki (jeden z FF a drugi z IE7)
http://img541.imageshack.us/gal.php?g=firefoxm.jpg

Kod CSS:
  1. li {
  2. list-style: inside url(bullet.gif);
  3. border: 0px;
  4. margin: 0px;
  5. padding: 0px 0px 0px 10px;
  6. font-family: Geneva, Arial, Helvetica, sans-serif;
  7. font-size: 10px;
  8. color: #666666;
  9. cursor: pointer;
  10. }

Manipulowalem przy margin i padding, ale to tylko zmienialo pozycje tej ikony wzgledem lewego boku diva, a nie wiem jak zmienic odstep miedzy ikona, a trescia tekstowa <li>.

Kod HTML, gdzie wstawiam <li>:
  1. <li class="link"><a href="#">Strona Główna</a></li>


Druga kwestia to zaokraglone rogi divow, ktore dzialaja wszedzie, oprocz IE i to wszystkich wersji IE od IE5 do IE8.
Jest na to jakas rada, chociaz na IE 8 ?

motyl-pl
Na rogi masz skrypt w JS > http://www.editsite.net/blog/rounded_corners.html
A co do tego co pisałeś to daj tak
Kod
li a { margin-left: 5px; }
cros
  1. div {
  2. -webkit-border-radius: 5em; /* Safari, Chrome */
  3. -khtml-border-radius: 5em /* Konqueror */
  4. -moz-border-radius: 5em; /* Firefox */
  5. border-radius: 5em;
  6. }

Chociaz watpie ze IE to przetrawi, to jest nowy dodatek w CSS3 i nie kazda przegladarka (czyt. IE) to trawi.
Tak samo jak z box-shadow winksmiley.jpg
Zobacz ten skrypt js, ktory ci podal Pan @Up, albo poszukaj na google.pl, bo jest wiele innych sposobow, nawet w samym CSSie, kiedys widzialem taki troche brzydki, ale skuteczny sposob smile.gif
Co do <li> Pan @Up takze juz wyjasnil...
lepmajster
Dzieki zobacze zaraz, poki co daje POMOGL smile.gif

Cytat(motyl-pl @ 23.05.2010, 11:40:06 ) *
Na rogi masz skrypt w JS > http://www.editsite.net/blog/rounded_corners.html
A co do tego co pisałeś to daj tak
Kod
li a { margin-left: 5px; }

No i nie jest tak pieknie jakby sie wydawalo sad.gif
Dodam ten margin, to w firefoxie robi sie jeszcze wiekszy odstep, co wyglada ochydnie sad.gif
Jest jakis inny sposob?
motyl-pl
Kod
<!--[if IE]>
<link rel="stylesheet" href="style-ie.css" type="text/css" />
<![endif]-->


Między nagłówkami head wstawić to smile.gif

style-ie.css
Kod
li a { margin-left: 5px; }

krzysztof_kf
Czemu nie zrobisz tego normalnie po co tyle zachodu ?

  1. <style type="text/css">
  2.  
  3. li {
  4. background: url(bullet.gif) no-repeat left;
  5. border: 0px;
  6. padding-left: 10px;
  7. font-family: Geneva, Arial, Helvetica, sans-serif;
  8. font-size: 10px;
  9. color: #666666;
  10. cursor: pointer;
  11. float: left;
  12. display: block;
  13. }
  14.  
  15. li a {
  16. float: left;
  17. border: 1px solid #3399ff;
  18.  
  19. }
  20.  
  21.  
  22. </style>
  23.  


i html

  1.  
  2. <li class="link"><a href="#">Strona Główna</a></li>
lepmajster
Cytat(krzysztof_kf @ 23.05.2010, 12:01:01 ) *
Czemu nie zrobisz tego normalnie po co tyle zachodu ?

  1. <style type="text/css">
  2.  
  3. li {
  4. background: url(bullet.gif) no-repeat left;
  5. border: 0px;
  6. padding-left: 10px;
  7. font-family: Geneva, Arial, Helvetica, sans-serif;
  8. font-size: 10px;
  9. color: #666666;
  10. cursor: pointer;
  11. float: left;
  12. display: block;
  13. }
  14.  
  15. li a {
  16. float: left;
  17. border: 1px solid #3399ff;
  18.  
  19. }
  20.  
  21.  
  22. </style>
  23.  


i html

  1.  
  2. <li class="link"><a href="#">Strona Główna</a></li>

W sumie racja.
Dzieki za naprowadzenie na wlasciwy tor smile.gif
krzysztof_kf
Jeszcze jedno ale jak dajesz li class="link" bo w tym momencie nie potrzebie dajesz tą klasę

nazywaj to jakoś w css ;]

  1. <style type="text/css">
  2.  
  3. li.link {
  4. background: url(test.png) no-repeat left;
  5. padding-left: 20px;
  6. display: block;
  7. float: left;
  8.  
  9. }
  10.  
  11. li.link a {
  12. font-size: 0.7em;
  13. color: #3399ff;
  14.  
  15. }
  16. </style>


bo zamiast

  1. <li class="link"><a href="#">Strona Główna</a></li>


możesz dać przy twoim rozwiązaniu


  1. <li><a href="#">Strona Główna</a></li>



lepmajster
Faktycznie z ta klasa, to byla pozostalosc po "kombinowaniu" winksmiley.jpg Bezmyslnie skopiowalem tutaj winksmiley.jpg
Ale co do odwolania do klas, bo troche tego nie rozumiem, jest jakas roznica miedzy:
  1. li.link {}

a
  1. .link li {}

To takie pytanko na przyszlosc, zeby wyrobic sobie dobre nawyki.

No i jeszcze jedno drobne pytanko, mianowicie, czy tagi <li> nalezy obejmowac tagiem <ul> questionmark.gif?
Bo prawde mowiac sam juz nie wiem, w IE chyba 7 lub 6, brak <ul> powodowal dziwne zachowanie, caly layout mi sie rozjechal.

Acha i jeszcze cos, chyba musze wylaczyc domyslne "ikonki" dla <li>, bo jak dam margin:10px; to zaczynaja pojawiac sie punktatory graficzne smile.gif
motyl-pl
li.link to
<li class="link"></li>

a
.link li to
<div class="link">
<ul><li></li></ul>
</div>
krzysztof_kf
Cytat(lepmajster @ 23.05.2010, 12:44:27 ) *
Faktycznie z ta klasa, to byla pozostalosc po "kombinowaniu" winksmiley.jpg Bezmyslnie skopiowalem tutaj winksmiley.jpg
Ale co do odwolania do klas, bo troche tego nie rozumiem, jest jakas roznica miedzy:
  1. li.link {}


takie rozwiązanie stosuje się często przy pojedynczych linkach i się zapisuję za pomocą

  1.  
  2. <li class="link">
  3.  


a
  1. .link li {}


a takie rozwiązanie stosuję się już przy większej ilości linków i zapisuję się w sposób

  1.  
  2. <div class="link">
  3.  
  4. <li><a href="index.php">Linki</a></li>
  5.  
  6. </div>


To takie pytanko na przyszlosc, zeby wyrobic sobie dobre nawyki.

No i jeszcze jedno drobne pytanko, mianowicie, czy tagi <li> nalezy obejmowac tagiem <ul> questionmark.gif?
Bo prawde mowiac sam juz nie wiem, w IE chyba 7 lub 6, brak <ul> powodowal dziwne zachowanie, caly layout mi sie rozjechal.


wypadało by przy większej ilości linków stosować znacznki typu ul np.

  1.  
  2. <div class="przyklad">
  3. <ul>
  4. <li><a href="index.php">Link</a></li>
  5. <li><a href="index.php">Link</a></li>
  6. <li><a href="index.php">Link</a></li>
  7. </ul>
  8. </div>
  9.  



Masz dokładnie opisane pod każdym twoim cytacie żeby były wszystko ci zrozumiałe
lepmajster
Ok dzieki za odpowiedzi i pomoc, ale po zastosowaniu rad Krzysztofa, pojawil sie kolejny problem w IE 7.
Mianowicie porobily sie odstepy:
http://img59.imageshack.us/img59/4296/18137094.jpg

Wszedzie margin i padding pionowy mam na 0px, a mimo to IE 7 robi te odstepy sad.gif
Co moze byc powodem tego?
krzysztof_kf
pokaż css i html
lepmajster
Cytat(krzysztof_kf @ 23.05.2010, 13:45:44 ) *
pokaż css i html


  1. body {
  2. background: #000000 url(gradient.gif) repeat-x;
  3. margin: 0px;
  4. padding: 0px;
  5. }
  6. .menu {
  7. overflow: hidden;
  8. margin: 0px 5px 10px 5px;
  9. padding: 5px;
  10. border: 1px solid #333333;
  11. width: 160px;
  12. height: auto;
  13. background: #000000;
  14. }
  15. .podLista {
  16. margin: 0px;
  17. padding: 0px 0px 0px 10px;
  18. width: auto;
  19. height: auto;
  20. border: 0px;
  21. background: #000000;
  22. }
  23. p {
  24. margin: 0px;
  25. padding: 0px;
  26. font-family: Verdana, Arial, Helvetica, sans-serif;
  27. font-size: 10px;
  28. color: #999999;
  29. text-align: justify;
  30. }
  31. h3 {
  32. text-align: left;
  33. border: 0px;
  34. margin: 0px;
  35. padding: 0px 0px 5px 0px;
  36. font-family: Verdana, Arial, Helvetica, sans-serif;
  37. font-size: 11px;
  38. color: #ff0000;
  39. cursor: default;
  40. font-weight: normal;
  41. }
  42. li.link {
  43. list-style: outside none none;
  44. background: url(bullet.gif) no-repeat left;
  45. border: 0px;
  46. margin: 0px;
  47. padding: 0px 0px 0px 10px;
  48. font-family: Geneva, Arial, Helvetica, sans-serif;
  49. font-size: 10px;
  50. color: #666666;
  51. cursor: pointer;
  52. display: block;
  53. }
  54. ul {
  55. border: 0px;
  56. margin: 0px;
  57. padding: 0px;
  58. }
  59. a:link {
  60. color: #999999;
  61. text-decoration: none;
  62. }
  63. a:visited {
  64. color: #999999;
  65. text-decoration: none;
  66. }
  67. a:active {
  68. color: #999999;
  69. text-decoration: none;
  70. }
  71. a:hover {
  72. color: #999999;
  73. text-decoration: underline;
  74. }

  1. <script type="text/javascript">
  2. function showHide(msg_id){
  3. var element = document.getElementById(msg_id);
  4. element.style.display=element.style.display=='none' ? '' : 'none';
  5. }
  6. <div class="menu">
  7. <h3>Menu 3</h3>
  8. <p>
  9. <ul>
  10. <li class="link"><a href="#">Strona Główna</a></li>
  11. <li class="link"><a href="#">Strona Główna</a></li>
  12. <li class="link"><a href="java script:void(0);" onclick="showHide('lista1');">Rozwiń</a></li>
  13. </ul>
  14. <div class="podLista" id="lista1" style="display:none;">
  15. <ul>
  16. <li class="link"><a href="#">Podlink 1</a></li>
  17. <li class="link"><a href="#">Podlink 2</a></li>
  18. <li class="link"><a href="#">Podlink 3</a></li>
  19. </ul>
  20. </div>
  21. <ul>
  22. <li class="link"><a href="#">Strona Główna</a></li>
  23. <li class="link"><a href="#">Strona Główna</a></li>
  24. </ul>
  25. </p>
  26. </div>
  27. </body>

Tylko mnie nie bij, bo pewnie popaprane smile.gif
krzysztof_kf
Nie będę tego komentować ;] masz tu przykład prawidłowo zrobionego menu

  1. <style type="text/css">
  2.  
  3. .menu {
  4. width: 200px;
  5. height: 30px;
  6. }
  7.  
  8. .menu h1 {
  9. color: #ff0000;
  10. font-size: 1em;
  11. font-weight: bold;
  12. }
  13.  
  14. .menu ul, ul li {
  15. height: 30px;
  16. display: block;
  17. list-style: none;
  18. margin: 0;
  19. padding: 0;
  20. }
  21.  
  22. .menu ul {
  23. float: left;
  24. margin: 0 0 0 8px;
  25. }
  26.  
  27.  
  28. .menu ul a {
  29. padding: 6px 6px 6px 6px;
  30. line-height: 1.8em;
  31. font-size: 1em;
  32. text-decoration: none;
  33. font-weight: bold;
  34. color: #00ff00;
  35. }
  36.  
  37. .menu ul a:hover {
  38. color: #000000;
  39. }
  40.  
  41. .menu ul li {
  42. padding-left: 10px;
  43. background: url(bullet.gif) no-repeat;
  44. }
  45. </style>
  46.  


i html

  1. <div class="menu">
  2. <h1>Menu</h1>
  3. <ul>
  4. <li><a href="index.php">Link</a></li>
  5. <li><a href="index.php">Link</a></li>
  6. <li><a href="index.php">Link</a></li>
  7. </ul>
  8. </div>


przypatrz się uważnie a dasz na pewno radę
lepmajster
Cytat(krzysztof_kf @ 23.05.2010, 14:01:58 ) *
Nie będę tego komentować ;] masz tu przykład prawidłowo zrobionego menu
....
przypatrz się uważnie a dasz na pewno radę

A moglbys powiedziec co dokladnie, bo widze tu bardzo wiele zmian, ale tez mam wytlumaczenie, dlaczego zrobilem tak, a nie inaczej.
Jakbys napisal co nie co, to moze by sie wyjasnilo.
Np. <ul> zamykam przed divem podLista, poniewaz gdy rozwine tego diva i nie zamkne </ul> wczesniej, to IE 7 przesuwa punktator do srodka, rozwinietej listy.
<P> faktycznie mozna pominac, ale chcialem sie przygotowac na wypadek, gdy w tym menu zamiast <li> i linkow, znalazl by sie zwykly tekst.
Podaje rozmiar czcionek w px zamiast w em, bo jakos latwiej mi to kontrolowac, ale tego akurat nie wiem, czy to blad.
odwolania typu " .menu ul a" , rozumiem ze lepiej wygladaja i tak mam na koniec zamiar zrobic (jak juz wszystko bedzie gralo), ale jak narazie to poza tym ze jest balagan, nic to nie zmienia.
Itd. itp.
Wiem, jestem cienki w te klocki, wiec prosze o wyjasnienie roznicy miedzy moja budowa a ta Twoja :0
Bede wdzieczny!

PS. Wlasnie zauwazylem atrybut "line-height", o tym zapomnialem faktycznie, byc moze samo to wystarczy smile.gif
EDIT:
Wlasnie o to chodzilo, dzieki, a optymalizacje kodu css zaraz przeprowadze, zgodnie z Twoimi wskazowkami.
Tylko jakbys mogl powiedziec, w czym jest lepszy ten Twoj kod od mojego, tak lopatologicznie, co nalezy zmienic u mnie smile.gif
krzysztof_kf
Powiem krótko ten mój kod używa się standardowo do robienia menu na stronie każde inaczej robione tak jak w twoim przypadku robi całkiem niezły bałagan .


  1.  
  2. li.link {
  3.  
  4. }
  5.  


używaj najlepiej do pojedynczych linków .


strukturę

  1.  
  2. .menu {
  3.  
  4. }
  5.  
  6. .menu ul, ul li {
  7.  
  8. }
  9.  
  10. .menu ul {
  11.  
  12. }
  13.  
  14. .menu ul li {
  15.  
  16. }
  17.  


używaj do tworzenia menu strony .

co ci jeszcze mogę doradzić dawaj każdy akapit czyli p

np

  1.  
  2. #jakisdiv p {



potem html

  1.  
  2. <div id="jakisdiv">
  3. <p>twój tekst</p>
  4. </div>


tylko dla danego selektora będziesz miał zawartość dla danego akapita .

lepmajster
Cytat(krzysztof_kf @ 23.05.2010, 14:40:12 ) *
Powiem krótko ten mój kod używa się standardowo do robienia menu na stronie każde inaczej robione tak jak w twoim przypadku robi całkiem niezły bałagan .


  1.  
  2. li.link {
  3.  
  4. }
  5.  


używaj najlepiej do pojedynczych linków .


strukturę

  1.  
  2. .menu {
  3.  
  4. }
  5.  
  6. .menu ul, ul li {
  7.  
  8. }
  9.  
  10. .menu ul {
  11.  
  12. }
  13.  
  14. .menu ul li {
  15.  
  16. }
  17.  


używaj do tworzenia menu strony .

co ci jeszcze mogę doradzić dawaj każdy akapit czyli p

np

  1.  
  2. #jakisdiv p {



potem html

  1.  
  2. <div id="jakisdiv">
  3. <p>twój tekst</p>
  4. </div>


tylko dla danego selektora będziesz miał zawartość dla danego akapita .

Dzieki wielkie za te rady i poswiecony czas!
Bede sie tego trzyma, skoro juz wszystko gra (tak mi sie wydaje), to pora na przerobienie CSSa wedlug twoich rad smile.gif
Pozdrawiam
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.