根据浏览器加载不同的CSS文件

7

如何根据浏览器类型加载不同的CSS。 我想在asp.net中为IE和Firefox加载不同的CSS。 我使用的是IE8及以上版本和Firefox 3及以上版本。 请帮助我。

5个回答

6

Request.Browser可以提供完整的浏览器信息,您可以在此处检查版本、浏览器名称和类型等。

if(Request.Browser.Browser == "IE")
    {
        HtmlLink css = new HtmlLink();
        css.Href = ResolveClientUrl("~/style/StyleSheet.css");
        css.Attributes["rel"] = "stylesheet";
        css.Attributes["type"] = "text/css";
        css.Attributes["media"] = "all";
        Page.Header.Controls.Add(css);
    }

你有检查过Request.Browser的链接吗?你可以从中获取所有信息。另外,我已经给你提供了代码,让你知道如何在运行时包含CSS。 - Muhammad Akhtar
同样的方法也适用于Mozilla和Chrome浏览器,如果还有其他浏览器也可以这样做。 - Muhammad Akhtar

4
您可以使用以下CSS条件语句,在Firefox和其他浏览器加载主CSS文件后,为IE加载CSS文件。这样,您就可以重复使用大量相同的CSS代码,并仅覆盖IE无法正确处理的属性:
<!--[if lte IE 6]>
<link rel="stylesheet" type="text/css" href="styles/browser.css" />
<![endif]-->

上面的条件语句适用于IE6及以下版本,但您可以根据需要进行设置。
您可以在这里了解更多关于CSS条件语句的内容:http://www.quirksmode.org/css/condcom.html

3

您的主CSS应该是大多数浏览器(包括Firefox)支持的CSS。然后,您可以使用HTML条件语句来加载IE特定的样式表。

    <!--[if gt IE 7]>
    According to the conditional comment this is Internet Explorer greater than IE8<br />
<link rel="stylesheet" type="text/css" href="IEgreatethan7.css">

    <![endif]-->

或者如果您想更具体一些

    <!--[if IE 8]>
    According to the conditional comment this is Internet Explorer equal to IE8<br />
<link rel="stylesheet" type="text/css" href="IE8.css">

    <![endif]-->

我应该把这段代码放在JavaScript还是样式表中? - Ram
只需在HTML的head部分 - Michal

2
您可以这样使用。
<!--[if IE 7]>
     <link href="style-ie.css" rel="stylesheet" type="text/css" />
<![endif]-->

感谢您的选择。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接