2

IE10でASP.NETMVC(Razorベース)Webサイトをデバッグする場合でも、IE固有のcssを設定する必要があります。IEの条件付きコメントを使用する場合、IE10をIE8の標準レンダリングモードに切り替えると、次の構文が機能します。

<!--[if IE]><!--> 
<link href="@Url.Content("~/Content/global/global.ie.css")" rel="stylesheet" type="text/css">
<!--<![endif]-->

そしてこれは-しません:

<!--[if IE]> 
<link href="@Url.Content("~/Content/global/global.ie.css")" rel="stylesheet" type="text/css">
<![endif]-->

後者の構文は、MSDNの公式ページを含む、条件付きコメントに関する情報を提供するほとんどのサイトでの例として示されています。これら2つの違いは何ですか?前もって感謝します。

4

1 に答える 1

6

それを機能させるには、「ダウンレベルで明らかにされた条件付きコメント」を使用してください...

構文:

<![if IE]>    
     ...statements...  
<![endif]>

例:

<![if IE]>    
    <link href="@Url.Content("~/Content/global/global.ie.css")" rel="stylesheet" type="text/css">  
<![endif]>

より詳しい情報:

ダウンレベルで明らかにされた条件付きコメント構文は、一部の検証サービスによって無効なHTMLとしてフラグが付けられます。追加の文字を追加して、公開するHTMLコンテンツの前後に有効なHTMLコメントを作成できます。

<!--[if !IE]>--> 
    YOUR HTML 
<!--<![endif]-->

上記の例では、負の条件式により、InternetExplorerがダウンレベルで公開された条件付きコメントブロック内にHTMLコンテンツを表示できなくなります。ただし、条件式がtrueと評価された場合、最初のコメントの終了「->」がHTMLコンテンツとともにInternetExplorerに表示されます。これらの文字をInternetExplorerユーザーから隠すには、「

<!--[if !IE]><!--> 
    YOUR HTML 
<!--<![endif]-->

例:

条件付きコメントの例をさらにいくつか示します。

<!--[if IE]><p>You are using Internet Explorer.</p><![endif]-->
<![if !IE]><p>You are not using Internet Explorer.</p><![endif]>

<!--[if IE 7]><p>Welcome to Internet Explorer 7!</p><![endif]-->
<!--[if !(IE 7)]><p>You are not using version 7.</p><![endif]-->

<!--[if gte IE 7]><p>You are using IE 7 or greater.</p><![endif]-->
<!--[if (IE 5)]><p>You are using IE 5 (any version).</p><![endif]-->
<!--[if (gte IE 5.5)&(lt IE 7)]><p>You are using IE 5.5 or IE 6.</p><![endif]-->
<!--[if lt IE 5.5]><p>Please upgrade your version of Internet Explorer.</p><![endif]-->

<!--[if true]>You are using an <em>uplevel</em> browser.<![endif]-->
<![if false]>You are using a <em>downlevel</em> browser.<![endif]>

<!--[if true]><![if IE 7]><p>This nested comment is displayed in IE 7.</p><![endif]><![endif]-->

ダウンレベルで明らかにされた条件付きコメントの有効なHTMLから取得したコンテンツ

于 2013-01-02T09:57:31.977 に答える