首页 > 解决方案 > ruby rails动态css类

问题描述

我有一个页面,我在其中调用了我的共享组件

<%= render 'headers', positionRight: true, ...}  %>

我想将positionRight参数作为可选参数。在我的共享组件中,我无法让 css 工作

<section class=<%= (defined? positionRight && positionRight) ? "custom-css-class" : "" %>>

看起来它总是落入空的css类

标签: cssruby-on-railsruby

解决方案


在您看来,将此添加为文件的第一行:

<% positionRight ||= false %>
<% section_class = positionRight ? 'custom-css-class' : '' %>

现在您可以section_class在文件中的任何位置使用您的:

<section class='<%= section_class %>' >...

请注意section元素中类的定义。您必须使用单引号,否则如果您的类名包含空格,则结果 html 元素将无效。

同样,请注意您的变量 positionRight 不是以 ruby​​ 样式命名的(在 ruby​​ 中,他们通常使用蛇形盒 =>position_right会更具语义性)


推荐阅读