MozillaPL.org - polskie centrum Mozilli

Główne menu:

[css] Kombinacja position:absolute, text-indent oraz width:

Jak tworzyć strony WWW zgodnie ze standardami

Moderator: Pomocy?!

[css] Kombinacja position:absolute, text-indent oraz width:

Postautor: quiris » 11 grudnia 2003, 00:07

Przeglądarka: Opera/7.23 (Windows NT 5.2; U) [en]

Popatrzcie uważnie na http://quiris.klub.chip.pl/width.html w trzech różnych przeglądarkach: w Mozilli, w Operze i w MSIE.
Zauważcie, że w każdej przeglądarce strona wygląda inaczej.
Pytanie: Które renderowanie jest zgodne ze standardem CSS2 (CSS21), bądź najbliższe standardowi?

Podpowiedź: MSIE błędnie wyświetla stronę. Złamane zasady: http://www.w3.org/TR/CSS21/visudet.html ... aced-width

Nie ukrywam, że najbardziej pożądam odpowiedzi popartych odpowiednimi odesłaniami do standardu.

Ten zarzut został postawiony prze wielbiciela MSIE jako przykład nieprawidłowego renderowania ww. kombinacji w Operze. Przy okazji odkryłem różnicę w interpretacji pomiędzy Mozillą a Operą.
Ostatnio zmieniony 02 stycznia 2004, 20:48 przez quiris, łącznie zmieniany 1 raz
quiris
 
Posty: 659
Z nami od: 31 lipca 2002, 06:53

Postautor: marcoos » 11 grudnia 2003, 01:18

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6b) Gecko/20031206 Firebird/0.7+ (marcoos/pentium3+sse2+mmx)

Powiem tak:

Konqueror 3.2 i Safari wyświetlają to tak samo, jak Mozilla, czyli inaczej niż Opera...
marcoos
Moderator
 
Posty: 2227
Z nami od: 12 października 2002, 10:25
Lokalizacja: Wrocław

Postautor: quiris » 11 grudnia 2003, 07:25

Przeglądarka: Opera/7.23 (Windows NT 5.0; U) [en]

marcoos pisze:Powiem tak:

Konqueror 3.2 i Safari wyświetlają to tak samo, jak Mozilla, czyli inaczej niż Opera...

Wiem. Zgodzisz się ze mną jednak, że nie jest to żaden dowód?
quiris
 
Posty: 659
Z nami od: 31 lipca 2002, 06:53

Postautor: Gandalf » 11 grudnia 2003, 10:05

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6b) Gecko/20031202 Firebird/0.7+

quiris: imho to moze sugerowac odpowiedz :)
Brakuje tylko zlokalizowac dlaczego Opera popelnia blad i znalezc odp. miejsce w dokumentacji.
Mnie dziwi to przelamanie linii w drugim pasku... auto chyba nie po to zostalo stworzone?
Gandalf
 
Posty: 1802
Z nami od: 29 czerwca 2002, 04:37
Lokalizacja: Warszawa

Postautor: quiris » 11 grudnia 2003, 10:35

Przeglądarka: Opera/7.23 (Windows NT 5.0; U) [en]

Gandalf pisze:quiris: imho to moze sugerowac odpowiedz :)

Oczywiście, że może sugerować odpowiedź. I nie ukrywam, że sposób renderowania proponowany przez Mozillę jest tym sposobem, którego oczekuje użytkownik.
Brakuje tylko zlokalizowac dlaczego Opera popelnia blad i znalezc odp. miejsce w dokumentacji.

Proponuję nie nazywać tego błędem, jeśli czarno na białym nie dowiedziemy, że jest to naruszenie standardu. Może jednak być, tak, że standard nie wypowiada się w tej kwestii. I co wtedy?
quiris
 
Posty: 659
Z nami od: 31 lipca 2002, 06:53

Re: Kombinacja position:absolute, text-indent oraz width:aut

Postautor: Domel » 11 grudnia 2003, 14:21

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl-PL; rv:1.4; MultiZilla v1.5.0.2j) Gecko/20030624

quiris pisze:Pytanie: Które renderowanie jest zgodne ze standardem CSS2

"Pierwsza" czesc zdecydowanie Mozilla robi to poprawnie a Opera nie.
Co do drugiej o ile sie nie myle w liczeniu to obie robia to zle :P ale Mozilla "lepiej".

Ale w zasadzie powinnismy zaczac od tego, ze <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> skonczylo sie juz dawno dawno temu i juz nie istnieje, istnieje natomiast <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> momijajac jakt ze z zasadzie powinno sie podawac doc sysyem i doc private.

Po za tym rada na przyszlosc: uzywaj Box offset'ow, poniewaz zaleza one od poszczegolnych user agent'ow.

