2

このトピックで見つかったアドバイスに基づいて、IEの条件付きコメントを使用しようとしています。 Hamlの「[!IE]」条件付きコメント しかし、それは機能しておらず、理由はわかりません。

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

私にとっていくつかの条件では、これが機能します:

!!!
: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 に答える
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 に答える