10

私は何時間も探していて、友達に尋ねましたが、うまくいきませんでした. ですから、皆さんが私を助けてくれることを願っています。私の Web サイトはカスタム フォントを使用していますが、IE(10) はそれをサポートしていません。他の方法をサポートしているとは思いません。これが私のものです:

    @font-face { font-family: shardee; src:url('fonts/Shardee.ttf'); }

Internet Explorer でカスタム フォントを使用する必要はありませんが、あると便利です。

Internet Explorer がフォントを認識しない場合、既定のフォントを使用していました。しかし問題は、カスタム フォントのフォント サイズは完璧ですが、Internet Explorer のデフォルト フォントでは大きすぎることです。IE 固有の css コードで修正しようとしましたが、まったく機能しません。Interner Explorer に次の css コードを使用しています。

    <!--[if IE]>
      <style>
          #menu ul li{ font-size:15px; }
      </style>
    <![endif]-->

次のような外部スタイルシートでも試してみました。

    <!--[if IE]>
      <link rel="stylesheet" type="text/css" href="<?php echo get_stylesheet_directory_uri() ?>/style/ie.css" />
    <![endif]-->

PHP で使用する関数は、Web サイトのパスに移動する wordpress 関数です。ワードプレスを使用していない場合は、そのコードを忘れて空白のままにしておくことができます。

問題はパスではなく、正しいパスです。ブラウザでソース コードを調べたところ、ie.css にあるコードが表示されました。ie.css のコードは上記とまったく同じですが、タグがありません。

皆さんがこの問題で私を助けてくれることを願っています。私の知る限り、2つの解決策が可能です。ie 固有の css を機能させるか、IE でカスタム フォントを作成する方法を教えてください。Internet Explorer バージョン 10 を使用しています。

サイトはこちらで見れますが、一度修正したらサブドメインに入れる必要がないので消えてしまいます。

よろしく、 バート・ローロフス

4

6 に答える 6

18

複数のフォント形式

幅広いブラウザをサポートするには、フォントのバージョンを使用し.ttf, .woffてください。.eot

@font-face {
    font-family: 'shardee';
    src: url('fonts/Shardee.eot');
    src: url('fonts/Shardee.eot?#iefix')
             format('embedded-opentype'),
         url('fonts/Shardee.woff') format('woff'),
         url('fonts/Shardee.ttf') format('truetype');
}

Font Squirrelなどのフォント変換 Web サイトを使用して、.ttfフォントを.woffおよびに変換できます.eot

DRM誤検知

@Jukka が指摘したように、TTF ファイルには法的な問題があり、Windows での使用を妨げています。IE 開発者コンソールに、次のエラー メッセージが表示されます。

CSS3114: @font-face failed OpenType embedding permission check.
Permission must be Installable.

Shardeeは、ライセンス タイプが不明な放棄されたフォントのようです。このフォントを使用することは合法かもしれませんが、Windows では、すべての TTF ファイルに DRM 情報があり、Web ページへの埋め込みが合法であることを明示する必要があるようです。IE のエラーは、誤検出である可能性が最も高いです。

これをテストするために、Web サイトでの使用が合法的に認可されていることが知られている TTF フォントを使用しました。DRM エラーのため、TTF バージョンは IE で動作しませんでした。この例は間違いなく偽陽性です。これが、複数のフォント形式を使用する必要がある理由の 1 つであり、TTF のような単一の形式がすべてのブラウザーで機能しない理由の 1 つです。

Windows では IE が TTF ファイルを使用することを許可していませんが、IE は WOFF または EOT バージョンを引き続き使用できます。上記の@font-faceルールを 3 つのフォント形式すべてを使用してローカル Web サーバーでテストしたところ、Shardee フォントはすべてのバージョンの IE で正しくレンダリングされました (ただし、IE 開発者コンソールにエラー メッセージが表示されました)。

試す手順:

  1. .ttfファイルを.woffおよびに変換します。.eot
  2. .woffおよび.eotファイルを既存のファイルと同じディレクトリにアップロードし.ttfます。
  3. @font-faceルールを上記のものに置き換えます。最初のバージョンでいくつかのタイプミスを修正しました。

それでも問題が解決しない場合は、Web サーバーの設定に問題がある可能性があります。関連する質問: IE9 がクロスオリジン Web フォントのダウンロードをブロックする

于 2013-04-01T13:17:17.420 に答える
3

IE11:開発ツールでエラー コードが表示される 場合CSS3114は、フォント ファイルの最初のビットを変更する必要があります。これにより、IE がフォントをインストールできるようになります。

Npm モジュール: npm モジュール を使用できttembed-jsます。これにより、変更が行われます。 https://www.npmjs.com/package/tembed-js

使用法: ttembed-js path/to/Shardee.ttf

于 2016-09-15T20:53:37.563 に答える
2

したがって、問題は明らかに、IE 10 では、 の要素内のメニューがid=menu、宣言されたフォント「shardee」ではなく、ブラウザのデフォルト フォントで表示されることです。これにより、実際にメニューが読みやすくなります。ただし、技術的には、説明は開発者ツール (F12 キーを押して入力) のコンソール ウィンドウで確認できます。コード CSS3114 のエラー メッセージは、@font-face埋め込みの使用権のチェックに合格しなかったことを示しています。

フォントの使用権を確認し、可能な場合は著作権者 (Bright Ideas と推定される) に連絡して権利を取得してください。

于 2013-04-01T13:44:49.000 に答える