2011-03-04 103 views
3

我有一個母版頁適用於我的所有頁面,但母版頁正在做它的工作,但似乎無法解析我擁有的頁面的CSS文件地址子文件夾。如何將母版頁和CSS應用到子頁面

我有這樣的一組文件夾:

 
RootContent 
     UsersContent 
     AdminContent 

由於母版頁和CSS文件都在根含量,當母版頁嘗試查找內部UsersContent CSS文件或AdminContent無法找到它。

我使用JavaScript來檢測瀏覽器,併爲大多數瀏覽器和另一個IE6文件正確設置CSS,因爲在這裏,任何想法都需要?

<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文件是在我的根文件夾不是我一直使用ResolveClientUrl爲此,孩子的

+0

對於初學者,將所有CSS樣式表移動到根目錄下的常用CSS文件夾中。他們不需要位於不同的/受限制的文件夾中:) – IrishChieftain 2011-03-04 16:07:15

+0

您是否在輸出中查看了源代碼以查看呈現給瀏覽器的實際路徑? – Infotekka 2011-03-04 16:08:48

+0

答案可能是'〜/ RootContent/UsersContent/StyleSheet.css',但我不是100%確定的。 – Greg 2011-03-04 16:08:59

回答

2

最簡單的方法在您的web項目下添加App_Themes文件夾。添加一個主題,並在該主題下添加所有的CSS文件包括其各自的圖像目錄。

在你的web.config中,添加

它會自動添加到每一頁。

注意: - 在這種情況下,所有的CSS將被應用。如果你有瀏覽器特定的CSS,那麼這不是方法。

[SEE UPDATED] 

像「iespecific.css」 CSS文件由IE 6,而不是其他瀏覽器加載,使用下面的代碼在你的網頁的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]--> 

例如,爲了測試IE的所有版本大於或等於6的版本中,可以使用

<!--[if gte IE 6]> 
<link rel="stylesheet" type="text/css" href="iespecific.css" /> 
<![endif]--> 

上面的代碼示例工作,因爲一個普通瀏覽器看到整個塊作爲HTML因爲它們被包含在「」中。但IE 5或更高版本會嘗試解析該塊,以查看它是否具有特定的指令。

您也可以使用此方法排除某個樣式表。例如,要排除CSS文件「not-ie。CSS」從IE 6,使用:

<![if !(IE 6)]> 
<link rel="stylesheet" type="text/css" href="not-ie.css" /> 
<![endif]> 

通知操作員‘IE‘這是NOT操作者,從而導致以下如果表達式僅被使用的語句。‘IE 6’不是’前一’!

同樣,上述代碼的工作原理是因爲普通瀏覽器會將「」和「< [endif]>」解釋爲不識別的HTML標籤,而忽略它們。在HTML驗證器中驗證爲不正確,因爲它不使用有效的HTML標記。一個版本號。例如,下面的加載樣式表僅當瀏覽器不是IE 5或以上:

<![if !IE]> 
<link rel="stylesheet" type="text/css" href="not-ie.css" /> 
<![endif]> 

微軟的這個非標準功能文檔可以在http://msdn2.microsoft.com/en-us/library/ms537512.aspx

發現由於文件沒有指定這些功能僅適用於Windows版本的IE,我假設它們也適用於Macintosh版本。我無法驗證這一點。

+0

那麼是不是,我有每個瀏覽器 – Termiux 2011-03-04 16:20:47

+0

THX不同的CSS文件很多!它確實有效!一直有麻煩這個小時thx! – Termiux 2011-03-04 16:38:31

0

。你可以試試,而不是ResolveUrl?這裏的a post討論的差異。

+0

仍然沒有工作,但我僅僅指剛認識生成的代碼確實是../Stylesheet.css但仍沒有應用CSS – Termiux 2011-03-04 16:19:55

0

您是否嘗試過將runat="server"添加到鏈接標記?爲我工作。

相關問題