2013-06-11 19 views
5

IE8のWindows 7では、display: inline-blockがうまく機能します。しかし、chmにhtmlファイルをコンパイルした後、chm内のページは表示されません。あたかもinline-blockが効果を発揮しないかのようです。ページがIE8とchm(CSS "display:inline-block"の問題)で異なって表示される理由

IE8と同じようにchmを表示する方法はありますか?ありがとうございました。

enter image description here

私のhtmlソースがある:あなたとは、floatを使用する必要が

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

答えて

2

最後に答えが見つかりました。 A post at west-wind.comは、CHMリーダー(hh.exe)にIE8レンダリングモードを使用させるためにレジストリハックを行う必要があることを教えています。そうでなければ、ほとんどのIE7でhh.exeが使用されます。

レジストリのハックは次のとおりです。次のコードを.regファイルに保存し、レジストリにインポートするためにダブルクリックします。

REGEDIT4 

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

OK。少なくともIE8のM $システムのための解決策があります。

この質問は関連していますWill the IE9 WebBrowser Control Support all of IE9's features, including SVG?

+0

このハックの警告メッセージ:変更はグローバルです。つまり、すべてのCHMコンテンツが更新されたIEバージョンを使用して表示されます。これは、IE 7が使用されることを期待する他の(古い)ヘルプファイルに問題を引き起こす可能性があります。個人的には何の問題もありませんでしたが、人々のマシンのグローバルな設定を変更する前にそれを念頭に置いておくことは良いことです。 –

0

代わりのインラインブロック:左;インラインブロックのプロパティをサポートしていないため、IE8用です。

これはあなたのコードに追加する必要があります。

#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

"左の\ 9"の意味はどうですか? –

+0

あなたのコードは、 '' inline-block''の代わりに '' inline-block''を使用しています。 –

+0

\ 9はIEで使用されるハックです。このコード行はCSSの後に追加され、IEにのみ適用され、他のブラウザには影響しません。 インラインブロックがコード内にあることは問題ではありません。とにかく他のブラウザにも適用されるため、インラインブロックはIEでは機能しません。 – LegendaryAks