【问题标题】:Conditional CSS in Ruby and Haml TableRuby 和 Haml 表中的条件 CSS
【发布时间】:2015-06-18 14:41:49
【问题描述】:

我有一个表格中的项目列表。有些是真的,有些是假的。有没有一种方法可以使真实元素具有一种背景颜色,而虚假元素具有另一种背景颜色。我正在考虑在应用程序助手中编写一个方法,但我不确定如何最好地编写它。到目前为止,我只有

%td.success= person.success

这当前会在表格中打印出 true 或 false,但我只想为其添加一些背景颜色?

【问题讨论】:

    标签: css ruby haml


    【解决方案1】:

    或者为什么不这样:

    css

    td.success { background-color: 'green' }
    td.failure { background-color: 'red' }
    

    然后在haml中

    %td{class: "#{person.success ? 'success' : 'failure'}"} = person.success
    

    或者

    - if person.success
      %td.success = person.success
    - else
      %td.failure = person.success
    

    【讨论】:

    • 谢谢!有没有办法在帮助文件中而不是在 haml 中执行此操作?
    • @Em8 取决于你所说的助手是什么意思?我们是否正在创建一个将生成 DOM 元素的视图助手?一个布尔助手,只返回适当的类String?也许像def success_cell(val); haml_tag ("#{val ? 'td.success' : 'td.failure'}", val);end 这样你就可以打电话给success_cell(person.success)
    【解决方案2】:

    您可能需要考虑在页面呈现时使用一些 JavaScript/jQuery 执行此操作:

    $(document).ready(function() {
    
        $("td").each(function() {
    
            if ( $(this).html() === true ) {
                 $(this).css("background", "blue");
            }
            else {
                 $(this).css("background", "red");
            }
    
        }
    
    }
    

    有了更多关于您呈现的 HTML 外观的上下文,我们可以对其进行调整以获得更具体的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-13
      • 2012-01-16
      • 1970-01-01
      相关资源
      最近更新 更多