最近項目中涉及到引用多模闆切換背景頁面問題, 在作出母版頁後内容頁無法完整引用母版頁中的CSS樣式.
注意:我說的是不完整引用CSS樣式 而不是不能引用. 到這估計有人會說這是母版頁中的URL重置問題, 其實不是.
母版頁中有多處使用相對路徑文法引用圖像,樣式表,Javascript檔案或其他頁面子類的URL資源, 如果模闆頁和内容頁在同一個目錄下,這樣的代碼能夠正常運作, 反之如果不在,就出現所謂的母版頁的URL重置問題. 導緻内容頁無法正确引用資源.這個問題容易解決.
母版頁URL重置解決方案:
A:在定義主機闆頁引用URL資源時, 使用項目中的絕對路徑來定義, 例如引用一個圖檔<img src="/IssuesNetworkUI/Images/index.jpg"/>
或者在伺服器控件中使用相對URL或與應用程式相關的URL來代替靜态标記. 例如同意是圖檔 <asp:Image ImageUrl="~/Images/Index.jpg">
這樣就能保證内容頁面完整引用
問題是:我在主機闆頁中使用絕對路徑 在該主機闆頁下效果也正常顯示, 但惟獨有一個頁面CSS樣式引用進來了 證明不是URL重置問題 但是樣式引用不完整 打亂原來的Div+CSS的布局. 當初我以為是引用頁面編碼格式問題,但嘗試後發現問題并在這. 解決方法如下:
我直接把主機闆頁 引用的樣式拖拽到Notepad編輯器中發現整個CSS編碼格式為預設的 ANSI
這個問題就明白了, 大多是在VS2008生成的CSS檔案格式引用頁面資源一般定義為UTF-8格式.
如果直接将"ANSI"格式的檔案添加進去,由于編碼的問題,使得index.aspx頁面都不到css檔案裡面的資訊或者出現引用不完全的現象打亂了頁面Div+CSS布局,而導緻控制不了樣式.這時隻要将檔案的編碼格式修改成"UTF-8"格式添加項目中重新引用. 添加到項目中效果可以呈現出來
本文轉自chenkaiunion 51CTO部落格,原文連結:http://blog.51cto.com/chenkai/765375