Modernizr は、CSS3 font-face サポートを検出します。
http://modernizr.com/download/
font-face
modernizr の外部でテストのソースのみを取得するにはどうすればよいですか?
このテストに関連するファイルがリポジトリにありますが、使用方法がわかりません https://github.com/Modernizr/Modernizr/blob/master/feature-detects/css/fontface.js
Modernizr は、CSS3 font-face サポートを検出します。
http://modernizr.com/download/
font-face
modernizr の外部でテストのソースのみを取得するにはどうすればよいですか?
このテストに関連するファイルがリポジトリにありますが、使用方法がわかりません https://github.com/Modernizr/Modernizr/blob/master/feature-detects/css/fontface.js
Gulpを使用して Modernizr をカスタム ビルドします。
gulpfile.js
'use strict';
var modernizr = require('gulp-modernizr');
gulp.task('modernizr', function() {
gulp.src(path.resolve(require.resolve('modernizr'), '../../**/*.js'))
.pipe(modernizr('modernizr.js', {
tests: [
'fontface',
],
}))
.pipe(gulp.dest('app/src/js'));
});
gulp.task('default', ['modernizr']);
これを試してください:http://jsbin.com/litava/3/edit
次のコードは機能するはずです。実装を適切にテストし、それを維持しているため、Modernizr を実際に使用する必要があることをお勧めします。
// supportsFontFace released to public domain by Robocat. Thanks are also due to Modernizr and the number 9
function supportsFontFace() {
function blacklist() {
var match = /(WebKit|windows phone.+trident)\/(\d+)/i.exec(navigator.userAgent);
return match && parseInt(match[2], 10) < (match[1] == 'WebKit' ? 533 : 6);
}
function hasFontFaceSrc() {
var style = document.getElementById('fontsupporttest');
var sheet = style.sheet || style.styleSheet;
var cssText = sheet ? (sheet.cssRules && sheet.cssRules[0] ? sheet.cssRules[0].cssText : sheet.cssText || '') : '';
return /src/i.test(cssText);
}
return !blacklist() && hasFontFaceSrc();
}
そして、次のスタイルを追加します。
<style id=fontsupporttest>@font-face{font-family:"font";src:url("https://")}</style>
私はそれを書き直して著作権の問題がないようにし、少し単純化してブラックリストへの登録を控えるようにしました (523 未満の webkit はサポートされず、webos も防止され、windows phone < 8 はサポートされず、 -webkit-font-face のように接頭辞付きのフォントフェイスをサポートしていません)。
そのファイルは、Modernizr の残りの部分から切り離すのは簡単ではないようです。私の意見では、実際に行って Modernizr を使用する方がはるかに簡単です。
ダウンロード セクションで、必要なチェックのみをダウンロードするようにカスタマイズできます。そのため、font-face テストのみが必要な場合は、その部分のみをダウンロードします。
何らかの理由で Modernizr を使用したくない場合は、Paul Irish というフロントエンド開発者が@font-face 機能検出を行っています。これは、多かれ少なかれあなたが探しているものである可能性があります。それが役立つことを願っています。