Gå til innhold

Siden blir helt feil i IE!


Anbefalte innlegg

Siden min www.juventusnorge.1go.dk blir helt feil når man ser den i IE. Du ser sikkert hva som er feil selv. Siden er perfekt i Mozilla og Opera.

 

Hva må jeg gjøre for at siden skal se bra ut?

Nå har jeg fått hørestreken på menyen til å gå helt ned til footeren med

height: 590px;

er det noen annen måte å gjøre det på så den går ned uansett om menyen strekker seg?

 

Håper på svar.

Lenke til kommentar
Videoannonse
Annonse

Jeg kommer ikke en gang inn på siden, du sender siden i application/xhtml+xml og dette lager problemer for IE, selv om det egentlig er dette som er rett...

 

Det finnes flere måter å fikse dette på.

1. sjekke om det er IE som skal vise siden, i såfall send siden som text/html, ellers korrekt mime type.

2. Sjekk denne siden http://dean.edwards.name/my/application_xml.html mer info: http://charlvn.blogspot.com/2004/07/xhtml-...t-explorer.html

 

EDIT: Første linken gikk til feil side :blush:

Endret av mohuhau
Lenke til kommentar
Jeg kommer ikke en gang inn på siden, du sender siden i application/xhtml+xml og dette lager problemer for IE, selv om det egentlig er dette som er rett...

 

Det finnes flere måter å fikse dette på.

1. sjekke om det er IE som skal vise siden, i såfall send siden som text/html, ellers korrekt mime type.

2. Sjekk denne siden http://www.hixie.ch/advocacy/xhtml mer info: http://charlvn.blogspot.com/2004/07/xhtml-...t-explorer.html

Er da flere andre på forumet som sender application/xhtml+xml på hjemmesidene sine. Har sett noen "overstyringer" av IE gjennom !Important, men vil dette være vært et forsøk.

 

EDIT: Var en feil i linken som gjorde at du ikke kom inn. :whistle:

Endret av ett
Lenke til kommentar
Jeg kommer ikke en gang inn på siden, du sender siden i application/xhtml+xml og dette lager problemer for IE, selv om det egentlig er dette som er rett...

 

Det finnes flere måter å fikse dette på.

1. sjekke om det er IE som skal vise siden, i såfall send siden som text/html, ellers korrekt mime type.

2. Sjekk denne siden http://www.hixie.ch/advocacy/xhtml mer info: http://charlvn.blogspot.com/2004/07/xhtml-...t-explorer.html

Er da flere andre på forumet som sender application/xhtml+xml på hjemmesidene sine. Har sett noen "overstyringer" av IE gjennom !Important, men vil dette være vært et forsøk.

 

EDIT: Var en feil i linken som gjorde at du ikke kom inn. :whistle:

Ja, men da bruker de en av de løsningene som jeg har vist deg for at det skal virke i IE (en av linkene var vist til feil side, skal rette på det). Nå er det muligens noe annet som er galt også, siden IE normalt pleier å vise et dom-tre når den får servert application/xhtml+xml. Jeg får bare en feilmelding om at den ikke kan vise / på http://www.juventusnorge.1go.dk/, men den fungerer i Firfox.

Lenke til kommentar

Så de sender er header i php som gjør at:

IE: sender html 4.01 strict

mens Firefox, Opera ++ sender application/xhtml+xml?

 

Jeg bruker denne headeren:

 

