2011-08-11 25 views
145

我有一個使用Razor視圖引擎在ASP.NET MVC中運行的大型網站。@media媒體查詢和ASP.NET MVC剃刀語法衝突

我有一個基礎樣式表,其中包含整個網站的所有通用樣式。然而,有時候,我在頁面的<head>中有頁面特定的樣式 - 通常這是一行或兩行。

我不是特別喜歡把CSS放在<head>中,因爲它不是嚴格區分顧慮,但對於一兩行,確實是特定於該頁面的,我不喜歡附加另一個文件並添加到帶寬。

我有,雖然在這裏我想提出一個頁面特定媒體查詢到<head>一個實例,但由於媒體的查詢使用@符號和括號{}它的衝突與剃刀語法:

@section cphPageHead{ 
    <style> 
     /* PAGE SPECIFIC CSS */ 
     ... 

     @media only screen and (max-width : 960px) <-- the @ symbol here is clashing! 
      { 
       ... } 
      } 
    </style> 
} 

有沒有辦法解決這個問題?

+3

我仍然認爲''CSS樣式'應該在CSS文件中,特別是對於「大型網站」。頁面上的線性CSS不是最佳實踐。 * PS:我的意見* – AlexC

回答

330

使用雙@@符號。那會逃跑@符號和正確呈現@media在客戶端

5

還記得後雙@@添加一個空格:

@@ media only screen and (max-width : 960px) 

@@media沒有空間也沒有爲我工作。

+1

使用壓縮CSS時遇到類似問題;我認爲@@被文字所包圍,因此剃刀努力去解讀它。我選擇在@@之前添加空格。謝謝你的提示。 – Anthony