获取非行内样式操作

1、 window.getComputedStyle(dom元素).属性
注意:在IE中,只有在ie9及以上才能获取
写法: var style = window.getComputedStyle(dom元素).height;

2、dom元素.currentStyle.属性
注意:只有在ie8及以下才能获取样式,在其他浏览器会报错
写法:var style = dom元素.currentStyle.height

    // 获取非行内的样式// getComputedStyle(dom元素).属性 只有在ie9及以上才能获取// var style = window.getComputedStyle(box).height;// 只有在ie8及以下才能获取样式,在其他浏览器会报错// var style = box.currentStyle.height

说明

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div {height: 500px;}</style>
</head><body><div style="width:200px"></div><ul id="list"></ul><script>var box = document.querySelector('div');var styW = box.style.width;var styH = box.style.height;// box.style 只能获取 行内样式// console.log(styW);// console.log(styH);// 获取非行内的样式// getComputedStyle(dom元素).属性 只有在ie9及以上才能获取// var style = window.getComputedStyle(box).height;// 只有在ie8及以下才能获取样式,在其他浏览器会报错// var style = box.currentStyle.height// 获取样式的兼容写法var style;//先判断 if条件在ie8浏览器中 没有 window.getComputedStyle(box) 会报错// if (window.getComputedStyle(box)) {//     style = window.getComputedStyle(box).height;// } else {//     console.log(1);//     style = box.currentStyle.height;// }// console.log(box.currentStyle);// box.currentStyle 在高版本的浏览 不会报错,返回一个undefined// 写兼容获取样式的时候 直接使用  box.currentStyle// if (box.currentStyle) {//     style = box.currentStyle.height;// } else {//     style = window.getComputedStyle(box).height;// }// console.log(style);// 封装一个函数 来获取非行内样式function getStyle(ele, attr) {var style;if (ele.currentStyle) {//  ele.currentStyle 包含 所有css样式的对象// obj.attr 获取 obj的 attr的属性style = ele.currentStyle[attr];} else {style = window.getComputedStyle(ele)[attr];}console.log(style);}getStyle(box, 'width')</script>
</body></html>

封装一个函数 来获取非行内样式

// 封装一个函数 来获取非行内样式
function getStyle(ele, attr) {var style;if (ele.currentStyle) {//  ele.currentStyle 包含 所有css样式的对象// obj.attr 获取 obj的 attr的属性style = ele.currentStyle[attr];} else {style = window.getComputedStyle(ele)[attr];}// 把获取的样式返回return style
}

测试封装函数(不同浏览器下)

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box {width: 200px;height: 200px;background: red;color: blue;font-size: 20px;}</style>
</head><body><div class="box"></div><script>var box = document.querySelector('.box');var res = getStyle(box, 'background-color');console.log(res);  //rgb(255, 0, 0)function getStyle(ele, attr) {var style;if (ele.currentStyle) {//  ele.currentStyle 包含 所有css样式的对象// obj.attr 获取 obj的 attr的属性style = ele.currentStyle[attr];} else {style = window.getComputedStyle(ele)[attr];}// 把获取的样式返回return style}</script>
</body></html>

封装获取非行内样式函数相关推荐

  1. JS一起学05:Date对象、封闭空间、函数传参和封装、获取非行间样式、字符串操作

    一.Date对象 1. 获取 oDate.getFullYear() 获取年份 oDate.getMonth()+1  获取月份 0-11----->1-12 oDate.getDate() 获 ...

  2. JS(函数返回值、获取非行间样式、函数封装、函数复用、定时器)

    // 函数返回值 // 什么时候需要用:函数外想要使用内部的数据的时候 // 语法: return 返回值 // 1.返回回函数里的值 function fun1 (){ var a = 1; ret ...

  3. 非行间样式 函数封装 代码复用 定时器

    1.获取行间样式 标签.style.样式名 如果样式名是-链接 使用驼峰命名 例如font-size fontSize ==标签.style.样式名 只能获取行间样式== 2.获取非行间样式和行间样式 ...

  4. js获取行内以及非行内样式

    如何取到非行内样式属性的属性值 //现代浏览器 getComputedStyle(domobj,null)[attr]; //低版本的一些浏览器 domobj.currentStyle[attr]; ...

  5. javascript-数据类型,json与数组,获取非行间样式

    一.javascript组成: 1.ECMAScript  解释器 2.DOM (文档对象模型:document object model)   document 3.BOM(浏览器对象模型:brow ...

  6. [js]写一个获取非行间样式的方法

    [js]写一个获取非行间样式的方法 window.getComputedStyle()?window.getComputedStyle(element).attribute:element.curre ...

  7. vue.js -- 获取dom元素的样式(非行内样式)

    在vue中获取dom元素的样式: this.$refs.menuList.style.top; 这种获取方式是只能获取到元素的行内样式的. this.$refs.menuList.getBoundin ...

  8. js获取非行间样式--有bug,忧伤

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  9. JS中的DOM操作属性、DOM创建、DOM增加、DOM修改、DOM删除以及DOM获取非行间样式

    当网页被加载时,浏览器会创建页面的文档对象模型DOM(Document Object Model),在DOM中,每个东西都是节点. DOM四大操作:查找.更新.添加.删除 通过DOM,JavaScri ...

  10. 获取非行间样式的获取

    当我们的样式写在行间的时候,JS可以通过style获取, 然而style也只能获取或操作行间样式,当我们需要获取非行间的样式时, 应该采用什么方法呢? 首先定义一个div并为他设置样式: <st ...

最新文章

  1. 苹果6怎么截屏_蓝苹果多肉怎么养,掌握这6种养殖方法
  2. Nandflash K9F1208U0B学习
  3. mysql创建表示对属性进行说明_mysql基础
  4. 新手WEB开发者易出现的30个问题(转)
  5. [pytorch、学习] - 4.5 读取和存储
  6. 优麒麟 20.04 LTS 版本发布,UKUI3.0 灵动转身
  7. Linux -- 代理服务器(Squid Server)的配置与应用2
  8. 计算机到点就有音乐怎么清除缓存垃圾,QQ音乐缓存文件在哪 QQ音乐缓存清理方法-电脑教程...
  9. 会计分录、科目、账户
  10. 淘宝HTML5版私钥泄漏
  11. iOS 微信支付和支付宝支付
  12. python画圣诞树
  13. 西安电子科技大学计算机类专业学费,西安电子科技大学学费多少
  14. 搭建SVN服务端及创建SVN账号
  15. php 如何宏定义,[PHP] PHP源码常用代码中的宏定义
  16. 电子阅览室使用云终端解决方案的重要性
  17. Zernik矩亚像素边缘检测
  18. chrome浏览器插件开发v3——storage存储的使用
  19. 算法设计与分析: 5-19 世界名画陈列馆问题
  20. 【office操作小知识点|word里取消纠错红色波浪线】

热门文章

  1. 全网搜索一个人的痕迹,爬取百度搜索结果
  2. 规划Autovue的安装
  3. 怎么设置html表格的最小宽度,HTML表格的宽度怎么设置
  4. webpack学习小项目
  5. React 在react中实现鼠标拖拽移动盒子和图片(基于Ant-Design-Pro 4实现)
  6. Windows性能监控perfmon工具的使用和性能指标的分析
  7. 简述用决策表设计测试用例的步骤_软件测试(14)--黑盒测试案例设计技术--基于决策表的测试...
  8. 新一代物联网商用全面铺开 NB-IoT擎起新智慧城市
  9. idea导入项目后简体字变繁体字
  10. java身份认证_WEB应用中的基本身份验证和表单身份验证(中文)