5 votes

Pourquoi la page s'affiche différemment dans IE8 et dans chm (problème de CSS "display : inline-block")

Sur un Windows 7 avec IE8, je constate que display: inline-block fonctionne très bien. Cependant, après avoir compilé le fichier html en chm, la page dans chm ne s'affiche pas bien, comme si inline-block n'a pas d'effet.

Existe-t-il un moyen de faire en sorte que chm s'affiche de la même manière que dans IE8 ? Merci.

enter image description here

Ma source html est :

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>title to fill</title>
<meta charset="utf-8">
<style type="text/css">
#topcanvas {
    z-index: 0;
    top: 0; 
    left:0;
    width:100%;
}

#chjnavi {
    font-size: 10pt;
    background-color: #eee;

    padding: 0em 1em;
    list-style-type: none;  
    position: relative;
    z-index: 0;
}

#chjnavi ul {
    margin: 0;
    padding: 0;
}

#chjnavi li {
    margin: 0;
    padding: 8px;
    display: inline-block;
        /* !!! */

    cursor: pointer;
}

</style>
</head>

<div id="topcanvas">
<div id="chjnavi">
    <ul id="navibar_topul">
        <li id="gentoc-t">item 1</li>
        <li id="codecolor-t">item 2</li>
        <li id="linenum-t">item 3</li>
    </ul>
</div>
</div>
<p> My text. </p>
</body>
</html>

2voto

engineAL Points 193

Je trouve enfin la réponse. Un post à west-wind.com me dit que je dois faire un hack de registre pour que le lecteur CHM (hh.exe) utilise le mode de rendu IE8, sinon, hh.exe utilise au maximum IE7.

Le piratage du registre est : Enregistrez le code suivant dans un fichier .reg, puis double-cliquez pour l'importer dans le registre.

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION]
"hh.exe"=dword:00001f40

OK. Au moins il y a une solution pour le système M$ IE8.

Cette question est liée à Le contrôle IE9 WebBrowser prendra-t-il en charge toutes les fonctionnalités d'IE9, y compris le SVG ?

0voto

LegendaryAks Points 216

Au lieu de Inline-block, vous devrez utiliser float:left ; pour IE8, car il ne prend pas en charge la propriété Inline-block ;

Voici donc ce que vous devrez ajouter à votre code.

#chjnavi li {
    margin: 0;
    padding: 8px;
    display: inline-block;
    cursor: pointer;
    float:left\9; /* This works for IE8 and below  so apply this to your code*/
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X