MozillaPL.org - polskie centrum Mozilli

Główne menu:

FF2 - xhtml 1.1 - css - element body

Dyskusje na temat standardów WWW i zgłoszenia stron niedziałających poprawnie w przeglądarkach z rodziny Mozilli (w tym Mozilla Firefox)

Moderator: Pomocy?!

FF2 - xhtml 1.1 - css - element body

Postautor: ao » 30 grudnia 2006, 19:19

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1

Prosiłbym o zerknięcie na te dwie strony:
http://zeromski-mat-inf.ovh.org/new/xhtml11.html
http://zeromski-mat-inf.ovh.org/new/index.php

Obie są napisane poprawnie (XHTML 1.1). Jest to ledwo zmodyfikowana wersja najprostszej możliwej strony. Obie strony są identyczne, poza jednym szczegółem. W pierwszej typ MIME jest ustawiany przez znacznik meta, natomiast w drugim przypadku wysyłany przez PHP funkcją header. Chcę go ustawić przez PHP dlatego, że IE nie rozpoznaje typu MIME application/xhtml+xml (jak ktoś nie wierzy, może się przekonać, otwierając pierwszy link w IE). Więc specjalnie dla IE trzeba ustawić inny typ i inny Doctype. Wydaje mi się, że z mojej strony wszystko działa wspaniale, lecz pojawia się jeden problem. Ustawiając dowolny kolor tła body, ten kolor wcale nie jest stosowany dla całego dokumentu. Ale tylko w Firefoksie. W Operze działa w porządku. Jakieś rady?

Kod źródłowy obu stron:
Kod: Zaznacz cały
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl">

<head>

   <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
   <title>Some xhtml page</title>
   <style type="text/css" media="all">
   body{
      background-color:#ccc;
   }
   </style>

</head>

<body>

   <p>Content goes here</p>

</body>

</html>

Kod: Zaznacz cały
<?
if(stristr($_SERVER['HTTP_ACCEPT'],'application/xhtml+xml')){
   header('Content-Type: application/xhtml+xml; charset=UTF-8');
   echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">';
}
else{
   header('Content-Type: text/html; charset=UTF-8');
   echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">';
}
?>


<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl">

<head>

   <title>Some xhtml page</title>
   <style type="text/css" media="all">
   body{
      background-color:#ccc;
   }
   </style>

</head>

<body>

   <p>Content goes here</p>

</body>

</html>
ao
 

Postautor: ao » 30 grudnia 2006, 19:30

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1

Zapomniałem dodać, że problem ten występuje tylko gdy MIME ustawiane jest przez header (drugi link). Stosując tag meta (pierwszy link) strona wyświetla się poprawnie.

Niby widać na pierwszy rzut oka, ale dopisać trzeba :P
ao
 

Postautor: carlos » 30 grudnia 2006, 21:01

Przeglądarka: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.8.1.1) Gecko/20061222 Firefox/2.0.0.1

Problem jest, ale trochę w innym miejscu, niż by się mogło wydawać na pierwszy rzut oka.

