2013-06-11 18 views
5

Auf einem Windows 7 mit IE8 finde ich display: inline-block funktioniert ganz gut. Nachdem ich jedoch die HTML-Datei in chm kompiliert habe, wird die Seite innerhalb von chm nicht gut angezeigt, als ob inline-block keine Wirkung zeigt.Warum die Seite in IE8 und in CHM anders angezeigt wird (CSS "display: inline-block" -Ausgabe)

Gibt es eine Möglichkeit, chm dieselbe Anzeige wie in IE8 anzuzeigen? Vielen Dank.

enter image description here

Meine html Quelle:

<!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> 

Antwort

2

Ich finde die Antwort endlich. A post at west-wind.com sagt mir, dass ich einen Registry-Hack machen muss, um CHM-Reader (hh.exe) IE8-Rendering-Modus zu verwenden, sonst verwendet hh.exe höchstens IE7.

Der Registry-Hack ist: Speichern Sie den folgenden Code in einer REG-Datei, dann doppelklicken Sie, um in die Registrierung zu importieren.

REGEDIT4 

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

OK. Zumindest gibt es eine Lösung für IE8 M $ System.

Diese Frage Will the IE9 WebBrowser Control Support all of IE9's features, including SVG? Zusammenhang

+0

Warnung mit diesem Hack: Die Änderung ist global, was bedeutet, dass alle CHM-Inhalte mit der aktualisierten IE-Version angezeigt werden. Dies kann Probleme für andere (ältere) Hilfedateien verursachen, die erwarten, dass IE 7 verwendet wird. Persönlich hatte ich keine Probleme, aber es ist gut, das im Hinterkopf zu behalten, bevor Sie eine globale Einstellung auf den Maschinen der Leute ändern. –

0

statt Inline-Block, den Sie mit haben Schwimmer zu verwenden: left; für IE8, da es die Eigenschaft von Inline-Block nicht unterstützt;

Also das müssen Sie Ihrem Code hinzufügen.

#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*/ 
} 
+0

Was bedeutet \ 9 in "links \ 9" bedeuten, bitte? –

+0

Und Ihr Code verwendet immer noch '' Inline-Block'', im Gegensatz zu Ihrer Meinung von "statt Inline-Block". –

+0

\ 9 ist ein Hack für IE verwendet. Diese Codezeile wird nach Ihrem CSS hinzugefügt. Dies gilt nur für den IE und wirkt sich nicht auf andere Browser aus. Inline-Block im Code ist nicht wichtig, da dies für andere Browser gelten wird als sowieso Inline-Block funktioniert nicht in IE. – LegendaryAks