<?php
$charset = "iso-8859-1";
$mime = "application/xhtml+xml";
function fix_code($buffer) {
return (preg_replace("!\s*/>!", ">", $buffer));
}
if(stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml")) {
       if(preg_match("/application\/xhtml\+xml;q=([01]|0\.\d{1,3}|1\.0)/i",$_SERVER["HTTP_ACCEPT"],$matches)) {
       	$xhtml_q = $matches[1];
               if(preg_match("/text\/html;q=q=([01]|0\.\d{1,3}|1\.0)/i",$_SERVER["HTTP_ACCEPT"],$matches)) {
               	$html_q = $matches[1];
                       if((float)$xhtml_q >= (float)$html_q) {
                       $mime = "application/xhtml+xml";
 	}
               }
       } else {
           $mime = "application/xhtml+xml";
               }
}
if($mime == "application/xhtml+xml") {
 $prolog_type = "<?xml version=\"1.0\" encoding=\"$charset\" ?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"no\" lang=\"no\">\n";
} else {
ob_start("fix_code");
       $prolog_type = "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<html lang=\"no\">\n";
}
header("Content-Type: $mime;charset=$charset");
header("Vary: Accept");
print $prolog_type;

?>

Endret av ett
Lenke til kommentar
Så de sender er header i php som gjør at:

IE: sender html 4.01 strict

mens Firefox, Opera ++ sender application/xhtml+xml?

Nei!

Det viktige er at IE får text/html, ikke at IE får html 4.01 strict. xhtml 1.0 er også gyldig å sende som text/html, selv om det ikke er anbefalt. xhtml 1.1 og høyer må sendes som application/xhtml+xml evntuelt application/xml, men det er ikke anbefalt.

 

Du må endre koden din slik at IE får text/html:

 

<?php
$charset = "iso-8859-1";
$mime = "application/xhtml+xml";
function fix_code($buffer) {
return (preg_replace("!\s*/>!", ">", $buffer));
}
if(stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml")) {
       if(preg_match("/application\/xhtml\+xml;q=([01]|0\.\d{1,3}|1\.0)/i",$_SERVER["HTTP_ACCEPT"],$matches)) {
       	$xhtml_q = $matches[1];
               if(preg_match("/text\/html;q=q=([01]|0\.\d{1,3}|1\.0)/i",$_SERVER["HTTP_ACCEPT"],$matches)) {
               	$html_q = $matches[1];
                       if((float)$xhtml_q >= (float)$html_q) {
                       $mime = "application/xhtml+xml";
 	}
               }
       } else {
           $mime = "application/xhtml+xml";
               }
}
if($mime == "application/xhtml+xml") {
 $prolog_type = "<?xml version=\"1.0\" encoding=\"$charset\" ?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"no\" lang=\"no\">\n";
} else {
ob_start("fix_code");
       $prolog_type = "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<html lang=\"no\">\n";
}
header("Content-Type: $mime;charset=$charset");
header("Vary: Accept");
print $prolog_type;

?>

 

Her har jeg byttet ut

else {
 $mime = "application/xhtml+xml";
} 

med

else {
  $mime = "text/html";
}

Endret av mohuhau
Lenke til kommentar
Ville heller brukt denne kodesnutten: http://dev.misinterpreted.org/etc/php/high...ile.php?q=xhtml

Det tror jeg ikke jeg ville gjort...

 

Den kan jo egentlig ikke brukes på xhtml 1.1 eller senere. I tillegg sender den filen med utf8 tegnsett selv om du endrer charset i $charset-variabelen til et annet tegnsett...

 

+ at du må kjøre apache med phpmodul v 4.3.0 eller høyere.

Endret av mohuhau
Lenke til kommentar
Ville heller brukt denne kodesnutten: http://dev.misinterpreted.org/etc/php/high...ile.php?q=xhtml

Den kan jo egentlig ikke brukes på xhtml 1.1 eller senere. I tillegg sender den filen med utf8 tegnsett selv om du endrer charset i $charset-variabelen til et annet tegnsett...

Akuratt det reagerte jeg også på, men siden min har jo fortsatt de samme feilene rent grafikkmessig.

 

Edit: Hvordan får jeg scriptet mitt til å sende som strict og ikke traditional?

Endret av ett
Lenke til kommentar
Ville heller brukt denne kodesnutten: http://dev.misinterpreted.org/etc/php/high...ile.php?q=xhtml

