HAML嵌套标签

时间:2011-11-17 06:13:58

标签: haml

我正试图嵌套这个

  %h1 Admin Menu
    %small logged in as: #{session[:username]}

得到这样的东西

<h1>Admin Menu <small>logged in as: something</small></h1>

但是,我可以在没有发出错误的情况下显示它的唯一方法是将它们放在同一级别,比如说

  %h1 Admin Menu
  %small logged in as: #{session[:username]}

哪个输出:

<h1>Admin Menu</h1>
<small>logged in as: something</small>

这有点愚蠢,但我不知道为什么这不起作用?

4 个答案:

答案 0 :(得分:28)

如果嵌套的所有内容都是内联的,则Haml只允许内联嵌套。所以你可以这样做:

%h1 Admin Menu

或者这个:

%h1
  Admin Menu
  %small logged in as: #{session[:username]}

但不是这样:

 %h1 Admin Menu
   %small logged in as: #{session[:username]}

第一种形式应该被认为是一种方便的缩写。它存在,所以你可以采取这样的东西:

%li
  One
%li
  Two
%li
  Three

然后说:

%li One
%li Two
%li Three

答案 1 :(得分:7)

我没有尝试过,但是下面的工作不适合你吗?

%h1 
  Admin Menu
  %small logged in as: #{session[:username]}

答案 2 :(得分:1)

另一个伎俩就是这个。

%h1 
  Admin Menu
  %small
    logged in as: 
    =session[:username]

因为最后2行将在“small”-tag

中呈现

答案 3 :(得分:0)

或者您可以使用简单的CSS来执行此操作,如:

%h1
  Admin Menu
    .small{ style: 'font-size: smaller;' }
      logged in as:
      = session[:username]

这样您可以指定其他属性或字体的特定大小。