2014-02-05 58 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