js获取有效样式
 
节点.currentStyle["属性名"]        兼容ie方法(只有ie有效)
getcomputedStyle(节点)["属性名"]                兼容火狐、谷歌(谷歌火狐有效)
 
总结:既封装的函数为
 
    function getStyle(node, styleType){
        return node.currentStyle? node.currentStyle[styleType]: getComputedStyle(node)[styleType];//浏览器中有node.currentStyle方法就用,没有就用另一个
    }
 
通过节点属性只能获取行间样式,但是有些样式是  外联样式和内联样式    这时候怎么获取呢?
 
示例内联css样式:
        <style>
#div1{height: 200px; font-size: 9pt;">
    </style>
 
示例html结构:
    <body>
<div id = 'div1' style = "width: 100px;"></div>
</body>
 
   问题描述
             /*
                    只能访问行间样式
                 */
                /*alert(oDiv.style.width); // 100px;
                alert(oDiv.style.height); //        弹出的内容为空字符串 空白 (不报错)
 
*/
 
                /*
                    如何获取当前有效样式?
 
                 */
                
                // alert(oDiv.currentStyle["height"]); //IE兼容 ie下结果  200px
                // alert(getComputedStyle(oDiv)["height"]); //火狐 谷歌兼容  火狐谷歌下 结果 200px;
                
 
既然有兼容性问题,那么我们自己封装一个没有兼容性的函数
 
代码示例:
 
 
<head>
<meta charset="UTF-8">
<title>获取当前有效样式</title>
<style>
#div1 {
height: 200px;
background-color: red;
} </style>
<script>
window.onload = function (){
var oDiv = document.getElementById('div1');
// alert(oDiv.currentStyle['height']);//ie兼容 结果:200px
//alert(getComputedStyle(oDiv)['height']) // 结果: 200px; 火狐、谷歌下 /*--------封装一个可以获取当前有效样式切不用考虑兼容问题的函数---------*/ //分析
//alert(oDiv.currentStyle);//undefined //ie的方法在火狐或谷歌里没有这个方法,系统定义为undefined
//alert(Boolean(oDiv.currentStyle)); //undefined 强制转换为布尔值为false 谷歌火狐中测试
//所以可以这样封装一个函数 浏览器兼容写法 function getStyle(node, styleType){
return node.currentStyle? node.currentStyle[styleType]: getComputedStyle(node)[styleType];
}
/*------函数封装完毕--------*/ /*-------调用测试--------*/ alert(getStyle(oDiv, 'height'));// 200px }
</script>
</head>
<body>
<div id = "div1" style="width: 100px;">我是div</div>
</body>
 
 
总结:既封装的函数为
 
    function getStyle(node, styleType){
return node.currentStyle? node.currentStyle[styleType]: getComputedStyle(node)[styleType];//浏览器中有node.currentStyle方法就用,没有就用另一个
}

js获取当前有效样式的更多相关文章

  1. JS获取内联样式

    JS获取内联样式 //获取内联样式 function getCss(obj,attr){//obj:对象,name:style属性 if(obj.currentStyle) { return obj. ...

  2. JS获取非行间样式

    我们都知道用offset函数获取元素样式是一件很方便的事,但是offset只能获取行间样式,而无法获得非行间样式,这是它的瓶颈所在. 我们都知道js获取行间样式的方法,那么js是如何获取行距样式的呢? ...

  3. 通过js获取外部css样式

    通过js获取外部样式表中的属性,比如.box在style.css样式表中有个属性叫font-size:16px; 通过js获取.box的这个属性: js代码为: <script> wind ...

  4. 原生js获取元素的样式信息

    工作中经常会需要获取DOM元素的样式,之前都是通过jquery的css()方法,现在总结一下通过原生js获取元素样式的方法. obj.style js var _width = obj.style.w ...

  5. js获取非行内样式

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. js获取非行间样式/定义样式

    <!--DOCTYPE html--> <html> <head> <meta charset="utf-8" /> <sty ...

  7. JS获取非行间样式及兼容问题

    获取非行间样式: <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  8. js获取非行间样式或定义样式

    <!--DOCTYPE html--> <html> <head> <meta charset="utf-8" /> <sty ...

  9. js获取非行间样式/写入样式(行间)

    <!--DOCTYPE html--> <html> <head> <meta charset="utf-8" /> <sty ...

随机推荐

  1. 个股与指数的回归分析(自带python ols 参数解读)

    sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&a ...

  2. Linux下网卡绑定模式

    Linux bonding驱动一共提供了7种模式,它们分别是:balance-rr .active-backup.balance-xor.broadcast.802.3ad.balance-tlb.b ...

  3. C#网络编程之进程管理

    这里是视频讲解地址: 这里是代码: using System; using System.Collections.Generic; using System.Linq; using System.Ne ...

  4. 学习windows编程 day3 之 设置当前的背景颜色

    LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRU ...

  5. Dapper总结(二)---事务和存储过程

    一  dapper使用事务 string sql1 = "insert into UserInfo values('user8',27,'s')"; string sql2 = & ...

  6. 在O(n) 时间复杂度,O(1)空间复杂度内反转单链表

    在LeetCode中看到判断回文的程序:https://leetcode.com/problems/palindrome-linked-list/ 里面用单链表来存储数据,先反转前半部分的单链表,然后 ...

  7. JavaScript常用函数总结

    1.test()方法 var str = "wzltestreg"; var reg = new RegExp("wzl", ""); al ...

  8. DotNetBar 控件设置空内容时显示内容

    可以通过修改所有关于Watermark时的设置.

  9. Linux TCP 连接数

    查看 TCP 连接数 : 每一个 IP 访问的链接数:head 默认 前10 netstat -na|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print ...

  10. Python人工智能之路 - 第四篇 : jieba gensim 最好别分家之最简单的相似度实现

    简单的问答已经实现了,那么问题也跟着出现了,我不能确定问题一定是"你叫什么名字",也有可能是"你是谁","你叫啥"之类的,这就引出了人工智能 ...