0

我正在用 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。举个例子让我很容易理解并集成到我的应用程序中......

4

2 回答 2

1

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

这是动态加载样式表的一种方法(在此处讨论)。

<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";

}
于 2012-05-01T14:24:28.727 回答
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 规则对该类名称做出反应,并为每个浏览器为标签着色不同。

于 2012-05-01T14:25:50.060 回答