Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS + IE] <ul><li> odstęp
Forum PHP.pl > Forum > Po stronie przeglądarki
Xaia
Witam. Mam problem z CSS'em pod IE. Na operze i mozilli ff chodzi cacy.
Swój problem udokumentuje screenem z ie:

www.xaia.liczba.com/ie_sux.png

otóż chce by obie części były ładnie połączone ze sobą tak jak jest np. w operze

www.xaia.liczba.com/opera_rox.png

Zapodaje tutaj ważniejszą część CSS'a (bez tego kawałka chodzi wporządku).

  1. ul {
  2. position: relative;
  3. width: 900px;
  4. background: url(images/res_02.gif) no-repeat;
  5. height: 73px;
  6. list-style-type: none;
  7. margin: 0;
  8. padding: 0;
  9. }
  10.  
  11. li#bu1 a, li#bu2 a, li#bu3 a, li#bu4 a, li#bu5 a, li#bu6 a {
  12. background: transparent;
  13. position: absolute;
  14. width: 131px;
  15. height: 30px;
  16. bottom: 40px;
  17. text-decoration: none;
  18. }
  19.  
  20. /* adjusted values for IE6 */
  21. * html*li#bu1 a, * html*li#bu2 a, * html*li#bu3 a, * html*li#bu4 a, * html*li#bu5 a, * html*li#bu6 a { bottom: 81px; }
  22.  
  23. li#bu1 a { left: 46px; background: url(images/01.gif) 0 0 no-repeat; }
  24. li#bu2 a { left: 180px; background: url(images/02.gif) 0 0 no-repeat; }
  25. li#bu3 a { left: 314px; background: url(images/03.gif) 0 0 no-repeat; }
  26. li#bu4 a { left: 448px; background: url(images/04.gif) 0 0 no-repeat; }
  27. li#bu5 a { left: 582px; background: url(images/05.gif) 0 0 no-repeat; }
  28. li#bu6 a { left: 716px; background: url(images/06.gif) 0 0 no-repeat; }
  29.  
  30.  
  31. li#bu1 a:hover, li#bu2 a:hover, li#bu3 a:hover, li#bu4 a:hover, li#bu5 a:hover, li#bu6 a:hover { background-position: 0 -30px; }


A tutaj poprawny i ładny xhtml

  1. <div id="top"></div>
  2. <ul>
  3. <li id="bu1"><a href="#"><span>news</span></a></li>
  4. <li id="bu2"><a href="#"><span>gdzie co i jak</span></a></li>
  5. <li id="bu3"><a href="#"><span>o nas</span></a></li>
  6. <li id="bu4"><a href="#"><span>galeria</span></a></li>
  7. <li id="bu5"><a href="#"><span>sznurki</span></a></li>
  8. <li id="bu6"><a href="#"><span>kontakt</span></a></li>
  9. </ul>
  10. <div id="content"><div class="text">sd</div></div>


