可以将参数传递给CSS类吗?

dax*_*dax 6 html css ruby-on-rails sass ruby-on-rails-4

我有这样的div:

<div class="center small-top-margin">
  <%= rails code %>
</div>
Run Code Online (Sandbox Code Playgroud)

其中"小额保证金"如下:

.small-top-margin {
    margin-top: 2em;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法将参数传递给css类,以便

class="top-margin(2)#=> margin-top: 2em;
class="top-margin(5)#=> margin-top: 5em; 等..

甚至更好

class="margin(top, 2) #=> margin-top: 2em;

我已经包含了Rails标签,以防有一种方法可以通过rails实现这一点,尽管纯粹的css/sass解决方案会更好.

Ama*_*dan 7

不.但是你可以生成合理数量的预建类:

.top-margin-2 {
    margin-top: 2em;
}
.top-margin-5 {
    margin-top: 5em;
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用生成HTML class="top-margin-#{margin}"

这通常不是一件好事,但如果你真的需要它,它是可能的.我敦促你重新考虑并问你真正想要的是什么; CSS类应该在语义上有意义,否则你也可以直接在元素的style属性上应用CSS.什么2em对你意味着什么?什么是5em