2011-09-21 32 views
12

Tôi đang lập trình CSS của một trang web và nhận ra rằng Internet Explorer 9 đang hiển thị kích thước phông chữ khác nhau liên quan đến các trình duyệt khác (Firefox, Chrome, Safari, IE7 và IE8).Tại sao IE9/Firefox lại hiển thị kích thước phông chữ khác nhau liên quan đến các trình duyệt khác?

Tôi đã thử sử dụng một số RESETS và tôi chỉ định phông chữ trong px, nhưng IE9 vẫn hiển thị sự khác biệt về kích thước phông chữ.

Tôi đã thử sử dụng font-size trong pt, in, tỷ lệ phần trăm, nhưng không thành công.

Tôi đã thay đổi phông chữ trước đó (Georgia, Times New Roman, Verdana). Một số trong số chúng được hiển thị lớn hơn, số khác lại nhỏ hơn trong IE9.

Tôi đã kiểm tra cài đặt thu phóng và kích thước văn bản trong IE. Họ là 100% và trung bình tương ứng.

Để minh họa, tôi đã tạo HTML và CSS đơn giản vì bạn có thể xem mã bên dưới. Làm thế nào để giải quyết vấn đề này? Cảm ơn!

Vấn đề:

Code:

HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <link rel="stylesheet" type="text/css" href="style.css" /> 
    <title>Untitled Document</title> 
</head> 
<body> 
    <p> 
    AAAAA BBBBB CCCCC DDDDD EEEEE FFFFF GGGGG HHHHH IIIII JJJJJ KKKKK LLLLL MMMMM NNNNNN OOOOO PPPPP QQQQQ 
    </p> 
</body> 
</html> 

CSS

/* RESET */ 

html, body, div, span, applet, object, iframe, 
h1, h2, h3, h4, h5, h6, p, blockquote, pre, 
a, abbr, acronym, address, big, cite, code, 
del, dfn, em, img, ins, kbd, q, s, samp, 
small, strike, strong, sub, sup, tt, var, 
b, u, i, center, 
dl, dt, dd, ol, ul, li, 
fieldset, form, label, legend, 
table, caption, tbody, tfoot, thead, tr, th, td, 
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary, 
time, mark, audio, video { 
    margin: 0; 
    padding: 0; 
    border: 0; 
    font-size: 100%; 
    font: inherit; 
    vertical-align: baseline; 
} 
/* HTML5 display-role reset for older browsers */ 
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section { 
    display: block; 
} 
body { 
    line-height: 1; 
} 
ol, ul { 
    list-style: none; 
} 
blockquote, q { 
    quotes: none; 
} 
blockquote:before, blockquote:after, 
q:before, q:after { 
    content: ''; 
    content: none; 
} 
table { 
    border-collapse: collapse; 
    border-spacing: 0; 
} 

/* END OF RESET */ 

body { 
    background-image:url(GreenLine.png); 
    background-repeat:no-repeat; 
    font-family:"Courier New", Courier, monospace; 
    font-size:12px; 
} 
+0

Chú ý các sọc màu đỏ trong các trình duyệt không có nghĩa là - http://ie.microsoft.com/testdrive/ - các lỗi này do sự khác biệt về hiển thị phông chữ (và làm trầm trọng thêm bởi nền đỏ, khiến các trình duyệt đó trông lỗi) – c69

+0

Bạn có thể làm tốt hơn với câu hỏi này trên một trang web có định hướng thiết kế hơn như doctype.com, vì có vẻ như nó liên quan nhiều hơn đến hiển thị phông chữ hơn CSS. – Ishmael

+0

Bạn đang kiểm tra phiên bản Firefox nào? Câu trả lời là "quan trọng". Tôi hy vọng kết xuất Firefox sẽ khớp với IE9. – thirtydot

Trả lời

-2

Hai điều có thể, cả hai chưa được kiểm tra:

  1. hãy thử thay đổi loại tài liệu được một cái gì đó khác hơn xhtml chuyển tiếp. Xem liệu loại tài liệu HTML5 có hiển thị tốt hơn không. <!DOCTYPE html>

  2. thử chỉ sử dụng font-family: monospace; để xem đó có phải là vấn đề về phông chữ hay không.

EDIT

Nếu những không có tác dụng bạn không thể tìm thấy một giải pháp, bạn có thể muốn để phục vụ IE9 một khác nhau font-size bằng các comment có điều kiện.

+0

Tôi đã thay đổi DOCTYPE và họ phông chữ thành monospace và sự cố vẫn tiếp diễn. Tôi đã thay đổi phông chữ trước đó (Georgia, Times New Romam, Verdana). Một số trong số chúng được hiển thị lớn hơn, số khác lại nhỏ hơn trong IE9. PS: Tôi đã kiểm tra cài đặt thu phóng và kích thước văn bản trong IE. Họ là 100% và trung bình tương ứng. Cảm ơn. – bbastos

+0

Hmm @BrunoBastos ... không chắc chắn. Xem chỉnh sửa của tôi ở trên. –

7

IE9 sử dụng DirectWrite để hiển thị văn bản và các trình duyệt khác không (trừ Firefox 4+).

Đó là lý do cho kích thước hơi khác nhau của văn bản giữa hai trình duyệt.

Không có cách nào để làm cho văn bản có cùng kích thước.

đọc này: http://www.basschouten.com/blog1.php/font-rendering-gdi-versus-directwrite

Và đây, đặc biệt các "Hinting và khoảng cách khác biệt" phần: http://blog.mozilla.com/nattokirai/2011/08/11/directwrite-text-rendering-in-firefox-6/

-1

Cố gắng thiết lập các body{font-size:medium; line-height:1em;} nơi font-size sẽ được 16px bây giờ và sử dụng phần trăm trên p thẻ để tăng hoặc giảm số font-size. Để đảm bảo giới hạn chiều rộng của thẻ p.

P{max-width:40%; font-size:86%; line-height:1.2em;} 
+0

Hãy cẩn thận, tôi đã chỉnh sửa hai lỗi chính tả trong một dòng mã của bạn. Đáp StackOverflow câu trả lời nên bao gồm mã làm việc, không phải là một trong đó là nhận được những người khác vào rắc rối mới. –

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