2014-02-05 93 views
0

我最近把我的web應用程序從VB轉換爲C#。有一個剩餘的問題 - 轉換後,CSS應用於導航菜單中我的Site.Master不再工作。它的行爲好像根本沒有CSS。ASP.Net菜單CSS不適用

我也做了以下內容:

  • 我驗證過的CSS語法
  • 我已經刪除並重新添加的.css文件
  • 我已經刪除並重新添加引用到Site.Master
  • 我已將內容複製到另一個.css文件並更新了引用
  • 我已經創建了另一個測試項目,並從主要的Site.Master的內容項目,使用.css文件,並驗證了CSS和引用確實有效

所以我的問題是這樣的:有沒有什麼地方在CSS可以只爲一個應用程序的某些部分被禁用的ASP.Net Web應用程序?

這個問題現在只發生在轉換後,並且其他Web項目中的語法是有效的,所以在我看來,它必須在應用程序本身中切換一些東西來破壞它。

這裏是我的代碼,有些清理:

我的標記:

<head id="Head1" runat="server"> 
    ... 
    <link href="~/Styles/Site.css" rel="stylesheet" type="text/css" /> 
    ... 
</head> 
<body> 
... 
    <asp:Menu ID="Menu1" runat="server" CssClass="menu" EnableViewState="False" IncludeStyleBlock="False" 
       Orientation="Horizontal" StaticDisplayLevels="1"> 
     <Items> 
      <asp:MenuItem Text="PTS Home" Value="PTS Main" NavigateUrl="Default.aspx">...</asp:MenuItem> 
      <asp:MenuItem Text="Admin" Value="Admin">...</asp:MenuItem> 
      <asp:MenuItem Text="Estimating" Value="Estimating">...</asp:MenuItem> 
      <asp:MenuItem Text="Purchasing" Value="Purchasing">...</asp:MenuItem> 
      <asp:MenuItem Text="Commissions" Value="Commissions">...</asp:MenuItem> 
      ... 
     </Items> 
    </asp:Menu> 
</body> 

我的CSS:

div.menu 
{ 
    padding: 0px 0px 0px 0px; 
    background-color: #507F6D; 
    z-index: 1; 
} 

div.menu ul 
{ 
    list-style: none; 
    margin: 0px; 
    padding: 1px; 
    width: auto; 
    z-index: 1; 
} 

div.menu ul li a:active 
{ 
    background-color: #37725C; 
    color: #cfdbe6; 
    text-decoration: none; 
    z-index: 1; 
} 

它應該是什麼樣子

Correct appearance

什麼它實際上看起來像

Incorrect appearance

+0

發佈一些代碼,像這樣我不認爲有人可以幫助您 – theLaw

+0

發佈鏈接到css文件,因爲它出現在您的site.master。當你查看網頁的源代碼,然後點擊鏈接到css文件時,會發生什麼? – Pete

+0

完成。當我點擊鏈接時,我迎接正確的CSS文件。 – Travis

回答

1

找到了答案,多虧了皮特的意見指導我在正確的方向。

控件的RenderingMode設置爲「Default」 - 顯然,在VB中,默認行爲是List,但在C#中它是Table。 Div CSS在項目上是無用的,所以沒有格式。將它設置爲列表和魔法!

0
div.menu 
{ 
    padding: 0px 0px 0px 0px; 
    background-color: #507F6D; 
    z-index: 1; 
} 

div.menu ul 
{ 
    list-style: none; 
    margin: 0px; 
    padding: 1px; 
    width: auto; 
    z-index: 1; 
} 

div.menu ul li a 
{ 
    background-color: #37725C; 
    color: #cfdbe6; 
    text-decoration: none; 
    padding: 0 5px; 
    border: 1px solid greenyellow; 
} 

div.menu ul li a:active 
{ 
    background-color: #37725C; 
    color: #cfdbe6; 
    text-decoration: none; 
    z-index: 1; 
} 
0

取出股利。在你的CSS,我認爲控制不創建一個div

http://msdn.microsoft.com/en-US/en-en/library/ms366731(v=vs.100).aspx

+0

它似乎是相關的 - 轉換後的程序正在創建具有td元素的表格。但是,全新的測試應用程序會創建一個div,因此看起來好像有一個設置菜單的方式。 – Travis

+0

它創建div ... –

+0

如果你刪除div,規則將被應用於class =「menu」的每個元素,而不僅僅是一個div下的那個,這就是爲什麼我寫這個。你試過了嗎? – theLaw