Javascript 获取按钮的计算样式或默认样式,并在新元素上设置

Javascript 获取按钮的计算样式或默认样式,并在新元素上设置,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在从事一个项目,在这个项目中,我定义了自定义html元素,并为它们提供了一种样式。 我正在尝试创建一个默认样式的按钮,并采用按钮的计算样式,将其设置为另一个自定义元素,具有按钮活动和悬停效果 但这对我不起作用。。有没有伙伴有解决办法或想法 这是我的代码: var A_btnfake = document.createElement('button'); cS = document.defaultView.getComputedStyle(A_btnfake, null); A_btn =

我正在从事一个项目,在这个项目中,我定义了自定义html元素,并为它们提供了一种样式。 我正在尝试创建一个默认样式的按钮,并采用按钮的计算样式,将其设置为另一个自定义元素,具有按钮活动和悬停效果

但这对我不起作用。。有没有伙伴有解决办法或想法

这是我的代码:

var A_btnfake = document.createElement('button'); 
cS = document.defaultView.getComputedStyle(A_btnfake, null);
A_btn = document.createElement('custbtn');
A_btn.style=cS;
some_elm.appendChild(A_btn);
//i don't want to define each style one by one,like :  A_btn.style.background = cS.backGround
有没有办法一次定义所有样式

是只读的-不能将全新的
CSSStyleDeclaration
对象分配给元素,只能获取其(可能与元素绑定)对象

如果要将样式复制到另一个样式,则必须按属性执行:

for (var prop in cS)
    A_btn.style[prop] = cS[prop];

您需要通过CSS执行此操作,特别是如果您希望继承
:active
:hover
状态。这非常简单,只需将新元素添加到选择器列表中,f.ex:

button,
custbtn { color: yellow; }

请注意,在一些旧版本的IE中,您需要虚拟添加新的自定义元素,以便能够通过CSS将它们作为目标(HTML5元素也是如此)。

如果我理解正确,您想一次定义所有样式吗?这可以直接通过CSS来完成,如果你想从某个地方开始,不需要通过javascript/jQuery来完成,我建议你先看看,但是我想要默认样式的按钮,比如IE!有悬停和活动效果。这些效果不是由CSS创建的,它们是
HTMLButtoneElement
的本机行为的一部分。那么有什么技巧可以采用这种本机行为吗@TeemuI不知道有任何类似的技巧,但这并不意味着没有。你还需要将伪元素添加到DOM中,否则计算出的样式将不会返回任何结果。这似乎仅适用于IE,Chrome和FF display
style=“”
。可以部分工作@贝吉
button,
custbtn { color: yellow; }