r如何获取元素的style属性呢?
一般我们想到的方法是使用obj.style
例如
<nav> <div id="overflow" > <div class="container"> <a href="index.asp">Home1</a> <a href="html5_meter.asp">Previous2</a> <a href="html5_noscript.asp">栏目3</a> <a href="html5_noscript.asp">栏目4</a> <a href="html5_noscript.asp">栏目5</a> <a href="html5_noscript.asp">栏目6</a> </div> </div> </nav>
我们使用js:
document.getElementById("overflow").style
但是发现没有获取到style!!!这时我们就非常纳闷了,我确实在外部css文件中编写了overflow的样式啊,怎么获取不到呢?
注意:obj.style获取的只是元素的内联样式,如果没有设置,返回空.
以下方法是获取元素最终的css样式(计算后的css样式)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1.0 ,user-scalable=no"> <script type="text/javascript"> function getStyle2(obj) { if(obj.currentStyle===undefined) { return getComputedStyle(obj); }else{ return obj.currentStyle;//IE } } window.onload=function() { var para=document.getElementsByTagName('p')[0]; var currentStyle=getStyle2(para); alert("'"+currentStyle["color"]+"' \t\t '"+currentStyle["margin"]+"'"); } </script> <style> p{ margin:30px; } </style> </head> <body> <p style="color:red;" > 这是一个段落. </p> </body> </html>
运行结果:
IE9中:
IE8中:
可见IE8和IE9的反应是相同的.
火狐中:
chrome中:
我们发现火狐中获取不到margin属性.但是在IE和chrome中都可以获取到margin.
那我们换一种方式:
window.onload=function() { var para=document.getElementsByTagName('p')[0]; var currentStyle=getStyle2(para); alert("'"+currentStyle["color"]+"' \t\t '"+currentStyle["margin-top"]+"'"); }
在火狐中运行结果:
可以获取到margin-top,但是不能获取到margin.我猜测,火狐同样也可以获取到margin-left,margin-right,margin-bottom.经过我的验证,确实可以.
我进一步推理:如果我单单设置了padding,在火狐中就必须通过padding-left,padding-right,padding-top或padding-bottom来获取了.
总结:
(1)使用obj.style不能获取元素的最终样式;
(2)在chrome和火狐中返回的颜色是rgb模式,而在IE中返回的颜色是单词(例如"red");
(3)在火狐中无法获取"margin"或"padding",必须通过margin-[方位]或padding-[方位]的方式来获取.
参考:http://www.zhangxinxu.com/wordpress/2012/05/getcomputedstyle-js-getpropertyvalue-currentstyle/
http://segmentfault.com/blog/kidsamong/1190000002545307
相关推荐
- **说明**: 用于设置或获取元素的高度。长度值可以是像素、百分比等单位。 **19. HIDEFOCUS (hideFocus)** - **功能**: 设置或获取表明对象是否显式标明焦点的值。 - **语法**: `hidefocus: true | false` - *...
- `getAttribute`: 获取元素的属性值。 - `setAttribute`: 设置元素的属性值。 - `removeAttribute`: 移除元素的属性。 4. **文本内容操作** - `textContent`: 获取或设置元素的纯文本内容。 - `innerHTML`: ...
### CSS Style属性大全:深入解析与应用 在前端开发领域,CSS(层叠样式表)是必不可少的一部分,它用于描述HTML文档的外观和格式。掌握CSS的Style属性,能够极大地提升网页的美观度和用户体验。以下是对给定文件中...
IE下通过它, 就可以获取元素的Css属性值. 而针对其他标准浏览器, W3C也提供了一个方法getPropertyValue, 此方法, 稍有点复杂, 首先要通过document.defaultView.getComputedStyle获得Css的样式对象, 然后通过该对象...
在探讨如何使用JavaScript获取标签ID并改变其style属性之前,我们需要了解几个关键的Web开发知识点,包括HTML元素的ID属性、JavaScript中的DOM操作以及CSS样式的应用方式。以下将详细阐述这些概念,并结合给定的代码...
在Vue框架中,获取自定义元素属性参数值是进行组件间数据传递和操作的常见需求。Vue提供多种方式来获取这些参数值,包括但不限于模板绑定、事件处理、引用DOM元素、以及jq等第三方库的使用。 1. 通过事件对象获取 ...
### CSS与JavaScript中style属性对照表详解 #### 引言 在前端开发中,CSS(层叠样式表)和JavaScript是构建动态、交互式网页的关键技术。为了更好地控制页面元素的样式,开发者经常需要通过JavaScript来操作DOM...
获取元素属性是JavaScript操作网页元素的基本能力之一。在HTML中,每一个元素都有其对应的属性,这些属性包括但不限于id、class、name、src、href、style等。JavaScript提供了多种方法来获取这些属性的值。 例如,...
从给定的文件信息来看,我们探讨的主题是CSS与JavaScript在网页设计中的应用,特别是如何通过style属性在JavaScript中直接操作CSS样式。以下是对标题、描述以及部分代码内容的深入解析,旨在阐述CSS和JavaScript之间...
例如,`window.getComputedStyle(element).getPropertyValue('color')`可以获取元素的实际颜色。 3. CSS样式对象:JavaScript可以创建CSSStyleDeclaration对象来代表元素的样式。例如,`var style = element.style;...
此外,`<style>`元素还可以通过`sheet`属性访问到其对应的CSSStyleSheet对象,这个对象提供了进一步操作CSS规则的方法,如添加、删除或修改规则。例如,我们可以这样添加一个CSS规则: ```javascript var sheet = ...
下面是对标题和描述中提到的一些CSS Style属性在JS中的详细解释: 1. **边框(Border)属性**: - `border`: 设置所有边框的样式、宽度和颜色。 - `border-bottom`: 设置下边框。 - `border-bottom-color`: 设置...
可以通过元素的style属性,获取元素行内样式。style属性是一个对象,包括一系列样式属性。例如:color, backgourdColor。 上面讲的通过style属性获取元素样式,不推荐使用。 下面的一段代码,可以获取元素运行时的...
在JavaScript中,获取元素的CSS属性值通常有两种方式:一种是直接通过`element.style.property`获取,这种方法只能得到内联样式(即直接在HTML标签中使用`style`属性定义的样式);另一种是通过`window....
通常,Label控件默认是没有边框的,但通过设置BorderStyle属性,我们可以让Label具有不同风格的边框,如None(无边框)、FixedSingle(单线边框)、Fixed3D(三维边框)等。边框的存在可以使控件更加突出,帮助用户...
类型资源的核心概念在于样式(Style),它是一系列属性值的集合,可以被应用到不同的视图元素上。在Android中,样式通常定义在res/values目录下的styles.xml文件中。下面我们将深入探讨类型资源的使用、定义以及其在...
在前端开发中,经常需要对页面元素进行操作,包括获取元素的尺寸信息。然而,当我们尝试获取一个CSS样式为display:none的元素的高度和宽度时,会发现常规的JavaScript方法无法直接获取这些尺寸值,因为display:none...