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>
