在CSS中动态格式化样式

时间:2019-07-02 18:40:43

标签: html css reactjs styles

我正在尝试在列中显示图标,而不是通过CSS显示文本。但是,我无法为这段代码找到正确的语法。

我的reactjs代码具有:


return '<div><span class="fa fa-2x fa-star" style="display : [' + item.Status + ' == approved] ? block: none"></span></div>';    
}

这导致下面的代码不起作用:

<div>
<span class="fa fa-2x fa-star" style="display : [submitted == approved] ? block: none"></span>
</div>

在上述情况下,当“已提交”!=“已批准”时,理想情况下不应显示该图标,而是在每行中显示星形图标(值是否匹配)。

在chrome中,我还尝试了以下代码和许多类似的格式,但是它们都不起作用:

<span class="fa fa-2x fa-star" style="[rejected == approved] ? display: block : display : none"></span>

<span class="fa fa-2x fa-star" style="display : [rejected == approved] ? block : none"></span>

<span class="fa fa-2x fa-star" style="display : "rejected" == "approved" ? block : none"></span>

我的要求是,仅当值LHS和RHS值匹配时,图标才可见。例如:“ approved” =“ approved”。

最适合我的解决方案是:

var cssClass = item.Status = "approved" ? "fa fa-2x fa-star" : "myblankcssclass" ; //add various classes using ternary operator.

return '<div><span class=" '+ cssClass + '" </span></div>';    
}

2 个答案:

答案 0 :(得分:2)

您尝试以下操作:

displayStyle = submitted == approved ? 'block': 'none';
return (
    <div>
        <span class="fa fa-2x fa-star" style={{ display: displayStyle }}></span>
    </div>
)

答案 1 :(得分:0)

对我有用的代码:

var cssClass = item.Status = "approved" ? "fa fa-2x fa-star" : "myblankcssclass" ; //add various classes using ternary operator.

return '<div><span class=" '+ cssClass + '" </span></div>';    
}