Dziękuję za konkretną odpowiedź.
Pozdrawiam
gekon
CSS mógłby być schludniejszy, absolute to niefajna rzecz smile.gif
A co do probelmu można spróbować dać zoom: 1; dla a w li. Głowy nie dam, musiałbym zobaczyć cały kod.
Xaia
O to cały kod z plików
Jeśli da się zastąpić ten sposób na podmiane grafiki w linkach to proszę o wskazówki albo podmiane tego co ja tutaj mam smile.gif. Będę bardzo wdzięczny ;].


  1. body {
  2. background-image: url('images/bg.gif');
  3.  
  4. }
  5.  
  6. #main {
  7. width:900px;
  8. border:0px;
  9. margin:auto;
  10. }
  11.  
  12.  
  13. #top {
  14. vertical-align:top;
  15. width: 900px;
  16. height: 144px;
  17. background-image:url('./images/index_01.gif');
  18. }
  19.  
  20. span {
  21. display: none;
  22. }
  23.  
  24.  
  25. ul {
  26. position: relative;
  27. width: 900px;
  28. background: url(images/res_02.gif) no-repeat;
  29. height: 73px;
  30. list-style-type: none;
  31. margin: 0;
  32. padding: 0;
  33. }
  34.  
  35. li#bu1 a, li#bu2 a, li#bu3 a, li#bu4 a, li#bu5 a, li#bu6 a {
  36. background: transparent;
  37. position: absolute;
  38. width: 131px;
  39. height: 30px;
  40. bottom: 40px;
  41. text-decoration: none;
  42. }
  43.  
  44. /* adjusted values for IE6 */
  45. * html*li#bu1 a, * html*li#bu2 a, * html*li#bu3 a, * html*li#bu4 a, * html*li#bu5 a, * html*li#bu6 a {bottom: 81px; }
  46.  
  47. li#bu1 a { left: 46px; background: url(images/01.gif) 0 0 no-repeat; }
  48. li#bu2 a { left: 180px; background: url(images/02.gif) 0 0 no-repeat; }
  49. li#bu3 a { left: 314px; background: url(images/03.gif) 0 0 no-repeat; }
  50. li#bu4 a { left: 448px; background: url(images/04.gif) 0 0 no-repeat; }
  51. li#bu5 a { left: 582px; background: url(images/05.gif) 0 0 no-repeat; }
  52. li#bu6 a { left: 716px; background: url(images/06.gif) 0 0 no-repeat; }
  53.  
  54.  
  55. li#bu1 a:hover, li#bu2 a:hover, li#bu3 a:hover, li#bu4 a:hover, li#bu5 a:hover, li#bu6 a:hover { background-position: 0 -30px; }
  56.  
  57. #content {
  58. margin: 0;
  59. padding: 0;
  60. list-style-type: none;
  61. position: relative;
  62. width: 900px;
  63. background-image: url('./images/index_09.gif');
  64. }
  65.  
  66. #line_2 {
  67. margin: 0;
  68. padding: 0;
  69. list-style-type: none;
  70. position: relative;
  71. width: 900px;
  72. height: 26px;
  73. background-image: url('./images/index_10.gif');
  74. }
  75.  
  76.  
  77. .text {
  78. padding-top: 10px;
  79. font-family: tahoma;
  80. font-size: 11px;
  81. color: #939393;
  82. text-align: justify;
  83. padding-left: 5em;
  84.  
  85.  
  86. }
  87.  
  88.  
  89.  
  90. #foot {
  91. background-image:url('./images/index_11.gif');
  92. width: 900px;
  93. height: 147px;
  94. clear:both;
  95.  
  96. }


  1. <div id="main">
  2. <div id="top"></div>
  3. <ul>
  4. <li id="bu1"><a href="#"><span>news</span></a></li>
  5. <li id="bu2"><a href="#"><span>gdzie co i jak</span></a></li>
  6. <li id="bu3"><a href="#"><span>o nas</span></a></li>
  7. <li id="bu4"><a href="#"><span>galeria</span></a></li>
  8. <li id="bu5"><a href="#"><span>sznurki</span></a></li>
  9. <li id="bu6"><a href="#"><span>kontakt</span></a></li>
  10. </ul>
  11. <div id="content"><div class="text">tekst</div></div>
  12. <div id="line_2"></div>
  13. <div id="foot"></div>
  14. </div>
  15. </body>
  16. </html>
Zajec
Skoro to cały kod, to zapomniałeś o doctype, otworzeniu html i całym head (razem z title). IE nie widząc DOCTYPE w pierwszej linijce głupieje (quirks mode).
Xaia
Ojej daruj ... wrzuciłem kod przetwarzany ... bo po co Ci moja meta i dtd tongue.gif
Tamto jest i napewno poprawne.
...

Proszę o pomoc
gekon
Po pierwsze rozdziel kod dla normalnych przeglądarek i IE na dwa (czasem trzy - IE6 & 7) pliki.
Po drugie: jak już mówiłem position: absolute; (li a) jest śliskie; lepiej użyć samego display: block; i np. float: left;. I tak ustawiasz odstęp od lewej więc nie będzie wiecej roboty (będziesz musiał zamienić odstęp na długość), a konstrukcja będzie bardziej elastyczna.
Po trzecie: nie widzę żywego kodu w działaniu, więc nie mogę sprawdzić który elementy sa od siebie odsunięte, ale podejrzewazm, że odstęp jest po liscie (znany bug IE). Jedną z metod radzenia sobie z nim jest nadanie artybutu hasLayout (float powinno załatwić sprawę). Ale jak już mówiłem, najlepiej sie operuje się na żywym organizmie.
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.