Twój serwer domyślnie wysyła 'Content-Type: text/html'. Jeśli sam nie ustawisz innego serwer wypluje właśnie taki w odpowiedzi, co pokazuje pierwszy link (http://zeromski-mat-inf.ovh.org/new/xhtml11.html):
Kod: Zaznacz cały
HTTP/1.1 200 OK
Date: Sat, 30 Dec 2006 19:57:08 GMT
Server: Apache
Last-Modified: Sat, 30 Dec 2006 18:16:13 GMT
ETag: "4dd01c-1a8-60235540"
Accept-Ranges: bytes
Content-Length: 424
Content-Type: text/html
Via: 1.1 127.0.0.1, 1.1 127.0.0.1

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl">

<head>

   <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
[...]

W drugim wypadku jest tak, jak się spodziewasz (http://zeromski-mat-inf.ovh.org/new/index.php):
Kod: Zaznacz cały
HTTP/1.1 200 OK
Date: Sat, 30 Dec 2006 20:01:43 GMT
Server: Apache
X-Powered-By: PHP/5.1.6
Content-Type: application/xhtml+xml; charset=UTF-8
Via: 1.1 127.0.0.1, 1.1 127.0.0.1
Content-Length: 341

<!DOCTYPE html [...blablabla]

Do szczęścia potrzebna jeszcze jedna informacja: Firefox preferuje nagłówki HTTP, nie HTML :)

Z innej beczki, czemu XHTML 1.1? O ile pamiętam do wysyłania jako text/html nadaje się XHTML 1.0. Z kolei czemu element 'body' z HTMLa nie działa wyjaśni ten link.

Pozdrawiam.
Karol Kwiatkowski
C.A.R.L.O.S.: Cybernetic Android Responsible for Logical Observation and Sabotage
carlos
 
Posty: 288
Z nami od: 24 listopada 2004, 04:29
Lokalizacja: LV-426

Postautor: athantor » 31 grudnia 2006, 12:58

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9a2pre) Gecko/20061230 Minefield/3.0a2pre

carlos pisze:Do szczęścia potrzebna jeszcze jedna informacja: Firefox preferuje nagłówki HTTP, nie HTML :)


Gwoli ścisłości: nie „firefox preferuje”, tylko „specyfikacja wymaga od klientów użytkownika by preferowały”.
Obrazek Obrazek
athantor
 
Posty: 911
Z nami od: 24 grudnia 2002, 15:22
Lokalizacja: Białystok

Postautor: diablownik » 31 grudnia 2006, 13:17

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl-PL; rv:1.9a1) Gecko/20061218 Minefield/3.0a1

athantor pisze:Gwoli ścisłości: nie „firefox preferuje”, tylko „specyfikacja wymaga od klientów użytkownika by preferowały”.

Gwoli ścisłości: Firefox preferuje, bo specyfikacja wymaga :wink:
diablownik
 
Posty: 375
Z nami od: 02 sierpnia 2006, 14:10

Postautor: carlos » 31 grudnia 2006, 13:23

Przeglądarka: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.8.1.1) Gecko/20061222 Firefox/2.0.0.1

athantor pisze:
carlos pisze:Do szczęścia potrzebna jeszcze jedna informacja: Firefox preferuje nagłówki HTTP, nie HTML :)


Gwoli ścisłości: nie „firefox preferuje”, tylko „specyfikacja wymaga od klientów użytkownika by preferowały”.

Gwoli ścisłości: link, który podałeś mówi o kodowaniu znaków użytym w danym dokumencie (character encoding), ja pisałem o formie (typie?) samego dokumentu (content/media type). Coś, co jest opisane w specyfikacji HTTP: rfc2616 - Hypertext Transfer Protocol -- HTTP/1.1. Wynika z niego jasno, że jeśli Content-Type jest podany (w protokole HTTP 1.1) to znaczy, że taki ma być, koniec kropka.

"Firefox preferuje" nie dlatego, że chce, tylko dlatego, że mu każą (inaczej łamałby protokół HTTP 1.1)

Zgadzamy się? ;)

Pozdrawiam.
Karol Kwiatkowski
C.A.R.L.O.S.: Cybernetic Android Responsible for Logical Observation and Sabotage
carlos
 
Posty: 288
Z nami od: 24 listopada 2004, 04:29
Lokalizacja: LV-426

Postautor: athantor » 31 grudnia 2006, 17:35

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9a2pre) Gecko/20061231 Minefield/3.0a2pre

Za duży skrót myślowy :-D

A warto precyzować, bo taki jeden z drugim frontpejdżowiec przeczyta i wyciągnie jakieś krzywe wnioski…
Obrazek Obrazek
athantor
 
Posty: 911
Z nami od: 24 grudnia 2002, 15:22
Lokalizacja: Białystok


Wróć do Standardy WWW i źle działające strony

Kto jest online

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

Przejdź do powiązanej strony

Nawigacja:

Stopka: