データベース内の要素数に基づいて CSS スタイルを動的に変更する方法を知りたいです。
ユーザーは特定の数の列を選択でき、選択した列の数によって列の幅が決まります (明らかに、選択した列が多いほど、各列の幅が狭くなり、ページ全体で水平方向に均等に配置されます。
どうやってこのようなことをしますか?
データベース内の要素数に基づいて CSS スタイルを動的に変更する方法を知りたいです。
ユーザーは特定の数の列を選択でき、選択した列の数によって列の幅が決まります (明らかに、選択した列が多いほど、各列の幅が狭くなり、ページ全体で水平方向に均等に配置されます。
どうやってこのようなことをしますか?
ahem TABLEsの良い使い方のようですね!
問題は、CSS を変更してもこれを行うことができないことです。HTML を変更する必要があります。
<table width="100%">
<tr>
<td>..</td> (repeat for the number of columns)
</tr>
</table>
デフォルトでは、すべてのテーブル セル (TD) は同じ幅になります。
.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>