首页 >web前端 >css教程 >如何高效地检索元素最初定义的 CSS 属性值?

如何高效地检索元素最初定义的 CSS 属性值?

Patricia Arquette
Patricia Arquette原创
2024-12-16 18:03:11419浏览

How Can I Efficiently Retrieve an Element's Initially Defined CSS Property Values?

提取元素的 CSS 属性值作为 Set

当需要获取元素最初定义的 CSS 属性值时,函数 getMatchedStyle 提供了一个解决方案。该函数按照优先级降序迭代匹配的 CSS 规则,同时考虑元素样式和属性重要性。

function getMatchedStyle(elem, property){
    var val = elem.style.getPropertyValue(property);
    if(elem.style.getPropertyPriority(property))
        return val;
    var rules = getMatchedCSSRules(elem);
    for(var i = rules.length; i--;){
        var important = r.style.getPropertyPriority(property);
        if(val == null || important){
            val = r.style.getPropertyValue(property);
            if(important)
                break;
        }
    }
    return val;
}

通过考虑属性重要性和元素样式,getMatchedStyle 准确返回在样式表。

使用示例

考虑以下 HTML 和 CSS code:

<div class="b">div 1</div>
<div>
div      { width: 100px; }
.d3      { width: auto !important; }
div#b    { width: 80%; }
div#c.c  { width: 444px; }
x, div.a { width: 50%; }
.a       { width: 75%; }

执行以下 JavaScript 代码:

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

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

将输出:

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

这演示了该函数准确提取设置元素的 CSS 宽度值。

以上是如何高效地检索元素最初定义的 CSS 属性值?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn