我正在制作一个必须在FF / IE6 / IE7 / Opera / Safari上正确呈现的网站。 IE6是一个迟到的要求(当我完成所有其他浏览器时),它必须是可用的,不一定与其他浏览器相同。现在我正在调整它以便它也可以在IE6上使用。
为此,我在我的主题中创建了另一个样式表IE6_override.css
。正如您可能已经猜到的那样,我希望它仅在浏览器是IE6时应用。有条件的评论对此非常有用。
唯一的问题是 - ASP.NET为主题文件夹中的每个CSS文件呈现<link>
标记,因此无条件地在所有浏览器中包含此文件。
我想坚持主题,因为我们可以在以后为我们的应用程序创建更多皮肤是完全可行的(如果客户希望这样做)。
有什么办法可以让ASP.NET从其自动包含的?
中排除这个特定的.CSS文件 已添加:感谢您的回答!最后我找到了一个解决方法。由于我之前asked about的一些其他样式问题,我也被迫使用IE6解决方法Javascript。因此,我使用 .ie6_dummy
类选择器将所有IE6特定规则作为前缀,然后在页面加载时将其删除。 :)
答案 0 :(得分:6)
是的,你可以......你可以在后面的代码中删除特定的页眉控件。 css文件是通过主题自动添加的,但是你可以在之后再删除它们。例如,你可以放入主文件的页面加载:
Page.Header.Controls.Remove(YourCssFile);
或者,如果您想同时删除所有css文件:
var themePath = string.Format("~/App_Themes/{0}", Page.Theme);
var removeCandidate = Page.Header.Controls.OfType<HtmlLink>().Where(link => link.Href.StartsWith(themePath)).ToList();
removeCandidate.ForEach(Page.Header.Controls.Remove);
答案 1 :(得分:5)
我认为你不能。出于这个原因,我们停止使用App_Themes文件夹。这也节省了我们必须为每个css文件添加一个数字前缀,以便按正确的顺序加载。
答案 2 :(得分:1)
实际上,不可能排除特定的CSS文件。但是,似乎有几种解决方法located here。我建议阅读这些并选择合适的解决方案(如果有的话)。
答案 3 :(得分:1)
网上有一些帖子似乎可以解决您的问题 - 寻找“asp.net主题中的条件评论”我遇到了这些看起来可能会有所帮助的帖子: