【问题标题】:Advanced stylsheet in rails导轨中的高级样式表
【发布时间】:2014-05-08 17:54:26
【问题描述】:

我想为我的博客实现类似的设计,所以对于第一篇文章,我认为<%if @posts.first == post %> class="first-post" <%end%>现在我想区分第三个 5 7 ... 帖子和 2 4 .. 帖子如何我这样做?

【问题讨论】:

    标签: ruby-on-rails css ruby-on-rails-4


    【解决方案1】:

    你可以pop数组中的第一个对象:

    post = @posts.pop
    

    然后你可以用它做你喜欢的事。也许渲染一个部分。然后,您可以遍历剩余的帖子。如果需要精细控制,可以使用数组slice

    <% @posts.each_slice(2) do |slice| %>
      <div class="row">
        <% slice.each do |post| %>
          <div class="item">
            show item here
          </div>
        <% end %>
      </div>
    <% end %>
    

    这会将数组分成两组,让您对布局进行更精细的控制。

    或者,对 msanteler 的回答提出改进建议:

    <% @posts.each_with_index do |post, i| %>
      <% if i == 0 %>
        show stuff
      <% elsif i.even? %>
        show stuff
      <% else %>
        show stuff
      <% end %>
    <% end %>
    

    【讨论】:

    • 请注意.even? index 以 0 开头,而不是 1 开头
    【解决方案2】:

    为清晰和简单而编辑:

    <% @posts.each_with_index do |p, index| %>
    
      <% position = index+1 %>
    
      <% if position == 1 then %>
        FIRST
      <% elsif (position.even?) then %>
        EVEN
      <% else %>
        ODD
      <% end %>
    
    <% end %>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-20
      • 2019-04-12
      • 2020-07-31
      • 1970-01-01
      • 2020-10-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多