2010-08-18 158 views
7

我們正在創建一個同時使用日語和英語的網站。我們希望擺脫不能使用ClearType的默認日文字體。有沒有辦法告訴瀏覽器在同一頁面上爲日文字符(如Meiryo)使用不同的日文字體JUST和另一種僅用於拉丁字符的字體(如Helvetica)?我們不希望任何英文單詞使用Meiryo字體。用CSS爲拉丁文字符和日文字符使用不同的字體

實際上,我們使用的尖端首先在從這篇文章的CSS指定英文字體:http://www.lukew.com/ff/entry.asp?118

然而,這並不在IE瀏覽器。即使我們首先指定了Helvetica,Verdana或任何其他廣泛可用的字體,然後指定了CSS中的日文字體,但IE仍將使用日文字體作爲英文單詞。 Firefox,Chrome等按預期工作。

(如果可能的話,我們希望不要訴諸類似的跨度包裝的每個英文單詞)

回答

0

你如何告訴頁面用什麼語言來打印屏幕?

如果你正在得到一個變量,你不能使用這個變量作爲你用於身體div的類。

<body class="english"> 

<body class="japanese"> 
5

你不能避開標誌着一類和字體的每一種語言部分,如果你想要這個工作的跨瀏覽器。它不能只用CSS來完成。

您可以手動或自動應用語言課程。手動可能需要很多工作來支持和維護,但是很強大。動態地,可以使用後端腳本或Javascript,通過掃描字符串來查找某些unicode字符塊中的字符,並相應地應用語言類。

你可以在這裏找到塊定義(日語平假名和片假名):http://www.fileformat.info/info/unicode/block/index.htm

我建議這樣做的後端的方式,因爲頁面上改變字體可能會導致屏幕閃爍或轉移頁面加載期間的元素。

+2

平假名和片假名只音節的字符集,你離開了所有的漢字(中日韓字符)。 – 2010-09-24 13:23:12

3

爲英文和日文文本創建css類。

.ja { font-family: meiryo, sans-serif; } 
.en { font-family: arial, verdana, sans-serif; } 

如果整個頁面是日語,加上類=「JA」身體標記,如果有混合的內容,添加class =「JA」到包含日語文本,例如HTML元素:

<td class="ja">日本語</td> 
+1

我相信這是它可以完成的唯一方式,以及它在這個日文/英文網站http://www.jlptstudy.com/N5/ – PandaWood 2010-12-23 04:01:17

+0

的大部分頁面上完成的方式***提示:*** HTML具有'lang'通用屬性,CSS有一個選擇器:[使用lang屬性(w3.org;多種語言)的樣式](https://www.w3.org/International/questions/qa-css-郎) – hakre 2014-03-16 13:46:09

2

我已經使用'unicode-range'CSS屬性解決了我的問題。

你可以在這裏找到細節: https://developer.mozilla.org/en/docs/Web/CSS/@font-face/unicode-range

例子:

/* bengali */ 
 
@font-face { 
 
    font-family: 'Atma'; 
 
    font-style: normal; 
 
    font-weight: 400; 
 
    src: url(https://fonts.gstatic.com/s/atma/v2/tUcVDHNCVY7oFp6g2zLOiQ.woff2) format('woff2'); 
 
    unicode-range: u+0980-09FF; 
 
} 
 

 

 
body { 
 
    font-family: 'Atma', arial, sans-serif; 
 
    font-size: 18px; 
 
}
<p>Example is better than precept.</p> 
 
<p>উপদেশের চেয়ে দৃষ্টান্ত ভালো।</p>