JavaScript的DOM_通过计算后样式来获取
虽然可以通过 style 来获取单一值的 CSS 样式,但对于复合值的样式信息,就需要通过计算样式来获取。
DOM2 级样式,window 对象下提供了 getComputedStyle()方法。接受两个参数,需要计算的样式元素,第二个伪类(:hover),如果没有没有伪类,就填 null。
这种计算样式的获取,不仅仅可以获取到没有设置的默认样式,也可以获取行内,内联和链接(因为不管你在哪里设置CSS,最终会驻留在浏览器的计算样式里)
<script type="text/javascript">
window.onload = function(){
var box = document.getElementById('box'); //获取 box
var style = window.getComputedStyle(box,null);
alert(style); //[object CSS2Properties],表示计算后的css样式
alert(style.fontSize); //结果是计算后的样式,一般表示默认样式和设置后的样式,即如果设置了样式结果是设置后的样式,如果没有设置就是默认的样式
}
</script>
</head>
<body>
<div id="box" style="color:#F00; font-size:20px;">测试Div</div>
</body>
IE 6,7,8不支持这个 DOM2 级的方法,但有个类似的属性可以使用 currentStyle 属性通过节点调用。
<script type="text/javascript">
window.onload = function(){
var box = document.getElementById('box'); //获取 box
var style = box.currentStyle;
alert(style.color);
}
</script>
</head>
<body>
<div id="box" style="color:#F00; font-size:20px;">测试Div</div>
</body>
做兼容
<script type="text/javascript">
window.onload = function(){
var box = document.getElementById('box'); //获取 box
var style = window.getComputedStyle ? window.getComputedStyle(box, null) : null || box.currentStyle;
alert(style.color); //颜色在不同的浏览器会有 rgb()格式
alert(style.fontSize);
alert(style.border); //不同浏览器不同的结果,这个属性被计算之后就不存在了,这个属性不兼容IE6,7,8 最好borderTopColor 这样每个获取
alert(style.fontFamily); //计算显示复合的样式值
alert(box.style.fontFamily); //空
}
</script>
</head>
<body>
<div id="box" style="color:#F00; font-size:20px;">测试Div</div>
</body>
JavaScript的DOM_通过计算后样式来获取的更多相关文章
- js导读,js引入,js选择器,事件,操作页面文档,计算后样式,数据类型
js导读 ''' js属于编写运行在浏览器上的脚本语言 js采用ECMAScript语法 操作BOM:浏览器对象模型 eg:浏览器上下滑动,浏览器历史记录 操作DOM:文档对象模型 ''' js引入 ...
- js事件,操作页面文档,计算后样式,数据类型
js:运行在浏览器的脚本语言 js引入 1.行间式:存在于行间事件中 <div id="div" onclick="this.style.color="r ...
- 拼图小游戏之计算后样式与CSS动画的冲突
先说结论: 前几天写了几个非常简单的移动端小游戏,其中一个拼图游戏让我郁闷了一段时间.因为要获取每张图片的位置,用`<style>`标签写的样式,直接获取计算后样式再用来交换位置,结果就悲 ...
- 探索javascript----获得节点计算后样式
节点计算后样式是一个属性与属性值的值对对象: IE: node.currentStyle; 非IE: window.getComputedStyle(node,null); 兼容方式: func ...
- JavaScript的DOM_操作行内样式
一.检测浏览器是否支持css CSS 作为(X)HTML 的辅助,可以增强页面的显示效果.但不是每个浏览器都能支持最新的 CSS 能力.CSS 的能力和 DOM 级别密切相关,所以我们有必要检测当前浏 ...
- js 计算后样式封装
function getStyle(obj,attr){ // 需要获取的元素 属性 if(obj.currentStyle){ return obj.currentStyle[attr]; }els ...
- js兼容方法:获取当前样式|计算后样式 getStyle
function getStyle(obj,attr){ if(obj.currentStyle){ //for IE return obj.currentStyle[attr]; }else{ re ...
- JavaScript获取元素CSS计算后的样式
原文链接https://www.w3ctech.com/topic/40 我们在开发过程中,有时候需要根据元素已有样式来实现一些效果,那我们应该如何通过JavaScript来获取一个元素计算后的样式值 ...
- 前端笔记之JavaScript(八)关于元素&计算后的样式
一.获取元素方法(JS选择器) 1.1概述 得到id元素的方法 document.getElementById() 得到一个元素.事实上,还有一个方法可以得到标签元素,并且得到的是多个元素: docu ...
随机推荐
- guava快速入门(一)
Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] .缓存 [caching] .原生类型支持 [primitives support] ...
- 文本框改变之onpropertychange事件
onpropertychange能够捕获每次输入值的变化. 例如:对象的value值被改变时,onpropertychange能够捕获每次改变,而onchange需要执行某个事件才可以捕获. 在文本框 ...
- 为什么要学习 UML?
UML 的首要价值是沟通和理解.好的图形可以帮助沟通设计思想,尤其是要回避许多细节时,图形也可以帮助你理解软件系统或业务流程.作为团队的成员,尝试弄清楚某些东西时,图形有助于理解和沟通整个团队所理解到 ...
- swoole框架快速入门
swoole有两个部分. 一个是PHP扩展,用C开发的,这是核心. 另一个是框架,像yii.TP.Laravel一样,是PHP代码写的. swoole扩展本身提供了web服务器功能,可以替代php-f ...
- BZOJ3529: [Sdoi2014]数表(莫比乌斯反演 树状数组)
题意 题目链接 Sol 首先不考虑\(a\)的限制 我们要求的是 \[\sum_{i = 1}^n \sum_{j = 1}^m \sigma(gcd(i, j))\] 用常规的套路可以化到这个形式 ...
- Maven学习总结(二):安装
一:Maven下载 下载地址:http://maven.apache.org/download.cgi 下载完成后,得到一个压缩包,解压,可以看到maven的组成目录 Maven目录分析 bin:含有 ...
- js图片跟随鼠标移动
<div id="wrapper"><img src="http://images.cnblogs.com/cnblogs_com/rain-null/ ...
- WiFiDog 与 AuthServer
背景 在一些公共场所(比如公交车.地跌.机场等)连接当地的 WiFi 时会弹出一个验证表单,输入验证信息(比如短信验证码)后就能够通过该 WiFi 联网. 本文将介绍通过 OpenWrt WiFiDo ...
- jekyll开发静态网站
一.Ruby环境安装配置 首先下载ruby安装ruby download ,安装完ruby后,再安装rubyGems:运行gem update --system即可. 然后下载DevKit-mingw ...
- Eclipse 中出现红色下划波浪线与红色感叹号
一直用eclipse写Python,老是看到一些字符串都给出红色波浪线, 看着就不舒服.弄了老半天终于消除了,原来是拼写检查 Windows->Preferences->General-& ...