quiris pisze:(CSS21)

A od kiedy CSS2.1 jest standardem?

quiris pisze:Podpowiedź: MSIE błędnie wyświetla stronę. Złamane zasady: http://www.w3.org/TR/CSS21/visudet.html ... aced-width

Jak mozna zlamac zasade, ktora nie jest zasada?? :o
Zasada znajduj sie na stronie http://www.w3.org/TR/CSS2/visudet.html# ... aced-width

quiris pisze:Nie ukrywam, że najbardziej pożądam odpowiedzi popartych odpowiednimi odesłaniami do standardu.

Ale na co tu patrzec wystarczy "zmierzyc".
Domel
 
Posty: 2252
Z nami od: 14 kwietnia 2002, 19:10
Lokalizacja: Białystok

Re: Kombinacja position:absolute, text-indent oraz width:aut

Postautor: quiris » 11 grudnia 2003, 15:13

Przeglądarka: Opera/7.23 (Windows NT 5.0; U) [en]

Domel pisze:
quiris pisze:Pytanie: Które renderowanie jest zgodne ze standardem CSS2

"Pierwsza" czesc zdecydowanie Mozilla robi to poprawnie a Opera nie.
Co do drugiej o ile sie nie myle w liczeniu to obie robia to zle :P ale Mozilla "lepiej".

Pierwsza cześć? Ale te dwa przykłady są objawem tego samego zachowania. w pierwszym ustawiłem jedną spację jako content w drugim dwa słowa zzz zzz, żeby zobrazować przenoszenie słowa. To, czy .inner jest 100% czy auto specjalnie nie ma znaczenia w tym wypadku. Skoro mówisz, że obie robią to źle, to opisz jak poprawnie powinny się zachowywać.
Ale w zasadzie powinnismy zaczac od tego, ze <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> skonczylo sie juz dawno dawno temu i juz nie istnieje, istnieje natomiast <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> momijajac jakt ze z zasadzie powinno sie podawac doc sysyem i doc private.

Ech... czepiasz się nieistotnych rzeczy. I próbujesz poprawiać hixiego: http://www.hixie.ch/tests/adhoc/css/box ... h/003.html Ten test wykorzystałem do zobrazowania problemu. Ok. Wersja XHTML 1.0 Strict dostępna pod tym samym adresem dodatkowo dodałem dwa nowe przykłady.
Po za tym rada na przyszlosc: uzywaj Box offset'ow, poniewaz zaleza one od poszczegolnych user agent'ow.

Hmm. Możesz to trochę rozjaśnić?
quiris
 
Posty: 659
Z nami od: 31 lipca 2002, 06:53

Re: Kombinacja position:absolute, text-indent oraz width:aut

Postautor: Domel » 11 grudnia 2003, 15:42

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl-PL; rv:1.4; MultiZilla v1.5.0.2j) Gecko/20030624

quiris pisze:Pierwsza cześć? Ale te dwa przykłady są objawem tego samego zachowania.

Nie do konca.

quiris pisze:To, czy .inner jest 100% czy auto specjalnie nie ma znaczenia w tym wypadku.

Ma i to ogromne.

quiris pisze:Skoro mówisz, że obie robią to źle, to opisz jak poprawnie powinny się zachowywać.

A niby jak to mam opisac? kwadracik 2 cm z lewej itp :D

quiris pisze: I próbujesz poprawiać hixiego:

No i...? Po za tym nie pierwszy i nie ostatni pewnie ;)

