2013-06-11 43 views
5

Trên Windows 7 với IE8, tôi tìm thấy display: inline-block hoạt động khá tốt. Tuy nhiên, sau khi tôi biên dịch tệp html thành chm, trang bên trong chm không hiển thị tốt, như thể inline-block không có hiệu lực.Tại sao trang hiển thị khác nhau trong IE8 và trong chm (CSS "display: inline-block")

Có cách nào để hiển thị chm giống như trong IE8 không? Cảm ơn bạn.

enter image description here

nguồn html của tôi là:

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

Trả lời

2

Tôi tìm thấy câu trả lời cuối cùng. A post at west-wind.com cho tôi biết rằng tôi cần thực hiện đăng ký hack để có trình đọc CHM (hh.exe) sử dụng chế độ hiển thị IE8, nếu không, hh.exe sẽ sử dụng nhiều nhất IE7.

Đăng ký hack là: Lưu mã sau vào tệp .reg, sau đó nhấp đúp để nhập vào đăng ký.

REGEDIT4 

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

OK. Ít nhất có một giải pháp cho hệ thống IE8 M $.

Câu hỏi này có liên quan đến Will the IE9 WebBrowser Control Support all of IE9's features, including SVG?

+0

Lời cảnh báo với hack này: Thay đổi là toàn cầu, nghĩa là tất cả nội dung CHM sẽ hiển thị bằng cách sử dụng phiên bản IE cập nhật. Điều này có thể gây ra sự cố cho các tệp trợ giúp (cũ) khác mà mong đợi IE 7 được sử dụng. Cá nhân tôi đã không có bất kỳ vấn đề, nhưng nó là tốt để giữ cho rằng trong tâm trí trước khi bạn thay đổi một thiết lập toàn cầu trên máy của người dân. –

0

Thay vì Inline-block cho bạn phải sử dụng float: left; cho IE8 vì nó không hỗ trợ thuộc tính của khối nội tuyến;

Vì vậy, đây là những gì bạn sẽ phải thêm vào mã của mình.

#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

Điều gì \ 9 trong "trái \ 9" nghĩa là, vui lòng? –

+0

Và mã của bạn vẫn đang sử dụng '' inline-block'', trái với ý kiến ​​của bạn về "thay vì inline-block". –

+0

\ 9 là một hack được sử dụng cho IE. Dòng mã này được thêm sau khi css của bạn sẽ chỉ áp dụng cho IE và sẽ không ảnh hưởng đến các trình duyệt khác. Chặn nội tuyến nằm trong mã không quan trọng vì điều đó sẽ áp dụng cho trình duyệt khác như anyways Inline-block sẽ không hoạt động trong IE. – LegendaryAks

Các vấn đề liên quan