Har stött på en skum grej i ie8, som jag misstänker är en bugg. Följande kod: Kollar jag i "utvecklingsverktyget" i ie8 så ser jag följande struktur: Bugg confirmed. Jag vet att Firefox endast använder XML-parsern (så att <a ... /> funkar) om sidan skickas med en MIME-typ som säger att det är XML, t.ex. application/xhtml+xml. Men den MIME-typen känner inte IE igen utan vill spara sidan som en fil.IE8 bugg?
<?xml version="1.0" encoding="utf-8" ?>
<!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">
<head>
<title>z</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<style type="text/css">
h2
{
background: #E0E0E0;
padding-top: 0.3em;
border-top:2px solid green;
}
</style>
</head>
<body>
<div style="background:green">
<a name="a" />
</div>
<h2>
<a name="b" />
</h2>
</body>
</html>
(lägger man till ett "x" efter resp. <a...> så ser man att diven blir grön. Tanken här är att h2 ska bli grå med en grön border längst upp. (Detta är extraherat från en betydligt större grej)
* Validerar
* Funkar i FF
* I IE7 får h2 inget innehåll, och man ser inte den gråa färgen, utan bara den gröna bordern (no big deal, den funkar i det större sammanhanget)
* I IE8 "börjar h2 två gånger". Alltså: man ser grön border och grå färg, följt av ett litet vitt tomrum, följt av grön border och grå färg. Storleken på detta tomrum avgörs av padding-top (och padding-bottom om jag inte minns fel). Tar jag bort någon av anchorna så försvinner den extra "toppen".
Jag får också samma fenomen om jag bara har:
<a name="a" />
<h2>
<a name="b" />
</h2>
(Alltså utan en div runt första <a..>)
Idé någon?
Edit:
Det här är en ännu enklare variant som visar problemet:
<?xml version="1.0" encoding="utf-8" ?>
<!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">
<head>
<title>z</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
</head>
<body>
<a name="a" />
<div style="background: #E0E0E0; padding-top: 0.3em; border-top:2px solid green;">
<a name="b" />
</div>
</body>
</html>
Sv: IE8 bugg?
<body>
<a name="a">
<div ...>
<a name="b"/>
<a name="b"/>
(man ser inget "/" efter "a" i första anchorn, trots att det är det i koden)
Markerar jag <a name="a"> markeras den "övre halvan", markerar jag <div ...> markeras hela grejen, och markerar jag någon av <a name="b"/> så markeras ingenting.
WTF?Sv:IE8 bugg?
genom att byta
<a name="a"/>
till
<a name="a"></a>
så löste det sig. XHTML Strict compliant - my ass.Sv: IE8 bugg?