2

我想知道如何根据数据库中元素的数量动态更改我的 CSS 样式。

用户可以选择一定的列数,他们选择的列数决定了列的宽度(显然选择的列越多,每列的宽度就会越小,以便它们在页面上水平间隔均匀。

你怎么做这样的事情?

4

2 回答 2

3

听起来像是很好地使用ahem TABLEs!

问题是您不能通过更改 CSS 来做到这一点,您需要更改 HTML

<table width="100%">
  <tr>
      <td>..</td> (repeat for the number of columns)
  </tr>
</table>

默认情况下,所有表格单元格 (TD) 的宽度都相同。

于 2011-04-04T17:01:26.557 回答
1

您需要在 .html.erb 中动态分配样式。您可以使用表格、div、列表 - 任何您想要的。只需根据列数(class="small",class="wide")分配不同的类并在您的 CSS 文件中定义它们,或者(可能不太漂亮)您可以使用内联样式。

例如,在这段代码中,我指定了一个元素的宽度(进行五星级评级):

<ul class="stars floatstars">
        <li class="yellowstars" style="width: <%= @article.avg_rating * 25 %>px !important;"></li>
        <li class="text"><%= @article.avg_rating %> average from <%= pluralize(@article.count_ratings, "vote") %></li>
</ul>

编辑:如果您将类设置为控制器中的变量,这将是视图的示例:

<li class=<%= @myclass %>>...</li>
于 2011-04-04T18:40:54.200 回答