2010-01-28 98 views
13

我想复制一个元素的所有计算的CSS并将其应用于另一个元素。通过计算样式,我的意思是,如果元素的宽度为100%,但是其父宽度为200px,则元素计算宽度为200px。我如何才能访问所有这些元素的样式?如何使用jQuery获取元素的所有计算样式?

+1

找到一个答案,给*每个*风格的声明[这里](http://stackoverflow.com/questions/2558426/getcomputedstyle-or-cssmap-每个样式声明#answer-2561294),我认为这是OP说他们之后的事情。 – Barney 2012-11-23 15:52:27

回答

13

经过进一步研究使用马吉德的答案,我发现jQuery的“的CSS”方法的返回计算风格以及更好,因为它占浏览器差异 http://api.jquery.com/css/

+2

是啊!傻我!我为什么试图让这把勺子走上这条漫长的路。故事的士气:在别处寻找之前,一定要检查你已经拥有的工具。 – 2010-01-28 01:48:08

+0

@ hakim-sina你能解释一下吗?我不明白如何用jQuery的'css()'获得计算样式。 – Smamatti 2012-03-07 22:09:48

+1

@ Smamatti:你能更具体吗?通常要得到一个计算风格,例如宽度(在问题中提到的例子),所有你需要做的就是将它传递给像这样的css函数: var width = $(“element”).css( “width”) – 2012-03-08 13:05:33

9

使用计算式。这里有一个简单的教程: Get Computed Style

而对于jQuery,它可以帮助您获取对源和目标元素的引用并轻松应用css规则。比方说,你只在两个属性,宽度和高度兴趣的话,那么你可以沿着线使用代码:

var oSource = $('#source'); 
var sWidth = document.defaultView.getComputedStyle(oSource, null).width; 
var sHeight = document.defaultView.getComputedStyle(oSource, null).height; 
$('#target').css('width', sWidth).css('height', sHeight); 
+1

非常感谢。我想我必须使用currentStyle来支持IE,是吗? – 2010-01-28 01:10:00

+0

不确定关于7,请查看兼容性链接:http://www.quirksmode.org/dom/w3c_css.html – 2010-01-28 01:23:37

+0

@ hakim-sina而不是做不同的事情,为什么不使用jQuery或其他库? – NoBugs 2015-07-05 01:57:38

相关问题