欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

js如何获取元素的宽度(js通过class获取元素的方法)

程序员文章站 2022-03-02 09:30:24
上一篇讲了两种获取样式的方式。1. 通过直接访问style对象2. 通过方法getattribute这两种方法都没法获取用户代理或者样式表设置的样式值。今天我来讲一种跨浏览器的方式来获取所有的与dom...

上一篇讲了两种获取样式的方式。

1. 通过直接访问style对象

2. 通过方法getattribute

这两种方法都没法获取用户代理或者样式表设置的样式值。今天我来讲一种跨浏览器的方式来获取所有的与dom相关的样式值。

一. 跨浏览器方法

js如何获取元素的宽度(js通过class获取元素的方法)

currentstyle对象是一个特定于ie的对象。它包含了一个元素的所有支持的和可用的css属性的一个集合。它期待骆驼表示 格式的一个值 。

比如:fontfamily而不是font-family

所以,这里,如果是支持这个对象的浏览器调用的话,就使用cssprop。

从代码中,可以看出,其它浏览器,使用的是window.getcomputedstyle方法。该方法也可以通过
document.defalutview.getcomputedstyle来访问。这个方法接受两个参数,元素和一个伪元素,后者通常为空(或者一个空字符串””)。

二. 获取属性的优先级

竟然是能获取所有与dom相关的样式属性,那必然有一个优先级的问题。

<style>
 #elem{font-size:23px;}
</style>
<input id ="elem" style="font-size:18px;"/>
elem.style.fontsize = '12px';
console.log(getstyle(elem, "fontsize", "font-size"))
// 输出12px

当在几处同时设置一个属性时,getstyle方法获取永远是那个起使用的,这一点要高度关注。

getstyle取值的优先级是:

1. 动态设置的

2. 内联设置的

3. 样式表设置的

4. 浏览器默认设置的