JS获取样式

来源:互联网 发布:吃饭 叫号软件 编辑:程序博客网 时间:2024/06/07 10:40

我们已经知道了JavaScript如果获取一个元素的内部样式,你可以这样做:

复制代码
<div id="box" style="width:100px;height:100px;background:red"></div><script>    var oBox = document.getElementById('box');    console.log(oBox.style.width);    console.log(oBox.style.height);    console.log(oBox.style.background);</script>
复制代码

在这种情况下,获取和设置靠style属性就可以了,因为element.style属性返回的是一组类数组的一组样式属性及对应的值。因此访问具体样式的时候可以采取两种方式即“ele.style.属性名称”和“ele.style['属性名称']”。

但是要注意的是:对于css样式里的background-color,margin-top等以-相连的属性(在JavaScript中的命名规范中,-是不可用的)。对于这种情况,在使用style属性获取设置样式的时候名称要改为驼峰式,如ele.style.backgroundColor.

——

上述的方法只能用style属性获取到内联样式。

但是现在的文档基本上都遵循分离的思想,样式基本都是外部链接。所以三种方式设置样式都要考虑到:

在Dom标准里有一种全局的方法:getcomputedStyle(obj,null).paddingLeft;

但是事情还没有就这么结束:万恶的IE是不支持这种方法的,但是它提供了一种方法currentStyle,它与全局方法getComputedStyle还有所不同,它是作为Dom元素属性存在的,你可以这样使用obj.currentStyle.paddingLeft;

——

那么最终考虑到兼容性问题:我们可以让浏览器都可以获得元素的全局样式

function getDefaultStyle (obj,attribute) {  return obj.currentStyle ? obj.currentStyle[attribute] : document.defaultView.getComputedStyle(obj,false)[attribute]}

getComputedStyle的用法是这样window.getComputedStyle(obj,pseudoElt)[attr]

其中pseudoElt表示:after和:before这样的伪类,如果不用的话,设置为null就可以了,

但是在老版本的火狐中,一般只需要一个参数,这里设置为false是为了兼容老版本的火狐。

 

最后:我们在来回顾一下给元素设置样式的几种方法:

1)外联式Linking(也叫作外部样式)

2)镶入式Embedding(也叫做内页样式)

3)内联式Lnline(也叫作行内样式)

优先级: 内联式>镶入式>外联式

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 严重多囊卵巢该怎么办 被医院骗了应该怎么办 四维胎儿不配合怎么办 孕甲状腺tsh有点偏高怎么办 20岁得胃癌了怎么办 洗鼻涕耳朵堵了怎么办 胡振兴预约不上怎么办 玻尿酸打歪了怎么办 隆鼻后鼻子胀疼怎么办 鼻子做的太高了怎么办 感觉被医院骗了怎么办 中风后嘴巴歪了怎么办 孩子中风嘴歪了怎么办 胃疼怎么办简单的偏方 胃痛怎么办简单有效的方法 急用5000元怎么办又没信用卡 我真的不想活了怎么办 不想活了怎么办很累 毕业推荐表丢了怎么办 想去英国留学该怎么办 三个人跟团住宿怎么办 跟团被强制消费怎么办 苹果6s手机黑屏怎么办 胸闷喘不过气来怎么办 经常胸闷气短呼吸困难怎么办 沙漠玫瑰根软了怎么办 誉峰国际的业主怎么办 20岁头发一直掉怎么办 考研报名点满了怎么办 便池堵了怎么办最简单 在皇城老妈生病怎么办 智齿烂了很痛怎么办 苹果4id密码忘了怎么办 前海医院出院后怎么办 拔完智齿脸肿了怎么办 补牙的材料掉了怎么办 医院预约号满了怎么办 华西医院卡掉了怎么办 体检前喝了水怎么办 咳嗽咳的想吐怎么办 做b超吃饭了怎么办