JavaScript Style Attribute Discrepancy
Q: Why does element.style consistently return an empty value when display is defined in CSS, even though the element inherits the style?
A: The element.style property retrieves inline styles applied directly to an element in the HTML document. Styles defined in CSS are not considered inline, and thus, element.style will not reflect them.
The Computed Style:
JavaScript provides the window.getComputedStyle() function to obtain the actual effective style applied to an element. This function takes an element as input and returns a ComputedStyle object containing the computed values for all CSS properties.
Example:
Consider the following code:
<div>
#test { display: block; }
Accessing document.getElementById('test').style.display will return an empty string, while window.getComputedStyle(document.getElementById('test')).display will correctly return "block".
Conclusion:
To obtain the applied CSS styles for an element, it is necessary to use window.getComputedStyle(). Using element.style only retrieves inline styles, which are not typically set for elements with external CSS.
The above is the detailed content of Why does `element.style` return an empty value for styles defined in CSS?. For more information, please follow other related articles on the PHP Chinese website!