我有一个母版页面可以应用于我的所有页面,但母版页正在进行其工作,但似乎无法解析我在子文件夹中的页面的CSS文件地址。
我有一组像这样的文件夹:
RootContent UsersContent AdminContent
由于母版页和css文件位于Root内容上,当母版页尝试在UsersContent或AdminContent中找到css文件时,它无法找到它。
我正在使用JavaScript来检测浏览器并为大多数浏览器正确设置css,为IE6设置另一个文件,因为这里需要任何想法吗?
<script type="text/javascript">
if((BrowserDetect.browser.toString() == "Firefox") && (BrowserDetect.version.toString() == "3.5"))
{
document.write('<link rel="Stylesheet" href="<%=ResolveUrl("~/StyleSheet.css") %>" type="text/css" />');
}
else if((BrowserDetect.browser.toString() == "Explorer") && (BrowserDetect.version.toString() == "6"))
{
document.write('<link rel="Stylesheet" href="~/StylesheetIE6.css" type="text/css" />');
}
</script>
在上面的代码中,我尝试<% ResolveUrl("~/StyleSheet.css") %>
但是没有用,它在同一个文件夹中有效但在孩子上没有。
编辑:只是为了澄清我的CSS文件在我的根文件夹上而不在孩子身上
答案 0 :(得分:2)
最简单的方法在您的Web项目下添加App_Themes文件夹。添加主题并在该主题下添加所有css文件包括其各自的图像目录。
在您的web.config中,添加
它会自动添加到每个页面。
注意: - 在这种情况下,所有css都将被应用。如果你有特定于浏览器的CSS,那就不是这样了。
[SEE UPDATED]
要由IE 6而不是其他浏览器加载的“iespecific.css”之类的CSS文件,请在网页的HEAD部分使用以下代码:
<!--[if IE 6]>
<link rel="stylesheet" type="text/css" href="iespecific.css" />
<![endif]-->
同样,对于任何版本的IE 5(包括5.0,5.01,5.5等),请使用以下内容:
<!--[if IE 5]>
<link rel="stylesheet" type="text/css" href="iespecific.css" />
<![endif]-->
要检测IE 5.5的发布版本,您需要以下代码:
<!--[if IE 5.5000]>
<link rel="stylesheet" type="text/css" href="iespecific.css" />
<![endif]-->
例如,要测试大于或等于版本6的IE的所有版本,可以使用
<!--[if gte IE 6]>
<link rel="stylesheet" type="text/css" href="iespecific.css" />
<![endif]-->
上面的代码示例有效,因为普通浏览器将整个块视为HTML注释,因为它们包含在“”中。但是,IE 5或更高版本将尝试解析块以查看它是否具有特定于它的指令。
您还可以使用此方法排除某个样式表。例如,要从IE 6中排除CSS文件“not-ie.css”,请使用:
<![if !(IE 6)]>
<link rel="stylesheet" type="text/css" href="not-ie.css" />
<![endif]>
注意操作员“!”紧接在“IE”之前。这是NOT运算符,只有在浏览器不匹配表达式“IE 6”时才会使用后面的语句。
同样,上述代码有效,因为普通浏览器会解释“”和“&lt; [endif]&gt;”作为它无法识别的HTML标记,并忽略它们。但是,此代码在HTML验证器中不会验证为正确,因为它不使用有效的HTML标记。
请注意,您也可以在不指定版本号的情况下测试IE。例如,仅当浏览器不是IE 5或更高版本时,以下内容才会加载样式表:
<![if !IE]>
<link rel="stylesheet" type="text/css" href="not-ie.css" />
<![endif]>
可以在http://msdn2.microsoft.com/en-us/library/ms537512.aspx
找到Microsoft有关此非标准功能的文档由于文档没有指定这些功能仅适用于Windows的Windows版本,我认为它们也适用于Macintosh版本。我虽然无法验证这一点。
答案 1 :(得分:0)
为此,我一直使用ResolveClientUrl
。你可以尝试而不是ResolveUrl
吗?这里是a post讨论差异。
答案 2 :(得分:0)
您是否尝试将runat="server"
添加到链接代码?为我工作。