Javascript 用css样式汇总内联样式的值
我在React组件的.scss文件中设置了元素的边距:Javascript 用css样式汇总内联样式的值,javascript,css,reactjs,sass,Javascript,Css,Reactjs,Sass,我在React组件的.scss文件中设置了元素的边距: .element { margin: 20px; } 我想将此值与设置为“内联样式中的边距”的值相加: <div className={scss.element} style={{ margin: 10px }}>Whatever</div> 不管怎样 最终结果应该是:margin:30px试试这个 函数myfns(){ var x=document.getElementById(“mytxt”).v
.element {
margin: 20px;
}
我想将此值与设置为“内联样式中的边距”的值相加:
<div className={scss.element} style={{ margin: 10px }}>Whatever</div>
不管怎样
最终结果应该是:margin:30px
试试这个
函数myfns(){
var x=document.getElementById(“mytxt”).value
document.getElementById(“p2”).style.margin=x+“px”;
}
不管怎样
设置边距您需要做的是获取CSS文件的计算样式和内联样式,并将它们添加到一起 我使用以下函数获取CSS文件样式: (谢谢你,伙计!)
var cssElm=getStyle('.element'),
cssVal=cssElm.split('margin:')[1]。split(';')[0],
然后使用vanillablah.style
检索内联样式(这只获取最高级别的样式,因此如果CSS文件中有一个!important
标记,它将再次获取该标记,最终结果将是40px)
inlineVal=elm[0]。style.margin,
然后,我们清理检索到的两个字符串(以删除任何已应用的单元(em、px等),然后将它们添加到一起:
totalVal=parseInt(cssVal.replace(/[^0-9.]/g,”))+parseInt(inlineVal.replace(/[^0-9.]/g,”);
最后,将样式重新应用于原始元素
elm[0]。style.margin=totalVal+'px';
您可以在此处看到一个工作示例:
试试这个:
var marginStyle=parseInt(document.getElementById(“element”).style.margin);
var marginCss=parseInt($(“.element”).css(“margin”);
var总和=保证金样式+保证金;
$(“p”).html('Style margin'+marginStyle+'Css margin'+marginCss+'
sum'+sum); $(“.element”).css(“cssText”,“margin:+sum+“px!important;”);
这不能使用css来完成,因此,您可以使用javascript,否则您可以输入所需的结束值,即
style={{margin:30px}}
内联样式将覆盖来自的边距
值。scss
内联样式的值是可变的。因此将固定值设置为30px不会起作用。@Eduard我更改答案,试试看
var marginStyle=parseInt(document.getElementById("element").style.margin) ;
var marginCss=parseInt($(".element").css("margin"));
var sum=marginStyle+marginCss;
$("p").html( 'Style margin '+marginStyle+'<br> Css margin '+marginCss +'<br>sum '+sum);
$(".element").css("cssText", "margin:"+sum+"px !important;");