[css] Kombinacja position:absolute, text-indent oraz width:
Moderator: Pomocy?!
[css] Kombinacja position:absolute, text-indent oraz width:
Przeglądarka: Opera/7.23 (Windows NT 5.2; U) [en]
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ą.
- quiris
- Posty: 659
- Z nami od: 31 lipca 2002, 06:53
Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6b) Gecko/20031206 Firebird/0.7+ (marcoos/pentium3+sse2+mmx)
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
Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6b) Gecko/20031202 Firebird/0.7+
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
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
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
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??
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
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 zleale 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
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
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
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
Ano przydałoby się. Może jakiś rysuneczek
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
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![]()
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
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??
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
- quiris
- Posty: 659
- Z nami od: 31 lipca 2002, 06:53
Kto jest online
Zarejestrowani użytkownicy: Baidu [Spider], Bing [Bot], Google [Bot]