在HAML / HTML中对齐表的列

时间:2017-11-06 21:05:05

标签: html css ruby-on-rails haml bootstrap-4

我正在制作一个动态填写的表格。在动态填写内容时,我可以获得null对象。当我获取空对象时,HTML表未正确对齐。例如,我想创建一个表如下:

    Header1       Header2        Header3       Header4
                  Content12                    Content14
    Content21                    Content23     Content24
    Content31     Content32                    Content34

但目前,该表格如下:

    Header1       Header2        Header3       Header4
    Content12     Content14
    Content21     Content23      Content24
    Content31     Content32      Content34

我看过的其他解决方案需要在有空对象时插入& nbsp字符。如果我遵循这种方法,那么对于每一列,我必须检查给定的值是否为null,如果为空,则插入& nbsp字符。我认为必须有一些其他有效的方法来做到这一点。有人可以帮我解决这个案子吗?

P.S:这是一个Ruby on Rails项目,我使用HAML和Bootstrap来创建视图。此外,我的内容行包含一些额外的按钮,即标题行包含的列数少于内容行

下面是我用来创建表的代码。

%table.table.table-hover.table-responsive
  %thead
    %tr
      %th ID
      %th Header1
      %th Header2
      %th Header3
      %th Header4
  %tbody
    -@given_objects.each do |obj|
      %tr
        %td= obj.id
        %td= obj.content1
        %td= obj.content2
        %td= obj.content3
        %td= obj.content4
        %td= link_to 'action1', action1_path(obj), class: 'btn btn-primary'
        %td= link_to 'action2', action2_path(obj), class: 'btn btn-primary'
        %td= link_to 'action3', action3_path(obj), class: 'btn btn-primary'

1 个答案:

答案 0 :(得分:1)

我感觉“某事”已经覆盖了表格单元格的display值的默认CSS值。可能是Bootstrap?但我只能猜测......

但以下情况应该有效:

应用/资产/ ANY_SCSS_FILE.scss

table.show-empty-cells {
  td:empty {
    display: table-cell !important;
  }
}

然后使用.show-empty-cells类作为表:

%table.table.table-hover.table-responsive.show-empty-cells

请参阅working example here