IE7 en compatibiliteit met oude CSS-hacks
Permalink · Geplaatst op 2 February 2006 om 17:41
Het ontwikkelteam van Internet Explorer 7 heeft Beta 2 Preview van de nieuwe browser uitgegeven en hoopt daarop feedback te krijgen. Ik heb wat gedachten erover gevormd en ik zet mijn feedback dus eerst eens hier op mijn eigen site neer. Enkele maanden geleden heb ik in "Over Internet Explorer 7, CSS 2.1 en bugs" een uitgebreide post gedaan over de verbeteringen op CSS- en HTML-gebied die in Internet Explorer 7 aanstaande zijn. Eerlijkheidshalve moet ik zeggen dat ik wegens tijdgebrek nog niet de kans heb gehad om een bèta-release van IE7 te downloaden en installeren, dus ik moet een beetje afgaan op de informatie die het IEBlog ons geeft. In mijn laatste post over het onderwerp IE7 schreef ik:
quote: http://hjdeboer.nl/archives/2005/09/ie7-css-bugs
Ondersteuning voor de CSS 2.1 selectors en fixed positioning is een uitkomst en daar ben ik heel erg blij mee. Het betekent heel wat meer kans op valid style sheets, omdat het aantal benodigde hacks af zal nemen.
Kort daarop werd echter door het ontwikkelteam in Call to action: The demise of CSS hacks and broken pages gewaarschuwd dat veel CSS-hacks überhaupt niet eens zullen werken in IE7, of nog anders: ze zullen zelfs problemen kunnen veroorzaken. Uiteraard gebeurt er onder quirksmode rendering niets onverwachts (aangezien dat juist de backwards compatibility waarborgt), maar heb je je site zo van een doctype voorzien dat deze in standards mode gerenderd gaat worden, dan kun je tegen problemen aanlopen. Doordat namelijk in IE7 wél wordt geprobeerd aan te sluiten bij de webstandaarden, zijn er enkele bugs opgelost die zorgen dat bekende CSS-hacks niet meer werken.
In de genoemde 'Call to action' wordt een lijstje gegeven van hacks die lekker werkten in IE6 of lager, maar die mogelijk problemen geven in IE7:
- html > body - Incutio.com ChildHack
- * html - Incutio.com StarHtmlHack
- head:first-child + body - Centricle.com - The Owen Hack
- head + body - Dithered.com
- body > element - Incutio.com ChildHack
Opgeroepen wordt om deze hacks op zijn minst niet rücksichtslos in je stylesheet te gooien waardoor ze door elke browser gelezen worden. De oplossing is het gebruik van Conditional Comments. Op die manier kun je voor elke versie van Internet Explorer precies bepalen welke hacks daarop toegepast worden: laat de genoemde oude hacks dan alleen van toepassing zijn op versies lager dan IE7, door ze in een aparte stylesheet te zetten en door middel van conditional comments deze stylesheet alleen toe te passen op IE6 en lager.
Nu, drie maanden later, wordt door het IE7-team de oproep tot revisie van bestaande sites herhaald in Please test your sites with IE7. Volgens die post is het CSS box model overflow probleem van Internet Explorer recentelijk ook opgelost, wat een ware zegen is; het moet eerlijkheidshalve gezegd. Door het wegwerken van deze bug zorgt content overflow er niet meer voor dat je box uitgerekt wordt. Logisch; en dus hoe dan ook te laat gefixt omdat het nu weer voor incompatibiliteit zorgt. Het betekent ook dat de Holly Hack niet juist meer werkt in IE7. Die hack zal sowieso al amper meer werken door het oplossen van de bug die de StarHtmlHack mogelijk maakte.
Dit alles stelt mij voor een probleem. Gezien de featurelijsten die tot nu toe uitgegeven zijn over IE7, is de italic bug nog steeds niet opgelost. Ik ben althans nog nergens tegengekomen dat die hack door het IE7-team besproken is. Nu wil het toeval dat ik twee mogelijkheden heb om die bug te lijf te gaan: de hack van Position Is Everything die gebruik maakt van de genoemde Holly Hack, óf de oplossing die ik nu gebruik van Heuristic Blog die toegepast wordt op het parent element van de content-div die anders uitrekt door het gebruik van italics:
css:
1 | * html #right_column {
|

Meer informatie over (het gebrek) aan de ondersteuning van oude CSS-hacks door het voldoen aan standaarden kun je vinden op MSDN, waar gesproken wordt over Cascading Style Sheet compatibility in Internet Explorer 7. Merk trouwens even op dat in dat stuk niet over CSS-hacks, maar over CSS-filters wordt gerept; 't is subtiel, maar grappig.
Ah well, gelukkig gebruikt 21 procent van de lezers van hjdeboer.nl Firefox volgens de statistieken over januari. Zo lang dat niet minder wordt door de komst van IE7 ben ik redelijk tevreden met die verdeling.