HAML-使用:css过滤器将type = text / css添加到<style>标签

我正在尝试在HAML文件中添加一些内联CSS。我以为

%noscript
  :css
    .pagecontent {display:none;}

会产生:

<noscript>
  <style type="text/css">
    /*<![CDATA[*/
      .pagecontent {display:none;}
    /*]]>*/
  </style>
</noscript>

但事实并非如此。由于遗漏了type="text/css"并产生:

<noscript>
  <style>
    /*<![CDATA[*/
      .pagecontent {display:none;}
    /*]]>*/
  </style>
</noscript>

我可以使用蛮力,%style(type="text/css")但是HAML的:css过滤器似乎应该更“优雅”?!?或者,我是否错过了某些东西(我很少处理内联CSS)并且type不再需要?!?

DavaidTony宝儿2020/03/23 20:01:25

type默认text/css为HTML5版本,并且在实践中(即在浏览器实现中)始终这样做。

所以是的,type="text/css"没有必要(而且从未如此)。

Jim理查德猿2020/03/23 20:01:25

type如果format选项设置为xhtml或,Haml将输出属性html4如果将格式设置为html5属性,则将省略。

有关选项CSS过滤器来源,请参见Haml文档

Haml 3.1.x中的默认值为xhtml,但Rails除外(html5因为这是Rails的默认值)。在Haml 4+中,默认设置将html5始终存在。(当格式为html4时,默认情况下也会在4+中保留CDATA标记html5。)