Is it possible to retrieve the assigned font of an element in jQuery?
Let's say there is css:
#element
{
font-family: blahblah,Arial;
}
In the above example, Arial font will be assigned to #element. Is there a way to get that information via JS/JQuery?
Something like:
$('#element').css('font-family');
returns just blahblah,Arial;
(function($) {
$.fn.detectFont = function() {
var fonts = $(this).css('font-family').split(",");
if ( fonts.length == 1 )
return fonts[0];
var element = $(this);
var detectedFont = null;
fonts.forEach( function( font ) {
var clone = element.clone().css({'visibility': 'hidden', 'font-family': font}).appendTo('body');
if ( element.width() == clone.width() )
detectedFont = font;
clone.remove();
});
return detectedFont;
}
})(jQuery);
edit: had to remove the cloned item from the dom.
Whipped this up just now, again, it still relies on element width - so your mileage may vary.
$('#element').detectFont(); //outputs Arial
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With