2012-12-23 60 views
1

試圖使表HAML,我有以下幾點:每隔一行|在Haml的表的第N列

%table 
    %tbody 
    %tr 
     %th{:rowspan => 2} Name 
     %th{:class => "leftBorderS", :colspan => 5} Monday 
     %th{:class => "leftBorderS", :colspan => 5} Tuesday 
     %th{:class => "leftBorderS", :colspan => 5} Wednesday 
     %th{:class => "leftBorderS", :colspan => 5} Thursday 
     %th{:class => "leftBorderS", :colspan => 5} Friday 
     %th{:class => "leftBorderS", :colspan => 5} Saturday 
    %tr 
     - 6.times do 
     %th{:class => "leftBorderS"} A 
     %th{:class => "leftBorderD"} B 
     %th{:class => "leftBorderD"} C 
     %th{:class => "leftBorderD"} D 
     %th{:class => "leftBorderD"} E 

    - @data.each do |row| 
     %tr 
     - row.each do |column| 
      %td{:class => "leftBorderD"}= column 

CSS類:由軌道器傳遞

table { 
    border-collapse: collapse; 
} 
th { 
    border: 1px solid #ccc; 
    padding: 0.2em; 
} 
.weeklyReview .leftBorderS { 
    border-left: 1px solid black; 
    text-align: center; 
} 
.weeklyReview .leftBorderD { 
    border-left: 1px dotted orange; 
} 
.weeklyReview .rowGray { 
    background-color: gray; 
} 
.weeklyReview .rowWhite { 
    background-color: white; 
} 

樣本數據:

@data = [["adam", 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5], ["boy", 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5], ["charles", 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5], ["david", 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5], ["echo", 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5], ["foxtro", 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5], ["gamma", 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5], ["helio", 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5], ["indigo", 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5],] 

問題出現在代碼的最後部分。我希望每個其他%tr的顏色不同。目前默認是灰色的,但這仍然意味着其他每個人都必須是白色的,所以我只做了兩個班級來切換兩者)。同樣爲了分隔日子,只有某些%tds會有一個固定的左邊框,否則它們會有一個虛線的邊框。

對於HAML標記:

  1. 你如何通過每隔一行步驟?
  2. 你如何僅將n th實例應用於數據單元?

什麼我have,它應該看起來like

我主要是在尋找語法,因爲它可以應用於數據單元格,行,列或任何需要解析或步進的東西。

回答

4

這看起來像一個CSS問題。

使用nth-of-type,忘掉所有這些額外的類:

table { 
    background-color: salmon; 
} 

th { 
    background: salmon; 
} 

tr:nth-of-type(2n) { 
    background: salmon; 
} 
tr:nth-of-type(2n+1) { 
    background: lightblue; 
} 

您還可以使用列做到這一點:

td:nth-of-type(5n-3) { 
    color: white 
} 
+0

首先,你吹我的腦海裏,不知道有CSS Jquery-ish功能。非常感謝。包含'%col's還是通過第n個td罰款訪問它會更好嗎? –

+1

我會親自去做第n次。此外,這裏有一個[小工具](http://codepen.io/sacha/full/cAJEo)幫助解決混淆(至少對我來說)第n個語法。 – bookcasey

相關問題