2013-06-11 5 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 소스는 다음과 같습니다 당신과 함께 플로트를 사용할 필요가

<!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 reader (hh.exe)가 IE8 렌더링 모드를 사용하도록 레지스트리 해킹을해야한다는 것을 알려주고 그렇지 않으면 hh.exe는 대부분 IE7에서 사용합니다.

레지스트리 해킹 : 다음 코드를 .reg 파일로 저장 한 다음 두 번 클릭하여 레지스트리로 가져옵니다.

REGEDIT4 

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

확인. 적어도 IE8 M $ 시스템을위한 해결책이 있습니다.

이 질문은 "\ 9 왼쪽"에서 \ 9 의미합니까 무엇 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

관련이있다, 제발? –

+0

그리고 "inline-block"대신에 "inline-block"을 사용하고 있습니다. –

+0

\ 9는 IE에 사용되는 해킹입니다. 이 코드 줄은 CSS 뒤에 추가되며 IE에만 ​​적용되며 다른 브라우저에는 영향을 미치지 않습니다. 인라인 블록이 코드에 포함되어 있어도 문제가되지 않습니다. 어쨌든 인라인 블록은 IE에서 작동하지 않으므로 다른 브라우저에도 적용됩니다. – LegendaryAks