Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用css样式汇总内联样式的值_Javascript_Css_Reactjs_Sass - Fatal编程技术网

Javascript 用css样式汇总内联样式的值

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

我在React组件的.scss文件中设置了元素的边距:

.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],

然后使用vanilla
blah.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;");