Quelques idées en vrac (je suppose que tu es relativement familier avec les concepts de base xhtml/css).
Le premier vrai problème avec Internet Explorer, c'est qu'il peut fonctionner en deux modes distincts:
- le mode quirks
- le mode strict
Le mode quirks fonctionne avec "l'ancienne" implémentation fautive du box-model; le mode strict lui, est conforme au box-model w3c.
Le mode quirks est insupportable et donne de grosses différences avec les autres nav.
Il faut donc avant toute chose forcer le mode strict d'IE.
Secondement, il y a quelques pièges à éviter...
IE ne supporte pas les balises scripts auto-fermantes...
Nativement, il ne supporte pas (très peu) les sélecteurs css.
Il y a un nombre impressionant de bugs de rendu qui rendent css difficilement exploitable...
C'est pas évident de trouver une solution pour les objects...
Heureusement, il y a un fou dans le secteur (Dean Edwards) qui a développé une librairie js qui "fait fonctionner" Internet Explorer (presque) comme un navigateur normal.
Tu peux la trouver ici:
http://dean.edwards.name/IE7/
Si on reprend:
- forcer le mode strict = ne pas envoyer le prologue xml à IE (sinon il passe en quirks le con)
- avoir une page bien valide bien carrée
- si tu acceptes d'avoir une grosse lib js, utiliser la lib de Dean Edwards
=> on peut commencer à parler css sérieusement
Un bout de code:
<?php
// On utilise php ici pour *ne pas* envoyer de prologue xml à IE
// Attention, c'est pas complètement safe, si le client joue "déguisé"... mais bon hein :D
if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE')===false or isset($_GET['l33t_iesucks']))
{
// Attention, on suppose la page en utf8
echo '<?xml version="1.0" encoding="utf-8"?>'."\n";
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "<a href="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" target="_blank">http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd</a>">
<!-- on démarre, en précisant une langue... -->
<html xmlns="<a href="http://www.w3.org/1999/xhtml" target="_blank">http://www.w3.org/1999/xhtml</a>" xml:lang="fr">
<head>
<!-- Quelques meta pour les types -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Language" content="fr" />
<!-- Et puis, de quoi il s'agit, et par qui-->
<meta name="description" content="" />
<meta name="keywords" content="" />
<meta name="author" content="" />
<!-- Un bô titre, une belle icône, et dire où est la maison... -->
<title></title>
<link rel="icon" type="image/png" href="icon.png" id="XhtmlIcon" />
<link rel="home" href="./" id="XhtmlHome" />
<!-- Charger une feuille de style -->
<link href="lib/css/style.css" media="all" rel="stylesheet" type="text/css" title="Style par défaut" id="XhtmlStyleSheet0" />
<!-- Une lib js perso -->
<*script type="text/javascript" xml:space="preserve" src="lib/js/fonctions.js"></script>
<!-- attention à ne pas fermer la balise, sinon IE plante... -->
<!-- IE7 par Dean Edwards [on prend juste les sélecteurs] -->
<!--[if lt IE 7]>
<*script src="lib/js/ie7_0.8/src/ie7-core.js" type="text/javascript"></script>
<*script src="lib/js/ie7_0.8/src/ie7-css2-selectors.js" type="text/javascript"></script>
<*script src="lib/js/ie7_0.8/src/ie7-css3-selectors.js" type="text/javascript"></script>
<![endif]-->
<!-- et un peu de style spécifique à la page, à la main... -->
<style type="text/css" media="all" xml:space="preserve">
body
{
/* Ce qu'on veut... */
}
@import url(additionnel.css);
</style>
<!-- Et un peu de javascript local éventuellement... -->
<*script type="text/javascript" xml:space="preserve">
//<![CDATA[
//]]>
</script>
</head>
<body>
<p>
Ce template est un point de départ pour créer une bonne page.
La lib IE7 permet de faire des choses assez extraordinaires pour IE; dans le genre des horreurs comme ça:
div+ol>li:first-child>p
.... tout en ayant un rendu assez proche des autres butineurs.
</p>
</body>
</html>
A partir de là, les ressources de w3school sont une bonne référence.
C'est une excellente idée de valider systématiquement tes pages (perso, je me sers du validateur de l'extension web-developper de Firefox).
C'est aussi une bonne idée IMHO de ne pas trop recourir aux classes css.
C'est beaucoup plus propre avec les sélecteurs...
Est-ce que ça aide un peu?