Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z wyświetlaniem
Forum PHP.pl > Forum > Po stronie przeglądarki > CSS
radac78
W IE co dziwne all gra. Niestety przegladarki konkurencyjne nieco inaczej interpretuja moje ustawienia. Kodu strony nie wklejam bo mozna zobaczyc go w zrodle strony (test2). Plik CSS ma nastepujaca tresc:

body {
margin: 0;
padding: 0;
font-family: Verdana, Arial, Helvetica, sans-serif;
text-align: center; /*Srodkowanie calosci*/
/* part 1 of 2 centering hack */
}

#all {
/*Srodkowanie calosci*/
width: 720px;
padding: 0px;
margin-top: 20px;
margin-bottom: 20px;
margin-right: auto;
margin-left: auto;
/* opera does not like 'margin:20px auto' */
text-align:left;
/* part 2 of 2 centering hack - nie wiem po co to - 4 linie*/
/* width: 720px; /* ie5win fudge begins */
voice-family: "\"}\"";
voice-family:inherit;
width: 720px;*/
/*Srodkowanie calosci*/
}

#cointainer {
margin: 0;
padding: 0;
}

#left {
border: none;
margin-left: 0px;
padding: 0px;
float: left;
width: 160px;
background-color: #white;
}

ul#mainnav {
list-style: none;
margin: 0;
padding:0;
background-color: #CCCCFF;
border: 1px solid #000;
}

ul#mainnav li a:link, ul#mainnav li a:visited {
display: block;
text-decoration: none;
width: 100%;
padding: 6px;
background-color: #5C6F90;
font-size: 12px;
color: #fff;
}

ul#mainnav li {
border-top: 1px solid #A5B5C6;
}

ul#mainnav li a:hover {
background-color: #43616B;
color: #eee;
}

ul#pozostale {
list-style: none;
margin: 0;
padding: 0;
background-color: #CCCCFF;
border: 1px solid #000;
}

ul#pozostale li {
border-top: 1px solid #A5B5C6;
}

#center {
font-size: 12px;
margin-left: 164px;
padding:5px;
background-color: white;
border: 1px solid black;
}

#clear {
clear: both;
}

#footer {
color: #5C6F90;
width: 720px;
font-size: 9px;
background-color: #fff;
margin-top: 10px;
padding-top: 5px;
border-top: 1px solid #5C6F90;
}

p.nazwa {
color: #0F1130;
font-weight: bold;
font-size: 12px;
margin: 0;
padding: 6px;
border-bottom: 1px solid #000;
}

p.pustka {
margin: 0;
padding: 0;
}

li.niemenu {
display: block;
width: 100%;
padding: 6px;
background-color: #5C6F90;
font-size: 12px;
color: #fff;
}

li.kursy {
width: 100%;
padding: 6px;
background-color: #5C6F90;
font-size: 12px;
color: #fff;
}


Jak widac chociazby w Firefox'ie tlo pod linkami listy jest zbyt rozlegle w prawo oraz stopka zbyt przylega do ostatniego elementu. Calosc nie wystepuje w IE. Po zmniejszeniu opcji padding do 0 oczywiscie problem dla menu nie wystepuje jednak calosc traci na swoim wygladzie,... nie za bardzo juz mam pomysl jak to zlikwidowac sad.gif Bede wdzieczny za wszelkie wskazowki.
dr_bonzo
To IE zle interpretuje CSS, ale to nie ma znaczenia, ja ostatnio znalazlem takie obejsice:
  1. <link rel="stylesheet" type="text/css" href="style.css" media="screen"/>
  2. <!--[if IE]><style type="text/css">@import "style-msie.css";</style><![endif]-->

Pierwszy css jest dla wszystkich przegladarek != IE, a IE sobie includuje swoj css ktory nadpisuje wszystkie poprzednie wartosci.
strife
Witam,

To jest niestety urok tego badziwia... mogę ci podać tego linka http://www.positioniseverything.net/explorer.html może tam znajdziesz rozwiązanie.

Pozdrawiam!
Strus
Cały problem jest w tym, że IE inaczej interpretuje procenty. 100% to jest trochu ponad 100%...

Jeśli chodzi o px pt i inne to jak wszystkie normalne przeglądarki liczą bez obramowania tak jeden IE liczy z obramowaniem.

Jeśli coś ma obramowanie np 1px i szerokość 200px to dla każdej normalnej przeglądarki szerokść tego elementu wynosi 200px a dla IE 202px smile.gif
radac78
Oki. Udalo mi sie znalezc rozwiazanie mojego problemu. Napisze - moze innym sie kiedys przyda. Otoz jak wiadomo tylko IE nieprawidlowo interpretowal kod - zmieniajac paddingi Firefox z pozostalymi dzialal tak jakpowinno natommiast IE byl trudny do przewidzenia. Powodem tego stanu jest to, ze IE uzywa dwoch metod "renderowania" dokumentu: Quirks Mode i Compilance Mode. Drugiego sposobu domyslnie uzywaja konkurencyjne przegladarki (i oczywiscie jest zgodne ze standardami W3C). Aby zmusic IE do uzywania Compilance Mode wystarczy prawidlowo zadeklarowac DOCTYPEs smile.gif
Co wazne - musi to byc w pierwszel lini dokumentu - kazda linia powyzej bedzie powodowala ze IE bedzie dialal w trybie Quirks Mode. Czyli po zmianie gory dokumenty na:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

Wszystko gra... smile.gif Teraz wystarczy operujac opcja padding ustawic wszystko.
Mam nadzieje, ze rozwiaze to wiele problemow userow...
Strus
Cytat(radac78 @ 2005-03-01 14:36:30)
Co wazne - musi to byc w pierwszel lini dokumentu - kazda linia powyzej bedzie powodowala ze IE bedzie dialal w trybie Quirks Mode. Czyli po zmianie gory dokumenty na:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

Wszystko gra... smile.gif Teraz wystarczy operujac opcja padding ustawic wszystko.
Mam nadzieje, ze rozwiaze to wiele problemow userow...

Ale ta przeglądarka jest głupia...

Głupia dlatego, że jeśli deklarujemy wersję XMLa i kodowanie przy pomocy <?xml version="1.0" encoding="utf-8"?> to ta właśnie linijka MUSI być w pierwszej lini.

Na szczęście domyślną wersją XMLa jest 1.0 a domyślnym kodowaniem dla XHTMLa jest unicode, więc wcale tej linijki nie musimy dawać. Co nie zmienia faktu, że IE jest głupi.
wassago
Cytat(Strus @ 2005-02-28 14:36:39)
Cały problem jest w tym, że IE inaczej interpretuje procenty. 100% to jest trochu ponad 100%...
[...]
Jeśli coś ma obramowanie np 1px i szerokość 200px to dla każdej normalnej przeglądarki szerokść tego elementu wynosi 200px a dla IE 202px  smile.gif

caly problem to popsuty BOX-MODEL w IE winksmiley.jpg a dla ciekawskich powiem ze IE7 nie bedzie mialo naprawionego BOX-MODEL'u - heheh >:]

@radac78: dobrze gadasz z tym Quirk Mode i Compilance Mode - problem jednak w tym, ze nawet jezeli okreslimy definicje dokumentu to przy duzej ilosci zaawansowanych dzialan CSS, nawet w CM, IE pokazuje swoj popsuty BOX-MODEL.

Oczywiscie sa tzw. hack'i aby pod FMOS'ami jak i IE strona wyswietlala sie prawidlowo - jeden z nich to faktycznie komentowane instrukcje warunkowe (MS sam na siebie podpisal wyrok), a drugi to uzywanie w CSS'ach natywnej metody "!important", ktora jak sie mozna domyslec nie dziala pod IE - ale o to chodzi :]
bregovic
Cytat(wassago @ 2005-03-11 14:20:07)
a dla ciekawskich powiem ze IE7 nie bedzie mialo naprawionego BOX-MODEL'u - heheh >:]

A skąd wiesz? ;>
Strus
Cytat(bregovic @ 2005-03-12 21:29:03)
Cytat(wassago @ 2005-03-11 14:20:07)
a dla ciekawskich powiem ze IE7 nie bedzie mialo naprawionego BOX-MODEL'u - heheh >:]

A skąd wiesz? ;>

Myślę, że do tego nie potrzeba jakiejść tajemnej wiedzy. Można wywnioskować na podstawie poprzednich wersji tego szrotu i na podstawnie nie zmieniającego się składu programistów tegoż to szrotu.
bregovic
Cytat(Strus @ 2005-03-12 23:56:11)
Myślę, że do tego nie potrzeba jakiejść tajemnej wiedzy. Można wywnioskować na podstawie poprzednich wersji tego szrotu i na podstawnie nie zmieniającego się składu programistów tegoż to szrotu.

Szrot szrotem, ale wciąrz conajmniej 85% populacji internetu tego szrotu używa - i dlatego imo należy uważać na to co ten szrot zrobi. Aczkolwiek bardzo przemawia do mnie rozwiazanie proponowane kiedyś przez WaSP1) to niestety klientom się nie do końca podoba :/

1) Poponowali kiedyś po prostu tworzenie stron według standardów - bez myślenia o tym jak przeglądarki to zinterpretują - a dla przeglądarek jak IE - po prostu wyłączenie stylów.
Strus
Cytat("bregovic")
Poponowali kiedyś po prostu tworzenie stron według standardów - bez myślenia o tym jak przeglądarki to zinterpretują - a dla przeglądarek jak IE - po prostu wyłączenie stylów.

Ja na szrot mam jeszcze lepszy sposób, piszę strony w XHTML 1.1 i ustawiam typ pliku application/xhtml+xml Szrot gdy trafi na taki dokument wykłada się (oczywiście robie wykrywanie i informuje użytkownika, że ma przestarzałą przeglądarkę).

Żadna wersja szrotu sobie z tym nie poradzi. snitch.gif http://www.w3.org/People/mimasa/test/xhtml...ults#MSIE6.0SP2
wassago
Cytat(bregovic @ 2005-03-12 22:29:03)
Cytat(wassago @ 2005-03-11 14:20:07)
a dla ciekawskich powiem ze IE7 nie bedzie mialo naprawionego BOX-MODEL'u - heheh >:]

A skąd wiesz? ;>

gdziesz czytalem (wywiad z bill'em), ze silnik ktory interpretuje SGML bedzie taki sam jedynie ulegnie zmianie czesc odpowiedzialna za bezpieczenstwo - ale czyz nie slyszymy ze IE bedzie bezpieczne od wersji 4 questionmark.gif

ps. wiem bo jestem piany biggrin.gif

Cytat
Szrot szrotem, ale wciąrz conajmniej 85% populacji internetu tego szrotu używa...
lecz ta statystyka drastycznie spada - bardzo szybko, na nasza kozysc snitch.gif
xarr
Drastycznie jak drastycznie, ale zawsze najciezej jest na poczatku. Pozniej idzie z gorki i jesli taki wzrost sie utrzyma (raczej nic nie wskazuje ze nawet ie7 to zmieni) to moze naprawde drastycznie ie dopiero stracic smile.gif

A poki co... wsadzac gdzie sie da info o firefoxie i liczyc na checi userow do poznania smile.gif
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.