Det tror jeg ikke jeg ville gjort...

 

Den kan jo egentlig ikke brukes på xhtml 1.1 eller senere. I tillegg sender den filen med utf8 tegnsett selv om du endrer charset i $charset-variabelen til et annet tegnsett...

Vel, hvis man bruker XHTML 1.1 så skal CNT ikke taes i bruk i det hele tatt, så det er inget problem.

Når du snakker om høyere enn XHTML 1.1, går jeg ut i fra at du mener XHTML2?

 

$charset-variabelen burde egentlig fjernes.

UTF8 er den ideelle enkodingen uansett hvordan du vrir og vender på det.

Jeg bruker UTF-8 uansett om jeg skriver norsk eller engelsk.

Lenke til kommentar
Ville heller brukt denne kodesnutten: http://dev.misinterpreted.org/etc/php/high...ile.php?q=xhtml

Det tror jeg ikke jeg ville gjort...

 

Den kan jo egentlig ikke brukes på xhtml 1.1 eller senere. I tillegg sender den filen med utf8 tegnsett selv om du endrer charset i $charset-variabelen til et annet tegnsett...

Vel, hvis man bruker XHTML 1.1 så skal CNT ikke taes i bruk i det hele tatt, så det er inget problem.

Når du snakker om høyere enn XHTML 1.1, går jeg ut i fra at du mener XHTML2?

 

$charset-variabelen burde egentlig fjernes.

UTF8 er den ideelle enkodingen uansett hvordan du vrir og vender på det.

Jeg bruker UTF-8 uansett om jeg skriver norsk eller engelsk.

Koden som ett hadde fra før gjorde om xhtml kode til html 4.01 kode (byttet ut /> med >) når den skulle sende text/html, dermed kan den brukes på xhtml1.1 og høyere (med høyere mener jeg det som eventuelt måtte komme av nye xhtml versjoner, om det er 2 eller 2.1 eller 5 for den sags skyld.)

 

At utf8 burde vært brukt til alt er jeg helt enig i, men koden din er jo til dels lagt opp til at man enkelt skal kunne skifte. Enten må du fjerne muligheten helt, eller fikse den.

 

Edit: Hvordan får jeg scriptet mitt til å sende som strict og ikke traditional?
endrer
$prolog_type = "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<html lang=\"no\">\n";

til

 $prolog_type = "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n<html lang=\"no\">\n";

Endret av mohuhau
Lenke til kommentar

hm, nå funker ikke siden min i IE. Har ikke noe med koden du sendte meg å gjøre, funka ikke før det heller.

Men det som er rarest er at SELV om siden sendes som application/xhtml+xm så får jeg opp: l

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

i kildekoden når jeg ser i mozilla.

Hva er galt?

 

<?php
$charset = "utf-8";
$mime = "application/xhtml+xml";
function fix_code($buffer) {
return (preg_replace("!\s*/>!", ">", $buffer));
}
if(stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml")) {
       if(preg_match("/application\/xhtml\+xml;q=([01]|0\.\d{1,3}|1\.0)/i",$_SERVER["HTTP_ACCEPT"],$matches)) {
       	$xhtml_q = $matches[1];
               if(preg_match("/text\/html;q=q=([01]|0\.\d{1,3}|1\.0)/i",$_SERVER["HTTP_ACCEPT"],$matches)) {
               	$html_q = $matches[1];
                       if((float)$xhtml_q >= (float)$html_q) {
                       $mime = "application/xhtml+xml";
 	}
               }
       } else {
           $mime = "text/html";
               }
}
if($mime == "application/xhtml+xml") {
  $prolog_type = "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n<html lang=\"no\">\n";
} else {
ob_start("fix_code");
       $prolog_type = "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<html lang=\"no\">\n";
}
header("Content-Type: $mime;charset=$charset");
header("Vary: Accept");
print $prolog_type;