[quote="quiris] Wersja XHTML 1.0 Strict dostępna pod tym samym adresem dodatkowo dodałem dwa nowe przykłady. [/quote]
Ale o co chodzi? Jaki adres jaki XHTML 1.0 Strict?

[quote="quiris] Hmm. Możesz to trochę rozjaśnić? [/quote]
Wszystko zalezy od medium, jak zdefiniowane sa wartosci domyslne (mowiac w uproszczeniu) dlatego warto podawac przynajmniej dwa wlasnosci: jedna pozioma a druga pionowa.
Domel
 
Posty: 2252
Z nami od: 14 kwietnia 2002, 19:10
Lokalizacja: Białystok

Re: Kombinacja position:absolute, text-indent oraz width:aut

Postautor: quiris » 11 grudnia 2003, 15:58

Przeglądarka: Opera/7.23 (Windows NT 5.0; U) [en]

domel pisze:
quiris pisze:To, czy .inner jest 100% czy auto specjalnie nie ma znaczenia w tym wypadku.

Ma i to ogromne.

No to w takim razie jak powinno wyglądać renderowanie w obu przypadkach? Skoro ma to ogromne znaczenie, a ja różnicy w tym wypadku nie widzę.

domel pisze:
quiris pisze:Skoro mówisz, że obie robią to źle, to opisz jak poprawnie powinny się zachowywać.

A niby jak to mam opisac? kwadracik 2 cm z lewej itp :D

Ano przydałoby się. Może jakiś rysuneczek :D Oczywiście rysunek należy poprzeć odpowiednim dowodem. :D

domel pisze:
quiris pisze: Wersja XHTML 1.0 Strict dostępna pod tym samym adresem dodatkowo dodałem dwa nowe przykłady.

Ale o co chodzi? Jaki adres jaki XHTML 1.0 Strict?

http://quiris.klub.chip.pl/width.html - przerobiłem żeby było XHTML 1.0 Strict + dodałem dwa nowe warianty.
quiris
 
Posty: 659
Z nami od: 31 lipca 2002, 06:53

Re: Kombinacja position:absolute, text-indent oraz width:aut

Postautor: Domel » 11 grudnia 2003, 17:25

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl-PL; rv:1.4; MultiZilla v1.5.0.2j) Gecko/20030624

quiris pisze:No to w takim razie jak powinno wyglądać renderowanie w obu przypadkach? Skoro ma to ogromne znaczenie, a ja różnicy w tym wypadku nie widzę.

W tym tak ale to zalezy od medium. Myslisz, ze jakby zawsze auto == 100% to wprowadzali by dwie dwa terminy na jedno ;)

quiris pisze: Może jakiś rysuneczek :D

Nie mam czasu bawic sie w rysunki ale sproboje opisac: dobra jesli przyjac by zeby user agent mial automatyczna szerokosc wynoszaca 100% to wygladalo by to dosyc podobnie do tego co widac w Mozilli (cos tylko mi si niezgadzaja paddingi ale moze zle mierze).

quiris pisze:http://quiris.klub.chip.pl/width.html - przerobiłem żeby było XHTML 1.0 Strict + dodałem dwa nowe warianty.

Dlamnie moze to byc w HTML 3.2 ale nie w HTML 4.0.
Domel
 
Posty: 2252
Z nami od: 14 kwietnia 2002, 19:10
Lokalizacja: Białystok

Re: Kombinacja position:absolute, text-indent oraz width:aut

Postautor: quiris » 11 grudnia 2003, 20:13

Przeglądarka: Opera/7.23 (Windows NT 5.2; U) [en]

Domel pisze:
quiris pisze:Podpowiedź: MSIE błędnie wyświetla stronę. Złamane zasady: http://www.w3.org/TR/CSS21/visudet.html ... aced-width

Jak mozna zlamac zasade, ktora nie jest zasada?? :o
Zasada znajduj sie na stronie http://www.w3.org/TR/CSS2/visudet.html# ... aced-width


Właśnie sobie zajrzałem tam. I przeczytałem sobie to:
The constraint that determines the computed values for these elements is:

'left' + 'margin-left' + 'border-left-width' + 'padding-left' + 'width' + 'padding-right' + 'border-right-width' + 'margin-right' + 'right' = width of containing block

Podążam śladem containing block http://www.w3.org/TR/CSS2/visudet.html# ... ck-details :
If the element has 'position: absolute', the containing block is established by the nearest ancestor with a 'position' other than 'static' (...)

If there is no such ancestor, the content edge of the root element's box establishes the containing block.

Ponieważ z root elementem jest nieciekawie w Operze, dlatego ustalmy sobie inicjujący blok obejmujący na body wykorzystując tę wskazówkę:
If we position "div1":

#div1 { position: absolute; left: 50px; top: 50px }

its containing block is no longer "body"; it becomes the initial containing block (since there are no other positioned ancestor boxes).

Zostawmy na body width:auto i popatrzmy co się dzieje: http://quiris.klub.chip.pl/width_auto.html . Każda z trzech przeglądarek renderuje zupełnie odmiennie! (niezbyt zgodnie z tym, czego moglibyśmy oczekiwać czytając standard i patrząc na kropkowany zasięg elementu body). Choć teoretycznie Opera jest najbliżej tego co powinno być, to jest to tylko i wyłącznie przypadek.
Gdy jednak ustawimy dla body np. width: 30px; ( http://quiris.klub.chip.pl/width_10.html ) widzimy, że Mozilla jako jedyna zaczyna podążać za standardem!

Widzimy zatem, jak wiele czycha na nas niebezpieczeństw przy width:auto :) No i w sumie brawa dla Mozilli :), a dla Opery szykuje Bugreport :-?
quiris
 
Posty: 659
Z nami od: 31 lipca 2002, 06:53


Wróć do Tworzenie stron WWW

Kto jest online

Zarejestrowani użytkownicy: Baidu [Spider], Bing [Bot], Google [Bot]

Przejdź do powiązanej strony

Nawigacja:

Stopka: