获取设置的元素CSS属性(宽度/高度)值(百分比/ em / px / etc)
怎样获得用CSS规则设置的元素CSS属性(例如width / height)(以百分比设置)(例如,百分比/ em / px)?(在Google Chrome浏览器中,最好是无框架的)。
using getComputedStyle返回当前值(以像素为单位),css()jQuery中也是如此。
例如:
<div class="b">first</div><div id="a" class="a">second</div>
<style>
div { width: 100px; }
x, div#a { width: 50%; }
.a { width: 75%; }
</style>
div在此示例中迭代所有元素时,我希望能够获得第二个divs的宽度50%(和第一个的100px)。
Chrome元素检查器可以按设置显示CSS属性值,因此应该可以在Chrome中使用。
Chrome元素检查器显示设置时的属性值
并非所链接问题的精确重复项,因为接受的答案存在一个简单的技巧,无论设置哪种宽度,都会产生百分比宽度。而对于其余部分,您必须知道用于制定活动规则的选择器?怎么会知道呢?
回答:
快速阅读本文档,似乎该规范的目标可能是简化从javascript访问CSSOM值的过程。
对于我们来说,这真正重要的部分是我们将拥有一个CSSUnitValue API,该API能够将CSS值解析为以下形式的对象:
{ value: 100,
unit: "percent", // | "px" | "em" ...
type: "percent" // | "length"
}
并将一个computedStyleMap()方法添加到Element接口,从中我们将能够获取实际应用于元素的值。
截至今天,只有Chrome才实现(自66起)。
(() => { if (!Element.prototype.computedStyleMap) {
console.error("Your browser doesn't support CSS Typed OM");
return;
}
document.querySelectorAll('.test')
.forEach((elem) => {
let styleMap = elem.computedStyleMap();
const unitvalue = styleMap.get('width');
console.log(elem, {
type: unitvalue.type(),
unit: unitvalue.unit,
value: unitvalue.value
});
});
/* outputs
<div class="b test">first</div> {
"type": {
"length": 1
},
"unit": "px",
"value": 100
}
<div id="a" class="a test">second</div> {
"type": {
"percent": 1
},
"unit": "percent",
"value": 50
}
*/
})();
div.test { width: 100px; }
x,div#a { width: 50%; }
.a { width: 75%; }
<div class="b test">first</div>
<div id="a" class="a test">second</div>
以上是 获取设置的元素CSS属性(宽度/高度)值(百分比/ em / px / etc) 的全部内容, 来源链接: utcz.com/qa/421985.html