在HAML和Rails中使用IE条件注释

时间:2013-01-07 22:48:10

标签: ruby-on-rails internet-explorer comments haml

我正在尝试根据发现此主题的建议使用IE条件注释。 "[ !IE]" conditional comments in 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

3 个答案:

答案 0 :(得分:3)

HAML使用/[] syntax支持条件评论。

将您的示例更改为类似的内容,它应该按预期工作:

%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

答案 1 :(得分: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

答案 2 :(得分: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