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 ファイルでそれらを定義するか、インライン スタイルを使用できます (あまりきれいではない可能性があります)。

たとえば、次のコードでは要素の幅を割り当てます (5 つ星の評価を行うため)。

<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 に答える