Home >Web Front-end >CSS Tutorial >How Can I Retrieve CSS Property Values in Their Original Units?

How Can I Retrieve CSS Property Values in Their Original Units?

Susan Sarandon
Susan SarandonOriginal
2024-12-19 18:43:10183browse

How Can I Retrieve CSS Property Values in Their Original Units?

Getting CSS Property Values In Their Original Units

When determining an element's CSS property value, developers often rely on methods like getComputedStyle or jQuery's css(). However, these methods return the value in pixels, which can be problematic if the value was originally set in other units (e.g., percentage, em, or px). This raises the question: how can we obtain the CSS property value in its original unit, regardless of what units it was set with?

The Importance of Element Styles and Ordering

The key lies in taking into account element styles and CSS selector ordering. Element styles have the highest priority, so we start by checking if the value is explicitly set in the element's style property. If it is, we retrieve the value and its priority.

Next, we examine the matched CSS rules using getMatchedCSSRules. These rules are ordered by priority (highest last), and we iterate through them backwards. If any rule has a non-null priority, we update the value. However, if a rule has an important priority, we immediately return the value.

Code Example

Consider the following HTML and CSS:

<div class="b">div 1</div>
<div>

And the following JavaScript code:

var d = document.querySelectorAll('div');

for (var i = 0; i < d.length; ++i) {
  console.log("div " + (i + 1) + ":  " + getMatchedStyle(d[i], 'width'));
}

This code outputs the following widths for the divs:

div 1:  100px
div 2:  50%
div 3:  auto
div 4:  44em

Conclusion

By considering both element styles and the ordering of matched CSS rules, this custom getMatchedStyle function accurately retrieves CSS property values in their original units. This knowledge is crucial for precisely managing element size and dimensions.

The above is the detailed content of How Can I Retrieve CSS Property Values in Their Original Units?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn