CSS å dø for
Hvis du bruker IE6 burde du absolutt ikke besøke denne siden. Den inneholder ikke annet enn bittelitt validerende HTML og CSS, men det er nok til at IE6 kræsjer og dør hen på en høyst ustilig måte.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="no">
<head>
<title>Denne siden sender IE6 til nettleserhimmelen</title>
<style type="text/css">
.whatever h2 {
background: red;
}
.whatever h2:first-letter {
padding-right: 10px;
}
</style>
</head>
<body>
<div class="whatever">
<h2><span>Dette er en overskrift</span></h2>
</div>
</body>
</html>
Dette er altså den "farlige" koden som kræsjer IE6. Den første tanken jeg hadde når jeg så dette var at det er :first-letter-pseudoelementet som skaper trøbbel ettersom IE6 ikke er helt på nett med den. Å bruke :first-letter på et element hvis innhold ikke begynner med tekst sto for meg som en annen kilde til trøbbel.
Det som gjør dette eksempelet så interessant er at det kan virke som om det er kombinasjonen av :first-letter og bakgrunnsfarge som skaper trøbbel. IE kræsjer nemlig ikke dersom du fjerner bakgrunnsfargen. Eller, det vil si, så lenge du fjerner hele tilordningen går det bra. Beholder du tilordningen, men setter verdien til "none" så går det derimot ikke greit.
Jeg er relativt mett på IE-bugs og har ikke hatt det store drivet til å finne ut nøyaktig hva som er problemet her, annet enn at det er background og :first-letter i kombinasjon som forårsaker feilen. Videre er span-elementet inne i h2-elementet med på å lage trøbbel ettersom IE ikke kræsjer hvis h2-elementet kun inneholder tekst.
Det sjokkerer meg på ingen som helst måte at IE har bugs med HTML- og CSS-implementasjonen sin, men, det sjokkerer meg faktisk litt at IE 6 har feil som tillater CSS å kræsje hele browseren selv 6 år etter at den først ble lansert. Menmen, vi har alle våre problemer, og dette er bare enda en ting på listen over ting man må lære seg å jobbe rundt uten å tenke så mye over det for å beholde humøret i hverdagen.