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

C# 用于浏览器兼容性的代码或javascript,c#,javascript,asp.net,css,C#,Javascript,Asp.net,Css,我正在asp.net-c中开发一个web应用程序 如果我将定义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="

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

如果我将定义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吗。举例说明对我来说很容易理解并集成到我的应用程序中…

这不是一种常见的方法。但是,请考虑对于每个浏览器类型<>强> >单独的样式表。规则的名称(类名)在每个样式表中都是相同的。然后,只加载所需的样式表

下面是一种动态加载样式表()的方法


受保护的无效页面加载(对象发送方、事件参数e)
{
System.Web.HttpBrowserCapabilities browser=请求.browser;
if(browser.browser.ToLower()=“ie”)
myLinkstyle.Href=“CSS/IEStyles.CSS”;
其他的
myLinkstyle.Href=“CSS/OtherBrowserStyle.CSS”;
}
以下是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规则对该类名做出反应,并为每个浏览器的标签添加不同的颜色。

我想问一下,为什么需要特定于浏览器的主题。维护和测试对您来说并不容易…我质疑他们为什么也需要特定于浏览器的文本…尝试检测特定浏览器几乎总是错误的方法…但您没有告诉我们您认为浏览器检测将帮助您解决什么问题,因此我们无法建议更好的问题。他只是在测试代码pi只是举一个例子,我正在寻找解决这个问题的最佳方法……你说的“其他方法”是什么意思?按照同样的逻辑,你可以像@DOK所说的那样加载不同的样式表,但是如果你想要基于不同的浏览器模式的不同样式,你会进行浏览器嗅探,即使是在服务器端或客户端进行的。告诉我什么不适合你。当我开发一个网站时,它在Mozilla FF中运行良好,但在其他浏览器(如chrome)中加载时,它看起来完全不同,例如asp web控件(如button),dropdownlist等…**我使用了一个免费的版面模板**所以我能做什么…我是第一次开发任何网站…所以请帮助我
if(navigator.userAgent.test(/firefox/i))
    document.body.className += ' ff';
else if(navigator.userAgent.test(/msie/i))
    document.body.className += ' ie';
// else => default