2013-06-11 9 views
5

W systemie Windows 7 z IE8 uważam, że display: inline-block działa całkiem dobrze. Jednak po skompilowaniu pliku html do chm, strona wewnątrz chm nie wyświetla się dobrze, tak jakby inline-block nie przynosi żadnego efektu.Dlaczego strona wyświetla się inaczej w IE8 i w chz (problem CSS "display: inline-block")

Czy istnieje sposób na wyświetlenie chm tak jak w IE8? Dziękuję Ci.

enter image description here

Moje źródło HTML jest:

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

Odpowiedz

2

W końcu znajduję odpowiedź. A post at west-wind.com mówi mi, że muszę wykonać rejestr hack, aby czytnik CHM (hh.exe) korzystał z trybu renderowania IE8, w przeciwnym razie hh.exe używa co najwyżej IE7.

Hak rejestru jest: Zapisz następujący kod do pliku .reg, a następnie kliknij dwukrotnie, aby zaimportować do rejestru.

REGEDIT4 

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

OK. Przynajmniej istnieje rozwiązanie dla systemu IE8 M $.

To pytanie jest związane z Will the IE9 WebBrowser Control Support all of IE9's features, including SVG?

+0

Słowo ostrzeżenia z tym hackerem: Zmiana ma charakter globalny, co oznacza, że ​​cała treść CHM pojawi się przy użyciu zaktualizowanej wersji IE. Może to powodować problemy w innych (starszych) plikach pomocy, które oczekują użycia IE 7. Osobiście nie miałem żadnych problemów, ale dobrze jest o tym pamiętać, zanim zmienisz globalne ustawienie na komputerach użytkowników. –

0

Zamiast inline-block ty ze trzeba użyć float: left; dla IE8, ponieważ nie obsługuje właściwości Inline-block;

To właśnie będzie trzeba dodać do kodu.

#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

Co \ 9 w "lewo \ 9" oznaczają, proszę? –

+0

Twój kod nadal używa 'inline-block'', wbrew twojej opinii" inline-block ". –

+0

\ 9 jest hackem używanym do IE. Ta linia kodu jest dodawana po twoim css, dotyczy to tylko IE i nie wpłynie na inne przeglądarki. Blokowanie wbudowanego bloku kodu nie ma znaczenia, ponieważ będzie miało zastosowanie do innych przeglądarek, ponieważ blokada Inline nie będzie działać w IE. – LegendaryAks