我正在尝试在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>
我可以使用暴力%样式(type =“text / css”),但HAML的:css过滤器似乎应该更“优雅”?!?或者,我错过了什么(我很少处理内联CSS)并且不再需要类型?!?
解决方法
如果format选项设置为xhtml或html4,Haml将输出type属性。如果格式设置为html5,则将省略该属性。
见Haml docs on options和source of the CSS filter。
Haml 3.1.x中的默认值是xhtml,除了Rails时它是html5,因为这是Rails的默认值。在Haml 4中,默认值为html5。 (同样在4中,当格式为html4或html5时,默认情况下将省略CDATA标签。)