2

我正在尝试根据找到此主题的建议使用 IE 条件注释。 “[!IE]”Haml 中 的条件注释但是它不起作用,我不知道为什么。

我正在尝试编辑 Ruby on Rails 应用程序,并且我是 HAML 和 Rails 的新手。任何帮助,将不胜感激。

这是我尝试使用的 HAML 代码。

%section#audio-controls
  =surround '<!--[if !IE]> -->'.html_safe, '<!-- <![endif]-->'.html_safe do  
    = audio_tag( '/audios/elder.wav', :controls => 'controls', :id => 'elder_audio' )
  =surround '<!--[if IE]> -->'.html_safe, '<!-- <![endif]-->'.html_safe do  
    = audio_tag( '/audios/elder.mp3', :controls => 'controls', :id => 'elder_audio' ) 

我也试过这段代码,认为这可能是 audio_tag 的问题

%section#audio-controls
  =surround '<!--[if !IE]> -->'.html_safe, '<!-- <![endif]-->'.html_safe do  
    %p
      This is not IE
  =surround '<!--[if IE]> -->'.html_safe, '<!-- <![endif]-->'.html_safe do  
    %p
      This is IE
4

3 回答 3

3

HAML 支持使用/[]语法的条件注释。

将您的示例更改为这样的内容,它应该可以按预期工作:

%section#audio-controls
  /[if !IE]
    %p This is not IE, but this won't be rendered as all other browsers don't know about conditional comments
  /[if IE]
    %p This is IE
于 2013-01-07T22:55:17.203 回答
0

使用html2haml命令行实用程序将 HTML 转换为 HAML。

例如:

alhafoudh@Aluminium:~$ html2haml 
<!--[if IE 6]>
Special instructions for IE 6 here
<![endif]-->

^D
/[if IE 6]
  Special instructions for IE 6 here
于 2013-01-07T23:20:15.483 回答
0

对我来说有几个条件可以这样做:

!!!
:plain
  <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]--><!--[if IE 7]><html class="no-js lt-ie9 lt-ie8" lang="en"><![endif]--><!--[if IE 8]><html class="no-js lt-ie9" lang="en"> <![endif]--> <!--[if IE 9]><html class="no-js lt-ie10" lang="en"> <![endif]--> <!--[if gt IE 9]><!-->
%html.no-js{:lang => 'en'}
  / <![endif]

  %head
    %title Yinlang
于 2015-04-07T13:29:42.333 回答