Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem ze stylami pod IE6 i niżej.
Forum PHP.pl > Forum > Po stronie przeglądarki > CSS
exseerius
Jak zwykle problemy z css w IE w wersji poniżej 7... Robiłem laya i oczywiscie ciagle sprawdzając działanie na IE (mam 7) oraz FF (2) wsio ładnie pięknie, ale po przejściu do kumpla i odpaleniu sajta na IE 5 oraz 6 coś nie działa... Może ktoś zerknąć na to co mam źle?

strona to: helpdeska.home.pl
webdice
Dla mnie to reklama, jakby Ci zależało na odpowiedzi nie pisałbyś ze Ci "coś" nie działa tylko podał konkrety.
exseerius
Po kiego grzyba reklamować niedziałającego sajta, weź Ty mi powiedz. OK problem tkwi w tym, ze IE nie trzyma mi bloków, floaty się rozjeżdzają i <br style=clear: both"> mi nie działa jak powinien... Zerknij w kod. Poza tym czcionki nie wyświeetlają się jak powinny zarówno kolory, rozmiary i inne detale nie wyświetlaja się odpowiedni. W FF i IE7 jest ok, ale niżej już nie... Sam zobacz jak strona wygląda w IE6 a jak w FF i stwierdź co jest nie tak, bo jak dla mnie kod jest ok i nie wiemza co się zabrać, żeby naprawiać....
babejsza
Szukaj problemu przy doctype'ie. Gdy go próbnie usuniesz to problem najprawdopodobniej zniknie. Możliwe, że masz przed nim jakieś niewidoczne w podglądzie "śmieci". Możliwe, że to kwestia złego ustawienia kodowania w edytorze w porównaniu z tym, które jest w meta tagach.
exseerius
MAM UTF-8 zarówno kodowanie dokumentów includowanych przez PHP jak i pliku głównego... Dodam też, że pliki są zapisane bez BOM'u. Jak usunę z kolei Doctypa to lay rozjedzie się pod IE7 (np margin: auto nie będzie trzymał dla containera...

Validator CSS

Powyżej wynik validacji mojego CSS - jest poprawny, a mimo to IE sobie w kulki leci!
babejsza
Napisałem, żebyś usunął go na próbę. Wiem że lay poleci do lewej, ale nie o to tu chodzi.

Usuń go, wstaw kropkę przed nim. Cokolwiek i efektem będzie najprawdopodobniej to, że poza tym że lay poleci w niektórych miejscach to same style dla bloków zaczną wyświetlać się w miarę prawidłowo.

