2017-12-05 14 views
6

我々は現在、以下のフォント規則を使用している:特定の文字に使用する代替フォント

body { 
    font-family: Meiryo, Verdana, sans-serif; 
} 

これはうまく動作します。 Meiryoは日本語フォントなので、\のコードポイントは¥です。これにより、¥o/¯¥_(ツ)_/¯などの絵文字に問題が発生します。

Meiryoがアクティブな場合でも、@font-faceunicode-rangeを使ってVerdanaの\を使用したいと考えています。私は...正直にそれが時々やっているのか分からない

@font-face { 
    font-family: Meiryo; 
    src: local(Meiryo); 
} 
@font-face { 
    font-family: Meiryo; 
    src: local(Verdana); 
    unicode-range: U+5C; 
} 

私は、次の様々な組み合わせを試してみました。 Meiryoを使用しているように見えますが、太字のテキストはすべて間違っていて、ベースラインが変更されています。これはチェーンの高さやページの全体的なレイアウトにチェーン反応のような影響を与えます。私は事の種類を「<span style="font-family: Verdana, sans-serif;">\</span>\を置き換える」サーバー側をやったほうが良いと思いますよう

私はほとんど感じ...

は、合理的な私の試みのいずれかであるか、私は試してみてください他のものはありますか?

(function fixBackslashes() { 
    var walker = document.createTreeWalker(document.body,NodeFilter.SHOW_TEXT,null,false), 
     node, offset, span; 
    while(node = walker.nextNode()) { 
     if(node.parentNode.className == 'bs') continue; 
     if((offset = node.nodeValue.indexOf('\\')) > -1) { 
      node = node.splitText(offset); 
      node.splitText(1); 
      span = document.createElement('span'); 
      span.className = 'bs'; 
      span.style.cssText = // TODO: Move this to stylesheet 
       "display:inline-block;" + 
       "text-decoration:inherit;" + 
       "transform:scaleX(-1);"; 
      node.parentNode.replaceChild(span,node); 
      span.appendChild(document.createTextNode("/")); 
     } 
    } 
})(); 

は、基本的には、水平にミラーリングスラッシュとテキストノードにバックスラッシュを置き換えます


は、ここで私が作ってみた「の回避策」です。 「作品」という言葉の定義の一部として機能します。

+0

これはまだ問題ですか? O_o私はWindowsコードページなどのバグだと思っていましたが、適切なUnicodeコードポイントで廃止されました。 – deceze

+0

'' maybe? – zer00ne

+0

@ zer00ne No luck - レスポンスヘッダーには既に 'Content-Type:text/html; charset = utf-8'とにかく。 –

答えて

0
@font-face { 
    font-family: Meiryo; 
    src: local(Meiryo); 
    unicode-range: U+0-5B, U+5D-10FFFF; /*exclude U+5C (the backlash)*/ 
} 
body { 
    font-family: Meiryo, Verdana, sans-serif; 
} 

メイリオは今、バックラッシュの文字のグリフが欠落しているので、エンジンはMS Pゴシック、次のフォールバックフォントによって「\」レンダリングしようとします。

+0

これは私の試みと同じように見え、太字のテキストが奇妙な問題を引き起こします。 –

+0

@Nietダークアブソル、diff。あなたがあなたの場合にオプトアウトするべきmeiryoのための '\'をオプトインしているということです... – user943702

関連する問題