5

私はウェブサイトを開発していますが、すべてのブラウザで正しく実行されないことに気づきました。

主にIEのブラウザごとに異なるCSSスタイルシートを作成したいと思います。

私の問題は、さまざまなブラウザでさまざまなスタイルシートを呼び出す方法にあります。

また、MVC Webサイトでメインのsite.cssが呼び出されている場所を見つけることができません。誰かが、MVCWebサイトでsite.cssが呼び出されている場所を教えてくれれば素晴らしいと思います。

では、MVC Webサイトのブラウザーごとに異なるスタイルシートをどこでどのように呼び出すのですか?

4

4 に答える 4

4

ブラウザ固有のスタイルシートを使用することは、ASP.NETMVCでも同じです。ifステートメントを配置し、スタイルシートをポイントします。詳しくはこちらをご覧ください。あなたはフォルダ内の_Layout.cshtmlファイルにあなたのスタイルシートステートメントを置くことができますViews\Shared

ASP .NET MVCでは、スタイルシートはContentフォルダーにあります。

ASP .NET MVC 4は、ミニファイとバンドリングを使用します。フォルダ内App_Startを見ると、BundleConfig.csファイルが表示され、内部にbundlesは、cssとjavascriptを含むファイルが表示されます。_layout.cshtlファイルには、これらを参照するコードがあります。bundlesこれは、のようなもの@Styles.Render("~/Content/css")です。

「では、MVC Webサイトのブラウザーごとに異なるスタイルシートをどこでどのように呼び出すのですか?」

タグが含まれているレイアウトファイル内。<head>このような:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>@ViewBag.Title - My ASP.NET MVC Application</title>
        <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
        <meta name="viewport" content="width=device-width" />
        @Styles.Render("~/Content/css")
        @Scripts.Render("~/bundles/modernizr")
        <!--[if IE]>
        <link rel="stylesheet" type="text/css" href="iespecific.css" />
        <![endif]-->

    </head>
    ....
于 2012-11-26T12:03:01.177 に答える
3

条件文を使用する:

<!--[if IE]>
<link rel="stylesheet" type="text/css" href="iespecific.css" />
<![endif]-->

また

<!--[if IE 6]>
<link rel="stylesheet" type="text/css" href="iespecific.css" />
<![endif]-->

また

<!--[if gte IE 6]> (greater then IE6)
<link rel="stylesheet" type="text/css" href="iespecific.css" />
<![endif]-->

使用しているフレームワークがわからないため、「MVCWebサイト」のどこにCSSが配置されるかわかりません。

于 2012-11-26T12:00:36.870 に答える
2

あなたのアプローチは実際にはベストプラクティスではありません。特定のブラウザをターゲットにするのではなく、標準(HTML5やCSS3など)をターゲットにする必要があります。

ターゲットオーディエンスが古いブラウザを使用する可能性が高いと思われる場合は、HTML4とCSS2をターゲットにします。

また...ブラウザごとに異なるスタイルシートを使用するのではなく、CSSの正規化を使用することを検討してください。

個人的な(そして実際に専門的な)経験から、CSS正規化を使用するときに、ブラウザー固有のスタイルシートを作成する必要がある場合でも、グローバルスタイルシートの実装が不十分であることがわかりました...したがって、CSS正規化の上に何かを構築する方が良いでしょうこれは、ブラウザのハックを作成するよりも、グローバルに機能します。

グーグル: HTML5 Boilerplate |CSS Normalization

ここで試してみてください... http://html5boilerplate.com/

あなたが好きかもしれないもう一つの研究はグーグルクロームフレームです

于 2012-11-26T12:26:42.607 に答える
2

IEでこれを試すことができます:

<!--[if IE]>
According to the conditional comment this is IE<br />
<![endif]-->
<!--[if IE 6]>
According to the conditional comment this is IE 6<br />
<![endif]-->
<!--[if IE 7]>
According to the conditional comment this is IE 7<br />
<![endif]-->
<!--[if IE 8]>
According to the conditional comment this is IE 8<br />
<![endif]-->
<!--[if IE 9]>
According to the conditional comment this is IE 9<br />
<![endif]-->
<!--[if gte IE 8]>
According to the conditional comment this is IE 8 or higher<br />
<![endif]-->
<!--[if lt IE 9]>
According to the conditional comment this is IE lower than 9<br />
<![endif]-->
<!--[if lte IE 7]>
According to the conditional comment this is IE lower or equal to 7<br />
<![endif]-->
<!--[if gt IE 6]>
According to the conditional comment this is IE greater than 6<br />
<![endif]-->
<!--[if !IE]> -->
According to the conditional comment this is not IE<br />
<!-- <![endif]-->

特別な構文に注意してください。

gt: greater than
lte: less than or equal to
于 2012-11-26T12:05:21.590 に答える