Moja rada to skopiować żrodło pliku, w którym znajduje się doctype i przekleić do innego, nowego. To może, aczkolwiek nie musi pomóc. Daj znać będziemy się dalej zastanawiać.
exseerius
OK, usunąłem DOCTYPE i faktycznie, tak jakby trochę lepiej w FF się w zasadzie nic nie zmieniło (wiadomo, jak dobrze style są wyprodukowane to FF dobrze je wyświetli), a w IE lay poszedł do lewej jak tego się domyśliliśmy. Teraz tak w IE7 wyświetla się prawie dobrze, a w IE poniżej 7 trzyma bloki w odpowiednich miejscach, ale dalej się sypie - np. nie wyświetlają się poprawnie "zakładki" nawigacyjne do strony (na górze)... A reszta wyglada w miare ok... To co teraz?" Powiem od razu, że kombinowałem wszystkie rodzaje doctypów i nic nie podziałało....
babejsza
To teraz weź zawartość pliku wykonawczego (tego już bez doctype'u) skopiuj do nowo utworzonego i tam doklej doctype skopiowany skądś indziej.

Chodzi o to, że zdarza się, że przed doctype'em lądują dziwne krzaki, których nie jesteś w stanie zobaczyć. Widziałem takowe przy podglądzie źródła Twojej strony, a nie rozpisując się za bardzo najprostrzym sposobem na pozbycie się tego jeżeli nie widzisz ich u siebie to utworzenie pliku od nowa ze skopiowaną treścią bez doctype'a i dołożenie go od nowa.

Inna historia jeżeli przed:

  1. <?php
  2. echo '<!DOCTYPE.....';
  3. ?>


masz umieszczoną logikę strony. Ale tu chyba nie ma tego problemu bo po usunięciu doctype'u sytuacja się poprawiła. Mniejsza póki co o większość.

Spróbuj zrobić co napisałem i zobaczymy czy pójdzie. Jak nie to będziemy kombinować dalej smile.gif.
exseerius
Zrobiłem jak poradziłeś i nadal to samo... Znowu strona się rozjechała, próbowałem teraz dodać BOM i ponownie usunąć, przepisałem stronę od nowa, ale niestety nic się nie zmieniło... Chyba po prostu wpisze funkcji rozpoznawania przeglądarki i:

  1. <?php
  2. if (IE) {
  3.  echo "ZAINSTALUJ FIREFOXA, OPERĘ BĄDŹ COKOLWIEK INNEGO OD IE I WTEDY WEJDŹ NA STRONĘ!";
  4. }
  5. ?>


Bo powiedzmy już mnie to irytuje...
babejsza
Pokaż kod pliku(-ów) w którym masz rozpoczęcie i zakończenie html'a.
exseerius
  1. <?
  2. echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
  3. $db_h = "localhost";
  4. $db_l = "root";
  5. $db_p = "aaa";
  6. $db_t = "hd";
  7.  
  8. $sql_c = mysql_connect($db_h,$db_l,$db_p);
  9. $sql_t = mysql_select_db($db_t);
  10.  
  11. if (!$_GET['c']) {
  12. $za = mysql_fetch_array($qu);
  13. $_GET['c'] = $za['uri'];
  14. }
  15. ?>
  16. <html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
  17. <head>
  18. <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
  19. <? echo "<base href=\"http://".$_SERVER['HTTP_HOST']."/\" />\n"; ?>
  20. <meta name="Keywords" content="studia, akademia morska, wpit, biznes elektroniczny, zarządzanie przedsiębi
    orstwem, logistyka, gdynia, ściągi, wykłady, notatki, informacje, student, portal
     studenta, egzamin, kolokwium, impreza, wydarzenia, praca dla studenta, praca, wa
    kacje" />
  21. <title>helpdeska.net</title>
  22. <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
  23. <link rel="stylesheet" href="style.css" type="text/css" />
  24. <script type="text/javascript" language="JavaScript" src="counter.js"></script>
  25. </head>
  26. <body>
  27. <div id="container">
  28. <div id="top">
  29.  
  30. <blockquote id="header">
  31. <span>Dzisiaj mamy 26.07.2007 - żadnych nowości na stronie!</span>
  32.  
  33. <ul id="searchbox">
  34. <li>logowanie</li>
  35. <li>rejestracja</li>
  36. <li>
  37. <form method="post" action="index.html">
  38. <input type="text" class="searchbox" />
  39. </form>
  40. </li>
  41. </ul>
  42. </blockquote> 
  43.  
  44. <blockquote id="logo"><a href="#"><img src="gfx/logo.gif" alt="helpdeska.net" /></a></blockquote>
  45.  
  46. <blockquote id="menu">
  47. <ul>
  48. <? 
  49. $qu = mysql_query("SELECT * FROM `mdls` WHERE `lp` < 50;");
  50. while ($zakl = mysql_fetch_array($qu)) {
  51. if ($zakl['uri'] == $_GET['c']) { $class = "class=\"this\" "; }
  52. else { $class = ""; }
  53. echo "<li><a href=\"http://".$_SERVER['HTTP_HOST']."/".$zakl['uri']."\" ".$class."title=\" \"><span>".$zakl['nazwa']."</span></a></li>\n";
  54. }
  55. ?>
  56. </ul>
  57. </blockquote>
  58.  
  59. </div>
  60.  
  61. <div id="main">
  62. <blockquote id="content">
  63. <? 
  64. // includowanie odpowiedniego modułu
  65. $modul = mysql_fetch_array($get);
  66. include ($modul['file']);
  67. ?>
  68. </blockquote>
  69. <blockquote id="sidebar">
  70. <?
  71. include ("mdls/mod_doub.php");
  72. include ("mdls/mod_tags.php");
  73. include ("mdls/mod_goog.php");
  74. ?>
  75. </blockquote>
  76.  <br class="clear" /> 
  77.  
  78. </div>
  79.  
  80. <div style="background: #fff;" id="dupa">Przed footer</div>
  81.  
  82. <div style="background: #000000; height: 150px;">
  83.  
  84. <p>
  85. <a href="http://validator.w3.org/check?uri=referer"><img
  86. src="http://www.w3.org/Icons/valid-xhtml10-blue"
  87. alt="Valid XHTML 1.0 Transitional" height="31" width="88" border="0" /></a>
  88. </p>
  89.  
  90.  
  91. </div>
  92.  
  93. </div>
  94. </body></html>


EDIT:
Już sobie poradziłem. Nie wiem co za znaczenie ma to co zrobiłem, ale zadziałałao. Otóż zastanawiało mnie, dlaczego nie wyświetlają się zakładki poprawnie (pierwszy element na stronie, który nie wyświetlał się poprawnie), toteż zacząłem przy nim gmerać. Co zmieniłem to:

  1. #menu li {
  2. display: inline;
  3. margin: 0;
  4. padding: 0;
  5. }


na:

  1. #menu li {
  2. display: block;
  3. float: left;
  4. margin: 0;
  5. padding: 0;
  6. }


I nagle cała strona wróciłą do normalności... Teraz pytanie, dlaczego jedna linijka potrafiła rozwalić cały lay?
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.