?>

 

+ denne i meta:

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

 

Metaen er vell ikke problemet?

Lenke til kommentar
Koden som ett hadde fra før gjorde om xhtml kode til html 4.01 kode (byttet ut /> med >) når den skulle sende text/html, dermed kan den brukes på xhtml1.1 og høyere (med høyere mener jeg det som eventuelt måtte komme av nye xhtml versjoner, om det er 2 eller 2.1 eller 5 for den sags skyld.)

Så lenge Appendiks C av XHTML 1.0-spesifikasjonen er grei, er det rett og slett helt unødvendig å sløse bort ressurser på å konvertere XHTML tilbake til HTML.

Og uansett, XHTML2 er ikke bakoverkompatibel, så å sende et XHTML2-dokument som text/html vil føre til feilrendering av dokumentet. ;)

 

Hvis ett absolutt skal bruke den kodesnutten som han gjør, kan han slettes ikke være sikker på at siden ikke inneholder XHTML-attributter og lignende når sendt som HTML (xml:lang eller xlink:href, for eksempel)

 

ett: Ikke bruk meta-elementet til dette! http://webstandardsgroup.org/features/tomm...sson.cfm#served

Endret av SirIce
Lenke til kommentar
Koden som ett hadde fra før gjorde om xhtml kode til html 4.01 kode (byttet ut /> med >) når den skulle sende text/html, dermed kan den brukes på xhtml1.1 og høyere (med høyere mener jeg det som eventuelt måtte komme av nye xhtml versjoner, om det er 2 eller 2.1 eller 5 for den sags skyld.)

Så lenge Appendiks C av XHTML 1.0-spesifikasjonen er grei, er det rett og slett helt unødvendig å sløse bort ressurser på å konvertere XHTML tilbake til HTML.

Og uansett, XHTML2 er ikke bakoverkompatibel, så å sende et XHTML2-dokument som text/html vil føre til feilrendering av dokumentet. ;)

hehe, ja det er sant :p tenkte ikke engang over at kodene ikke er like :blush: men det vil gjelde for xhtml 1.1. Det beste dersom du vil server xhtml 1.1 er vel å endre doctype til 1.0 og charset til text/html til nettlesere som ikke har støtte for application/xhtml+xml.

 

Hvis ett absolutt skal bruke den kodesnutten som han gjør, kan han slettes ikke være sikker på at siden ikke inneholder XHTML-attributter og lignende når sendt som HTML (xml:lang eller xlink:href, for eksempel)

Dette kan være et problem, men IE vil vel uansett ikke gjøre noe forskjell på om disse er med i et html- eller et xhtml-dokument, men det er jo så klart ikke den beste løsningen...

 

ett: Ikke bruk meta-elementet til dette! http://webstandardsgroup.org/features/tomm...sson.cfm#served

:yes: Men det kan være ok å ha meta-elementene med i tillegg for de av oss som av og til lagrer slikt til disk. :)

 

hm, nå funker ikke siden min i IE. Har ikke noe med koden du sendte meg å gjøre, funka ikke før det heller.

Men det som er rarest er at SELV om siden sendes som application/xhtml+xm så får jeg opp: l

CODE

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

i kildekoden når jeg ser i mozilla.

Hva er galt?

I koden din har du nå to forskjellige html 4.01 doctype, og ikke en html 4.01 og en xhtml doctype...

 

Med IE user-agent får jeg framdeles servert application/xhtml+xml og jeg får bare en feilmelding når jeg prøver å se siden i IE.

 

Hadde det ikke vert for at du bruker zeus og SirIce sin kode dermed ikke virker, hadde jeg nok anbefalt deg å gå over til den...

 

Selv vil jeg vell også si at det er absolutt ingen grunn til å stresse med alt dette. Det er ingenting i xhtml 1.0 som du ikke har i html 4.01...

Endret av mohuhau
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...