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

我有这样的div:

其中`small-top-margin’如下:

 .small-top-margin { margin-top: 2em; } 

有没有办法将参数传递给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解决方案会更好。

不。但您可以生成合理数量的预建类:

 .top-margin-2 { margin-top: 2em; } .top-margin-5 { margin-top: 5em; } 

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

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

不,这是不可能的。

使用LESS或SASS来实现此目的。

您可以使用php将参数传递给CSS文件。 1.按名称style.php创建样式:

  #test{ color:; font-size:; } 
  1. 在html文件中调用style.php并将参数传递给它

    \ link rel =“stylesheet”media =“screen”type =“text / css”href =“/ css / style.php?page = 1&font_size = 35px”/>

    div id =“test”>测试test / div>