用于浏览器兼容性的代码或javascript

时间:2012-05-01 14:17:04

标签: c# javascript asp.net css

我正在asp.net开发一个 Web应用程序 - c#....

如果我要定义css类,如:

.IEStyle{color:Red;}
.FFStyle{color:Blue;}
.DefaultStyle{color:Black;}    

我只为标签尝试过....

<asp:Label ID="lblSample" runat="server" ie:CssClass="IEStyle"  
mozilla:CssClass="FFStyle" CssClass="DefaultStyle" ie:Text="You are in Internet  
explorer." mozilla:Text="You are in Firefox." Text="You are in other browser." />

它很好,但它不可能一直......我仍然面临浏览器兼容性的问题....任何人建议我我正在寻找javascript 。通过示例,我很容易理解并融入我的应用程序......

2 个答案:

答案 0 :(得分:1)

这不是一种常见的方法。但是,请考虑为每种浏览器类型分别设置样式表。规则(类名)的名称在每个样式表中都是相同的。然后,只加载你想要的样式表。

以下是动态加载样式表(discussion here)的一种方法。

<link id="myLinkstyle" runat="server" rel="Stylesheet" type="text/css">

protected void Page_Load(object sender, EventArgs e)

{

System.Web.HttpBrowserCapabilities browser = Request.Browser;

if (browser.Browser.ToLower() == "ie")

myLinkstyle.Href = "CSS/IEStyles.css";

else

myLinkstyle.Href = "CSS/OtherBrowserStyle.css";

}

答案 1 :(得分:0)

这是css:

/*default*/
label{color : #000;}
/*ie*/
.ie label{color : #ff0000;}
/*ff*/
.firefox label{color : #0000ff;}

这是js部分:

if(navigator.userAgent.test(/firefox/i))
    document.body.className += ' ff';
else if(navigator.userAgent.test(/msie/i))
    document.body.className += ' ie';
// else => default

以下是发生的情况:javascript检测浏览器名称并在body元素上设置类名。您的css规则会对该类名做出反应,并为每个浏览器对标签进行不同的着色。

相关问题