CSS Hack per Internet Explorer 7

Daniele Bochicchio

di , in Sviluppo web,

Manca un mesetto scarso ad un insieme di RTM che neanche la cometa di Halley. Vista, .NET Framework 3.0, IE 7.0.

Quest'ultimo, soprattutto, è atteso da talmente tanti anni che ormai ci abbiamo fatto l'abitudine agli hack necessari a fare andare i CSS su IE 6.0.

Nelle ultime settimane, in modo specifico io e Marco, ci siamo dedicati a finire la nuova versione (4.0) di ASPItalia.com e WinFXItalia.com, che include anche una nuova veste grafica (a proposito, se tutto va bene saremo online da sabato/domenica ;)).

Ovviamente l'obiettivo è stato quello, a meno di un mese dalla RTM di IE 7.0, di supportare anche quest'ultimo. In realtà se uno impara a scivere i CSS usando meno hack possibili, ci sono buone probabilità che tutto funzioni su tutti i browser (certo, con qualche differenza). Nella pratica, Mozilla (soprattutto FireFox) e IE 6.0 gestiscono in maniera nettamente diversa i margini, così che spesso si usa questa tecnica:

.search
{
margin: 4px;
margin: 8px!important;
}

IE 6.0 legge solo il primo, FireFox solo il secondo, perchè marchiato come importante. IE 7 invece legge il secondo ma applica i margini come IE 6 :(

Fortunatamente IE 7.0 supporta i tag selector, ma lo fa in un modo che FireFox non supporta, per cui si può usare questo codice

*:first-child+html .search /* solo IE 7.0 */
{
  margin: 4px!important;
}

Questa modifica ha l'effetto di sovrascrivere quella definita prima, così che IE 6.0 userà 4 px di bordo, FireFox 8 ed IE 7.0 di nuovo 4, perchè definiti nello stile successivo.

Nel caso in cui si voglia invece far prendere un particolare stile solo ad IE 7.0 e FireFox (che però devono condividerlo), è sufficiente rimuovere il secondo pezzo di codice.

Infine, se si vuole applicare uno stile diverso a IE 6.0, FireFox ed IE 7.0, si può sfruttare questo hack al contrario, cioè così:

.search
{
  margin: 4px; /* IE 6.0 */
  margin: 5px!important; /* IE 7.0 */
}

html>/**/body .search /* FireFox*/
{
  margin: 8px !important;
}

E così ora i browser su cui testare i layout diventano 3 e non solo 2. Pazienza, se è il prezzo da pagare per avere IE 7.0 un po' più compatibile con gli standard web, ne sono anche felice.

Considerando che tra un po' esce FireFox 2.0, spero proprio che i browser non diventino 4, perchè con tutti gli hack del mondo, è sempre meglio avere meno problemi possibili ;)

Commenti
CSS Hack per Internet Explorer 7

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese
TAG CLOUD
.NET Framework, .NET Framework 2.0, .NET Framework 3.0, .NET Framework 3.5, .NET Framework 4.0, .NET Framework 4.5, .NET Micro Framework, 10annidi, ADO.NET, AJAX, Architettura, ASP, ASP.NET, ASP.NET 2.0, ASP.NET 2.0 per tutti, ASP.NET 3.5, ASP.NET 3.5 per tutti, ASP.NET 4.0, ASP.NET 4.0 Guida completa, ASP.NET 4.5, ASP.NET AJAX, ASP.NET Charting, ASP.NET MVC, ASPItalia.com, C# 4 Guida completa, Cache, Community Days 2010, Community Days 2012, CSS, Custom Control, Database, Databinding, Datagrid, Deployment, Dynamic Data Control, Entity Framework, Expression Blend, HTML 5 Espresso, HTML5, HttpHandler, HttpModule, HttpRuntime, IIS, ISAPI, Javascript, jQuery, LINQ, LINQ to Entities, LINQ to SQL, LogParser, Master Pages, Media Center, Membership API, Metro, Microsoft Expression, MIX11, Model Virtual Casting, Mono, MySQL, Object Oriented Programming, Off Topic, Office, ORM, Parallel FX, Pattern, PDC 2008, Profile API, Provider Model, Real Code Day 6, Report, Roles API, Security, SEO, Silverlight, Silverlight 2.0, Silverlight 3.0, Silverlight 3.0 Guida Completa, Silverlight 4.0, SQL Server, User Control, Visual Basic 2010 Guida completa, Visual Studio, Visual Studio 11, WCF Data Services, WCF RIA Services, Web Service, web.config, Windows 7, Windows 8, Windows Azure, Windows Client, Windows Communication Foundation, Windows Identity Foundation, Windows Live Services, Windows Phone, Windows Phone - il libro, Windows Phone 7, Windows Phone 7.1, Windows Phone 7.1.1, Windows Presentation Foundation, Windows Server, Windows Vista, WinRT, XAML, XBox 360, XHTML, XML, XNA, XSLT
BLOG INFO
  • 1.034 post, 442 commenti, 196 trackback
  • Feed blog: RSS Atom
In evidenza