2012-05-04 13 views
42

Tôi đang gửi email có định dạng HTML theo lập trình và đặt phông chữ là Arial trong suốt (font-family: Arial;). Khi thư đến trong Outlook 2010, văn bản trong các phần tử table nằm trong Times New Roman. Văn bản trong div yếu tố là tốt trong Arial. Nếu tôi View Source, sao chép vào tệp HTML và xem trong trình duyệt, tất cả các phông chữ hoạt động như mong đợi (tất cả đều là Arial).Outlook 2010 ghi đè gia đình phông chữ từ Arial sang Times New Roman

Một số Google results cho thấy Outlook sẽ quay trở lại phông chữ mặc định của nó (Times New Roman) khi không có gì được chỉ định, nhưng đó không phải là những gì đang xảy ra ở đây.

Tại sao Outlook buộc email của tôi hiển thị trong Times New Roman khi được chỉ định khác?

Trả lời

63

Ngay cả khi bạn đặt font-family: arial thành bảng, nó vẫn không hoạt động. Bạn cần đặt cụ thể phông chữ cho mỗi td bên trong số table của mình để làm đúng.

+5

Tôi thực sự hy vọng đây không phải là câu trả lời đúng nhưng nó đã làm các trick, cổ vũ! – daddywoodland

+2

Điều này là chính xác, Outlook dường như không nhận kiểu dáng của phần tử gốc. Bạn phải tạo kiểu cho vùng chứa hiện tại hoặc văn bản hoàn nguyên về mặc định. – aaandre

+1

Tôi cho rằng 'td {font-family: arial}' không phải là ý của bạn? –

10

Các table trong câu hỏi đã được lồng trong một div rằng có font-family:Arial; trong phong cách của mình, nhưng table không có một bộ phông chữ. Vì vậy, các bảng không kế thừa phông chữ (và có lẽ những thứ khác) từ các vùng chứa của chúng trong các email HTML trong một số ứng dụng khách.

+0

Cảm ơn lời khuyên. – mattd

+3

Đủ để đặt phông chữ cho bảng. Mỗi div là ont cần thiết. Thử nghiệm trên Outlook 2010 –

2

Nếu bạn đang làm việc với Outlook 2007, bạn phải xác định họ phông chữ trên bảng. Nếu không, nó sẽ đặt phông chữ serif mặc định.

6

Vấn đề này đã xảy ra từ triển vọng năm 2007 và các giải pháp trước đó đã không làm việc cho tôi, giải pháp duy nhất mà dường như để làm việc là gói các văn bản với <font face="arial, sans-serif">My text with arial</font>

+0

Cảm ơn bạn!Tôi đã có một bảng với phông chữ được chỉ định cho mọi td và nó đã chuyển hàng đầu tiên thành Times New Roman. Thẻ phông chữ xung quanh văn bản vi phạm đã sửa nó. –

1

Các < phông chữ > thẻ bị phản đối nhưng vì Outlook 2010 là loại bỏ (hầu như tất cả) kiểu, đây là cách duy nhất nó hoạt động.

1

table.MsoNormalTable {font-size:12.0pt; font-family:"Times New Roman";} Mở HTML bằng Text Pad và đổi thành Arial.

+0

Bạn có bất kỳ nguồn nào cho thủ thuật 'MsoNormalTable' không? –

1

Không có phương pháp nào ở trên phù hợp với tôi, sử dụng phông chữ tùy chỉnh được liên kết với @ phông mặt. đã phải làm việc với các thẻ có điều kiện cho Outlook. Đã cho tôi một số thời gian để tìm ra cách chính xác. Vì vậy, tôi đã thiết lập một ví dụ mã: Tôi vẫn còn có một số khó khăn thực hiện điều này trong hoàn cảnh của tôi vì vậy tôi đã chia sẻ một ví dụ mã cho việc này: https://stackoverflow.com/a/21626196/135654

20
<!--[if mso]> 
<style> body,table tr,table td,a, span,table.MsoNormalTable { font-family:Arial, Helvetica, sans-serif !important; }</style> 
<!--<![endif]--> 
+2

Bạn đã thử cái này chưa? –

+1

Điều này làm việc hoàn hảo cho tôi trong Outlook 2013! – Sietse

1

Bạn có thể đặt phong cách của bạn để "nhịp cầu" tag , Nó sẽ hoạt động tốt.

<td> 
     <span style="font-family: "Times New Roman"></span> 
    </td> 
0

Tôi có cùng sự cố .... tất cả văn bản trong nội dung email là Arial, nhưng bảng được mặc định là từ. Tôi đã phải quấn phông chữ trong mỗi tế bào ...... tốn ​​thời gian ..