`

获取元素的style属性

阅读更多

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

 

 

  • 大小: 7.3 KB
  • 大小: 6.8 KB
  • 大小: 3 KB
  • 大小: 6.1 KB
  • 大小: 3.3 KB
0
1
分享到:
评论

相关推荐

    CSS_style属性大全

    - **说明**: 用于设置或获取元素的高度。长度值可以是像素、百分比等单位。 **19. HIDEFOCUS (hideFocus)** - **功能**: 设置或获取表明对象是否显式标明焦点的值。 - **语法**: `hidefocus: true | false` - *...

    JS操作DOM元素属性和方法大全

    - `getAttribute`: 获取元素的属性值。 - `setAttribute`: 设置元素的属性值。 - `removeAttribute`: 移除元素的属性。 4. **文本内容操作** - `textContent`: 获取或设置元素的纯文本内容。 - `innerHTML`: ...

    CSS style属性大全

    ### CSS Style属性大全:深入解析与应用 在前端开发领域,CSS(层叠样式表)是必不可少的一部分,它用于描述HTML文档的外观和格式。掌握CSS的Style属性,能够极大地提升网页的美观度和用户体验。以下是对给定文件中...

    原生javascript获取元素样式属性值的方法

    IE下通过它, 就可以获取元素的Css属性值. 而针对其他标准浏览器, W3C也提供了一个方法getPropertyValue, 此方法, 稍有点复杂, 首先要通过document.defaultView.getComputedStyle获得Css的样式对象, 然后通过该对象...

    Javascript获取标签ID改变style属性的代码

    在探讨如何使用JavaScript获取标签ID并改变其style属性之前,我们需要了解几个关键的Web开发知识点,包括HTML元素的ID属性、JavaScript中的DOM操作以及CSS样式的应用方式。以下将详细阐述这些概念,并结合给定的代码...

    CSS和JavaScript标签style属性对照表

    ### CSS与JavaScript中style属性对照表详解 #### 引言 在前端开发中,CSS(层叠样式表)和JavaScript是构建动态、交互式网页的关键技术。为了更好地控制页面元素的样式,开发者经常需要通过JavaScript来操作DOM...

    用js获取元素属性的代码

    获取元素属性是JavaScript操作网页元素的基本能力之一。在HTML中,每一个元素都有其对应的属性,这些属性包括但不限于id、class、name、src、href、style等。JavaScript提供了多种方法来获取这些属性的值。 例如,...

    CSS 和 JavaScript 标签 style 属性对照表

    从给定的文件信息来看,我们探讨的主题是CSS与JavaScript在网页设计中的应用,特别是如何通过style属性在JavaScript中直接操作CSS样式。以下是对标题、描述以及部分代码内容的深入解析,旨在阐述CSS和JavaScript之间...

    JavaScript CSS Style属性对照表

    例如,`window.getComputedStyle(element).getPropertyValue('color')`可以获取元素的实际颜色。 3. CSS样式对象:JavaScript可以创建CSSStyleDeclaration对象来代表元素的样式。例如,`var style = element.style;...

    动态添加style元素

    此外,`&lt;style&gt;`元素还可以通过`sheet`属性访问到其对应的CSSStyleSheet对象,这个对象提供了进一步操作CSS规则的方法,如添加、删除或修改规则。例如,我们可以这样添加一个CSS规则: ```javascript var sheet = ...

    vue如何获取自定义元素属性参数值的方法

    在Vue框架中,获取自定义元素属性参数值是进行组件间数据传递和操作的常见需求。Vue提供多种方式来获取这些参数值,包括但不限于模板绑定、事件处理、引用DOM元素、以及jq等第三方库的使用。 1. 通过事件对象获取 ...

    JS中的CSS_Style属性标签对照表.docx 含有CSS 的详细属性说明

    下面是对标题和描述中提到的一些CSS Style属性在JS中的详细解释: 1. **边框(Border)属性**: - `border`: 设置所有边框的样式、宽度和颜色。 - `border-bottom`: 设置下边框。 - `border-bottom-color`: 设置...

    JS获取和修改元素样式的实例代码

    可以通过元素的style属性,获取元素行内样式。style属性是一个对象,包括一系列样式属性。例如:color, backgourdColor。 上面讲的通过style属性获取元素样式,不推荐使用。 下面的一段代码,可以获取元素运行时的...

    获取style标签和外联(link)样式表

    对于获取&lt;style&gt;标签中的样式规则,我们可以定位到style元素,然后访问其`sheet`属性。这个`sheet`对象包含了样式表的所有规则。在Internet Explorer浏览器中,我们可以直接通过`sheet.rules`来获取这些规则;然而,...

    js获取某元素的class里面的css属性值代码

    在JavaScript中,获取元素的CSS属性值通常有两种方式:一种是直接通过`element.style.property`获取,这种方法只能得到内联样式(即直接在HTML标签中使用`style`属性定义的样式);另一种是通过`window....

    第二章,Label 控件[Caption(标题)属性][BorderStyle(边框)属性]

    通常,Label控件默认是没有边框的,但通过设置BorderStyle属性,我们可以让Label具有不同风格的边框,如None(无边框)、FixedSingle(单线边框)、Fixed3D(三维边框)等。边框的存在可以使控件更加突出,帮助用户...

    类型(style) 资源

    类型资源的核心概念在于样式(Style),它是一系列属性值的集合,可以被应用到不同的视图元素上。在Android中,样式通常定义在res/values目录下的styles.xml文件中。下面我们将深入探讨类型资源的使用、定义以及其在...

Global site tag (gtag.js) - Google Analytics