2 Fragen zur XHTML

Moin,

ich beschäftige mich z.Zt. ein wenig mit XHTML und habe da zwei Fragen.

a) Ich habe das stinknormale Body-Tag mit einer Angabe für eine Hintergrundfarbe. Soweit kein Problem. CSS und XHTML sind valide, aber warum reicht der Hintergrund nicht bis zum “Boden”? Also man hat im Prinzip ja beim normalen HTML wenn man eine Hintergrundfarbe zuweist, diese bis zum Ende des Browserfensters (+ scrollen hinterher) - im XHTML reicht es aber bei geringem Inhalt nicht soweit, die Hintergrundfarbe wird abgeschnitten, sobald der body-Tag aufhört … (in mehreren Browsern übrigens) - ist das ein Bug von XHTML oder so gewollt, kann man das fixen (wenn ja: wie?)

b) Ich lese mein Menü mit einem include Befehl in die index-Datei ein. Warum akzeptiert er bei den Links also im -Tag folgendes nicht:

(da steht nicht wirklich Kraut und Rüben - ist nur als Beispiel gedacht. Er meckert beim zweiten Leerzeichen hinterdem &
Wenn ich das durch   ersetze, kommt zwar kein Fehler mehr, kann ja aber auch net das gelbe vom Ei sein - wieder die Frage: Bug von XHTML oder so gewollt?

MfG
myPages

@Zweites Problem: Bei URLs sind nicht Entities, sondern die Prozent-Kodierung [size=75](Heißt das im Deutschen so? Wäre jedenfalls die wörtliche Übersetzung der englischen Bezeichnung.)[/size] aka URL-Kodierung angesagt. :wink:
PHP hat auch eine Funktion dafür, und zwar urlencode().

Erstes Problem: Das ist in CSS für HTML als Sonderfall so
definiert, daß sich die Angaben für body über den gesamten
Anzeigebereich erstrecken soll.
Allgemein bei XML und damit auch bei XHTML, wenn es mit
einem XML-parser interpretiert wird, ist body nur ein ganz
normales Element und das reicht nur so weit, wie notwendig,
damit der Inhalt reinpaßt.
Das Element html erstreckt sich dafür über den gesamten
Anzeigebereich.

Zweites Problem: Wer akzeptiert das nicht? Der php-parser oder
der browser? Beispiel als URI angeben in letzterem Falle.
In ersterem Falle gibt man immer den unmaskierten
Dateinamen an.

Moin,

erstmal danke für die Antworten. Ich denke damit kann ich das erste Problem lösen. Am zweiten muss ich wohl noch basteln.

Also es passiert folgendes:

Ich habe eine Datei, die ein array mit den Namen für die Links enthält:

$menu = array('Kraut & Rüben' => 'kraut',
                    'Beispiele' => 'bsp', [...]);

Diese wird in die index-Datei eingelesen (per require_once / include - spielt ja keiner Rolle)
Danach kommt eine foreach-Schleife ins Spiel:

foreach($menu as $eintrag => $datei)
{
  echo "<a href=$datei>$eintrag</a>";
}

Das Problem ist, dass der XML/XHTML-Parser meckert sobald ich oben nicht &  verwende - PHP verursacht keine Probleme …

MfG
myPages

[code]<?xml version="1.0" encoding="UTF-8"?>

Test-Seite

Kraut und Rüben

[/code] Wenn ich das beim [url=http://validator.w3.org/#validate_by_input]Validator[/url] eingebe, tauchen keine Fehler auf. Ich denke eher, du hast die Anführungszeichen beim href-Attribut vergessen - imho kein valides XML.

Moin,

Originalauszug der Zeile:

echo "<a href='$datei.html' class='shown'>$eintrag</a>";

Was imho keinerlei Probleme verursachen dürfte … - was es aber dennoch tut scheinbar^^

Codierung ist übrigens ISO-8859-1 und der contenttype richtet sich nach den Browsern (bis auf IE, wo es text/html ist) lautet der: application/xhtml-xml

Ich habe mal im Array das & durch & ersetzt und das   rausgenommen, der Validator des w3c meldet:

Mit & und ohne   kommt kein Fehler - d.h. er hat/hatte Probleme mit dem &-Zeichen …

//Edit:
htmlspecialchars() hat sich diesem letzten Problem angenommen. Es läuft nun einwandfrei. Danke an euch beide für eure Hilfe.

MfG
myPages

application/xhtml+xml hoffe ich mal? Sonst wäre das auch noch
dubios…

Äh ja, ist es ^^

war nur ein Schreibfehler von mir.

MfG
myPages