SharePoint マスターページは、ASP.NET (MVC) のものと同じであると想定しています。したがって、これはまったく問題になりません。
<!--[if lt IE 7 ]> <html class="ie6"> <![endif]-->
<!--[if IE 7 ]> <html class="ie7"> <![endif]-->
<!--[if IE 8 ]> <html class="ie8"> <![endif]-->
<!--[if IE 9 ]> <html class="ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html> <!--<![endif]-->
上記のコードはすべて、サイトにアクセスしているブラウザーに応じて、HTML タグに異なる CSS クラスを使用して HTML タグを設定するだけです。特定のブラウザー (IE) の一部のスタイル シートをオーバーライドできるようにします。
site.css
.coloredBackground
{
background-color: #FF0000; //red
}
.ie6 .coloredBackground
{
background-color: #00FF00; //green
}
.ie8 .coloredBackground
{
background-color: #0000FF; //blue
}
この例では、Firefox、Opera、Safari、IE7、9、10 で閲覧しているユーザーには、赤い背景が表示されます。IE6 の場合、背景色は緑で上書きされ、IE8 では青で上書きされます。
CSS 登録は次のようになります。
<SharePoint:CSSRegistration Name="site.css" runat="server" />
ご覧のとおり、CSS 登録で ConditionalExpression を設定する必要はもうありません。これは、HTML 要素に特定のクラスを設定することで、使用するスタイル シートを既に切り替えているためです。
アップデート:
もう 1 つの可能性は、SharePoint aspx コントロールの ConditionalExpression プロパティを使用して、ブラウザーのバージョンに応じて別のスタイル シート ファイルを含めることです。
<SharePoint:CSSRegistration Name="ie6.css" ConditionalExpression="lt IE 7" runat="server" />
<SharePoint:CSSRegistration Name="ie7.css" ConditionalExpression="IE 7" runat="server" />
<SharePoint:CSSRegistration Name="ie8.css" ConditionalExpression="IE 8" runat="server" />
<SharePoint:CSSRegistration Name="ie9.css" ConditionalExpression="IE 9" runat="server" />
欠点は、.ie*
クラスが html 要素にないため、.css の優先度の問題が発生する可能性があることです.class-to-override-if-specific-ie-version
。!important
これは、特定のスタイル シート ファイルのルールを使用して解決できます。