在ASP.NET中根据IE版本选择不同的CSS文件
我目前正在使用HTML条件语句根据IE版本选择CSS文件。如何在服务器端执行此操作在ASP.NET中根据IE版本选择不同的CSS文件,asp.net,html,Asp.net,Html,我目前正在使用HTML条件语句根据IE版本选择CSS文件。如何在服务器端执行此操作 <!--[if IE 6]> <link rel="stylesheet" type="text/css" href="style/ie6.css" media="screen" /> <![endif]--> <!--[if IE 7]> <link rel="stylesheet" type="text/css" href="style/i
<!--[if IE 6]>
<link rel="stylesheet" type="text/css" href="style/ie6.css" media="screen" />
<![endif]-->
<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="style/ie7.css" media="screen" />
<![endif]-->
<!--[if IE 8]>
<link rel="stylesheet" type="text/css" href="style/ie8.css" media="screen" />
<![endif]-->
- 你的目录结构是什么
- 您使用的是什么ASP.NET框架、Webforms、MVC
/Content/CSS/ie6.CSS
一个好主意是始终使用反斜杠/
,它将指向网站根目录并将文件夹附加到从那里开始的路径中
其他一切在ASP.NET中都能很好地工作,请记住唯一的区别是,普通HTML页面不需要任何服务器来运行,因此它会选择您在浏览器中打开文件的所有位置,PHP/ASP.NET需要运行服务器,因此您需要尊重服务器路径
顺便说一句,如果你要创建一个新网站,我建议你…不知道如何使用aspx,但是有很多方法可以使用aspx 根据HTTP请求确定浏览器类型:
System.Web.HttpBrowserCapabilities browser = Request.Browser
然后相应地呈现页面:
<% if (browser.Browser == "IE" && browser.MajorVersion == 6) { %>
<link rel="stylesheet" type="text/css" href="style/ie6.css" media="screen" />
<% } else if (browser.Browser == "IE" && browser.MajorVersion == 7) { %>
<link rel="stylesheet" type="text/css" href="style/ie7.css" media="screen" />
<% } else if (browser.Browser == "IE" && browser.MajorVersion == 8) { %>
<link rel="stylesheet" type="text/css" href="style/ie8.css" media="screen" />
<% } %>
我相信您必须在页面的
元素中设置runat=“server”
属性才能工作
但这不是一个很好的方法。更好的方法是使用JavaScript或问题中使用的方法在客户端执行。我认为您应该坚持当前的解决方案,但如果需要在服务器端执行,您可以始终检查用户代理,然后注册样式表 像这样的东西
Dim userAgent As String = Request.UserAgent
If (userAgent.IndexOf("MSIE 6.0") > -1) Then
HtmlLink css = new HtmlLink();
css.Href = "css/ie6.css";
css.Attributes["rel"] = "stylesheet";
css.Attributes["type"] = "text/css";
css.Attributes["media"] = "all";
Page.Header.Controls.Add(css);
End If
阅读更多关于的信息,尝试以下方法:
<link runat="server" rel="stylesheet" type="text/css"
ie:href="style/ie6.css" ie7:href="style/ie7.css" ie8:href="style/ie8.css"
ie9:href="style/ie8.css" ie0plus:"style/ie8.css"
media="screen" />
如果需要,也可以添加自己的模式文件(不要编辑现有的模式文件)。添加一个后,运行:
aspnet_regbrowsers -i
请注意。接受答案(将代码添加到
):
如果
设置为runat=“server”
,并且您(或任何其他代码)试图更改磁头的。控件集合,则会导致错误
AJAX控件工具包在某些情况下会执行此操作。类似于此..,我有来自html的代码,并在aspxTanks balexandre中重写,用于编辑我的问题。@YusanSusandi在中,您可以了解如何正确使用标记,以及在编写时,您可以简单地打开橙色的?
符号,打开一个带有标记格式的简单对话框,您可以使用该格式。aspx中的介于“”之间读取为comentar,因此不会执行。如何在aspx中编写?我放在标签里的代码。。。不,这是您的编辑器高亮显示,代码将按原样运行,并将准确输出所需内容。只需尝试一下简单的CSS规则,例如body{background color:red;}
,并更改其他3个文件(ie7.CSS
、ie8.CSS
和.html
文件)中的颜色-如果客户端正在欺骗其用户代理,请确保red
背景位于ie6.CSS
),他们应该得到他们所拥有的任何渲染问题:P
aspnet_regbrowsers -i