Duplicate Character bug in IE6
De dubbele tekens bug in IE
Het zal ja waarschijnlijk al eens zijn opgevallen bij het ontwerpen, van een layout met meerdere float’s, dat in Internet Explorer de laatste link en/of tekst nog eens herhaald wordt.
En daar er geen enkel element daarvoor verantwoordelijk is, is deze bug een echte brain-teaser.
Een voorbeeld welke je met IE moet bekijken, daarna eens met FireFox of Opera waar je zal zien hoe het eigenlijk zou moeten zijn.
Het probleem
De echte oorzaak van dit fenomeen zijn comments, ja inderdaad kleine comments die je in je code zet als aanwijzingen. Maak je geen gebruik van comments zal je dit fenomeen toch nog kunnen tegenkomen daar een CSS bepaling display: none; op eender welk element vooraf de Duplicate Character bug in IE6 zal kunnen veroorzaken.
Comments
Dus comments, wat is dat vraag je:
<div style="float: left;">
<div style="float: left;"></div>
<!-- dit is een HTML comment -->
<div style="float: left;"></div>
</div>
Als je zulke tussen de ge-floatte elementen plaats dat begint de miserie, niet één maar pas vanaf 2 comments zullen de bug activeren, en wel zo dat voor elke comment één letter zal worden herhaald onder de laatste float.
Dus als je 50 comments plaatst, zullen er 49 tekens herhaald worden. Goed hé ?
De oplossing
Natuurlijk is er een oplossing, er zijn er zelf 3:
- Een extra
margin-right: -3px;geven aan het laatste gefloatte element, als je natuurlijk alles rechts uitlijnt dan is het andersom. - Je geeft de omvattende container een extra
3pxbreedte, opgelet: dit werkt niet altijd. - Je haalt het teveel aan comments weg, ahja
Een voorbeeld van de oplossing met de eerste mogelijkheid welke je met IE6 moet bekijken.
Een voorbeeld van de oplossing met de laatste oplossing, welke je met IE6 moet bekijken.
Gelezen: 1618 | Styling, CSS, Tips
Trackback/Pingbacks
- Gigadesign, website maken, correct » I.E.7, wat brengt deze ons?
- » Newbies en hun problemen - Gigadesign, XHTML-CSS website maken
- Newbies en hun problemen | Nono
Reacties op: Duplicate Character bug in IE6
-
Een van de weinig voorkomende situaties waar het afgeraden is comments te gebruiken :*)
Maar goed dat ik dit probleem niet eerder ben tegengekomen..
/heeft de neiging om problematische stukjes code weg te commenten ipv ze tijdelijk te ‘verwijderen’.
-
Ik weet nog wel dat ik deze voor het eerst tegen kwam. Die uurtjes waren de meest frustrerende uurtjes in mijn css-loopbaan

Dat het maar om 1 letter gaat weet ik niet zeker. Ik meen me te herinneren dat er vrij willekeurig (gedeeltes van) woorden herhaald werden. Was in elk geval geen peil op te trekken. Heel bizar!
Gelukkig is deze bug zo raar dat als je hem eenmaal een keer gezien hebt je de volgende keer gelijk weet waar je moet zoeken.
P.S.: iets wat ik op veel weblogs zie bij de commentaar formulier: het ontbreken van een mededeling of een ingevuld emailadres wel of niet getoond wordt. Dan weet je niet of je wel veilig een emailadres kunt invullen. Ik weet dat wordpress van zichzelf het emailadres niet toont, maar het is misschien beter het zinnetje toe te voegen: “emailadres is verplicht, maar wordt nooit getoond”.
-
@Matthijs: Heb het aangepast, was dit al van plan om te doen, maar vergeten.
-
Mark, thanx!
-
Hey hardstikke handig dit thanx
alleen bij mij werkt het nog niet. Ik ben een skin aan het maken in DNN en de tekst in mn footer herhaalt zichzelf onder de pagina en komt links (gedeeltelijk) uit m’n scherm. Ik heb alle HTML comments eruit gehaald, zonder effect (neem aam dat CSS comments er niet toedoen?) Mijn laatste element in de HTML een margin-right:-3px; meegeven werkt ook niet. Je zegt trouwens bij de omvattende container een 3px extra geven. De skin is vrij complex en heeft nogal wat DIV’s. Bedoel je de div die DIRECT om de problematische tekst heen zit? Of de allergrootste DIV? Ik heb in ieder geval beide geprobeerd en het helpt nog niks.Hoop dat jullie me kunnen helpen, ik heb een screenshot bijgevoegd ter illustratie
-
De div die de div omvat waarin zich het probleem voordoet een extra 3px geven
-
Heel veel bedankt (!!!) het werkt. MAAR ik heb een 100% width op mn allesomvattende container, waar het probleem lag. Ik heb er nu een extra container weer omheen gedaan met 100% en de andere container 995 ipv 992px gezet alleen nu centreert ie niet meer. Enig idee wat ik hier aan kan doen?
Mvg
-
margin: 0 auto;
-
hmm nee, al geprobeerd. Uiteindelijk deed de text-align:center; op de body het. Deze had ik eerder op de allesomvattende container. godsgruwelijk bedankt iig! Heb binnen een halfuur nu de Peekaboo en deze bug gefixt terwijl ik de hele dag al aan het fixen was. Nogmaals BEDANKT!
-
Enorm bedankt, ik heb dit probleem vaker gehad, maar was zo raar dat ik er maar niet uitkwam. Super!

-
Haha, ik heb dat probleem ook eens gehad, de deadline was zo krap dat ik de karakters die herhaald werden door nbps heb vervangen… niet zo elegant maar het werkte wel.
Ik heb ergens gelezen dat je wel conditional comments in de stijl van [if IE6] kunt gebruiken. Het fijne weet ik er echter niet meer van.Comments vind ik handig en in vele gevallen noodzakelijk! vb: als er nog andere ontwikkelaars in je document moeten werken.
-
Je kan het ook oplossen door je comments als volgt te plaatsen:
<--[if !IE]>End of div smallercontent...<![endif]-->
Is misschien iets meer werk bij het plaatsen van de comments, maar lijkt me toch nog steeds de meest eenvoudige oplossing
-
Wat heb ik me suf lopen zoeken toen ik deze bug voor het eerst tegenkwam. Mijn code was zo nauwkeurig als maar zijn kan, zelfs alles gecomment… Waarschijnlijk heb ik het toen op een heel andere manier aangepakt. Nu had ik er weer last van maar wilde eerst zoeken naar iets anders toen ik deze pagina tegenkwam! Een geschenk!
-
Deze heb ik ook een keer gehad. Je kunt ook gewoon de div waarin de text staat die herhaald wordt een position:relative; geven, dat werkt ook (net als bij de peek-a-boo bug)






