Accessing the Rendered Font in the Absence of CSS Definitions
While inspecting the properties of an HTML element, it may be apparent that vital information like font-face and font-size is missing when using JavaScript's object.style attribute. This is because the element's style is inherited from the web page's CSS, and until those properties are explicitly defined, the object.style attribute remains empty.
However, it is still possible to retrieve the actual rendered font information using the getComputedStyle method. Here's a JavaScript function that accomplishes this:
function css(element, property) { return window.getComputedStyle(element, null).getPropertyValue(property); }
To utilize this function, simply pass in the element you wish to inspect and the property you want to retrieve, such as 'font-size'. For example:
css(object, 'font-size'); // Returns '16px' or similar
It's important to note that this method is not supported in Internet Explorer 8.
Live Demo:
Click here to view a live demonstration on JSFiddle: http://jsfiddle.net/4mxzE/
Code Snippet:
// Retrieve the computed style information console.log( getComputedStyle(document.getElementById('test'), null) .getPropertyValue('font') ); // Define a custom CSS style for the element document.getElementById('test').style.cssText = 'font-family: fantasy, cursive;'; // Append an HTML element to the document document.body.appendChild(document.getElementById('test'));
#test { /* Custom font-face applied */ }
<!-- Element with rendered font --> <div>
The above is the detailed content of How Can I Access Rendered Font Information in JavaScript When CSS Definitions Are Absent?. For more information, please follow other related articles on the PHP Chinese website!