Некоторые шрифты не поддерживают CSS курсивом или полужирным шрифтом (например, Zapfino не поддерживает курсив, так как он уже выглядит довольно scripty-look). Я хочу определить, когда стиль шрифта не поддерживается, поэтому я могу отключить кнопки стилизации в редакторе.
Я пробовал что-то как это:
that.checkFontData = function( fontList )
{ var test = $("<span style='font-size:24px;absolute;visibility:hidden;height:auto;width:auto;white-space:nowrap;'>abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12345678910</span>");
$('body').append( test );
for (var i= 0, iMax = fontList.length; i < iMax; ++i)
{ test.css( 'fontFamily', fontList[i] );
var normalWidth = test.outerWidth( true );
var normalHeight = test.outerHeight( true );
test.css( 'fontStyle', 'italic' );
var italicWidth = test.outerWidth( true );
var italicHeight = test.outerHeight( true );
test.css( 'fontStyle', 'normal' );
test.css( 'fontWeight', 'bold' );
var boldWidth = test.outerWidth( true );
var boldHeight = test.outerHeight( true );
console.log( fontList[i] + ", normal: " + normalWidth + ", bold: " + boldWidth + ", italic: " + italicWidth );
}
test.remove( );
};
но он не работает... многие шрифты, которые предоставляют курсив или полужирный, сообщают о том же ширине.
Далее, я решил обнаружить это с помощью элемента canvas, но, увы, firefox даже не делает курсивный текст в холсте, так что это означает, что эта идея.
Что бы вы предложили?