Jesper Stocholm wrote:
> Jeg troede egentligt, at content-negotiation kun påvirkede, hvordan en
> givet side indlæses i hukommelsen af en applikation, men jeg opdager nu, at
> der også er forskel på udseendet af siden - i hvert fald ved brug af
> FireFox (1.0.7).
Yes, der er nogle forskelle på at sende siden som text/html og
application/xhtml+xml.
> Jeg har lavet en side, der validerer som XHTML1.1 samt CSS2 - bortset fra
> nogle enkelte CSS2-warnings i link-elementer.
Som W3C anbefaler: XHTML1.1 *bør ikke* sendes som text/html, men *bør*
sendes som application/xhtml+xml. Men den diskussion har vi jo allerede
haft
> Hvis jeg sender data som text/html til firefox, så ser siden ud, som jeg
> forventede (og ligesom i IE), men hvis jeg sender som
> application/xhtml+xml, så ændres udseendet af siden [0].
>
> Jeg er klar over, at I ikke kan sige så meget konkret uden et kig på koden,
> men kan I fortælle mig, om der er nogle layout-mæssige ting, jeg skal være
> opmærksom på, når jeg laver en side i xhtml1.1 ... der er jo reelt ikke
> nogen kodemæssig forskel på xhtml 1.0 strict og xhtml1.1
Det er ikke forskellen mellem 1.0 strict og 1.1, der gør at der er
forskel i layout'et. Det er fordi du sender siden som
application/xhtml+xml i stedet for text/html.
Når du sender siden som application/xhtml+xml, så vil browseren fortolke
din side som det den er; nemlig XML. Det betyder at der ikke længere er
elementer, der har speciel betydning som når siden sendes som text/html.
I text/html har html-elementet en speciel betydning, i
application/xhtml+xml er det blot et element på linie med de øvrige
elementer, fx <p>, <div>, <a> osv.
Så, det du oplever her er, at du sikkert ikke har nogen styling på dit
html-element. Altså de style-regler du har på dit body-element, bør være
på dit html-element.
Husk også at i XML er elementer case sensitive, så vær opmærksom på
dette forhold i navngivning af dine CSS-regler (og i det hele taget
overalt hvor du bruger element- og attributnavne).
Ud over denne forskel, er der også forskel på hvilke ting i javascript,
der er "lovlige". Fx kan du ikke længere bruge document.write i sider
sendt som application/xhtml+xml, her må du i stedet bruge DOM-metoder.
Vær også opmærksom på om du er nødt til istedet for collections (fx
document.images, document.forms osv.) at bruge getElementsByTagName().
Måske er der andre ting, men det var hvad jeg lige kunne huske.
--
Med venlig hilsen
Jeppe Høiby
Web-udvikler
<
http://awake.dk/>