2009-02-16 77 views
3

我正在製作一個必須在FF/IE6/IE7/Opera/Safari上正確呈現的網站。 IE6是一個遲到的要求(當我完成所有其他瀏覽器時),它必須是可用的,不一定與其他瀏覽器相同。現在我正在調整它,以便它可以在IE6上使用。如何從ASP.NET主題中排除特定的CSS文件?

爲此,我在我的主題中創建了另一個樣式表IE6_override.css。正如您可能已經猜到的那樣,我希望僅在瀏覽器是IE6時才應用它。有條件的評論對此很有幫助。

唯一的問題是 - ASP.NET爲主題文件夾中的每個CSS文件呈現<link>標記,因此無條件地在所有瀏覽器中包含此文件。

我想堅持主題,因爲我們以後可以爲我們的應用程序創建更多皮膚(如果客戶需要),這是完全可行的。

有沒有什麼辦法可以讓ASP.NET從它的auto-includes中排除這個特定的.CSS文件?

加了:謝謝你的回答!最後我找到了一個解決方法。由於其他造型問題,我早些時候使用了asked about,所以我不得不使用IE6解決方法。因此,我將所有IE6特定的規則添加到類選擇器中,然後在加載頁面時通過JS將其刪除。 :)

回答

5

我不認爲你可以。正是出於這個原因,我們停止使用App_Themes文件夾。這也節省了我們必須在每個css文件前加上一個數字,以便按正確的順序加載。

1

確實無法排除特定的CSS文件。但是,似乎有幾個解決方法located here。我建議閱讀這些內容並選擇合適的解決方案(如果有的話)。

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); 
+0

,我不得不刪除一個CSS文件從我的母版頁中引用,所以我這樣做:`Page.Header.Controls.Remove(Page.Master.FindControl(「cssBootstrap」));`確保添加`runat =「server」`並將一個id分配給你的CSS參考。 – Danish 2015-10-06 23:21:03

相關問題