0

我刚刚实现了启动新网站时出现的 VS 2010 的基本水平菜单。页面在我的根目录中看起来不错。

当我创建一个 /blog/ 应用程序 (blogengine.net) 时,我进行了一些更改……将我自己的徽标、favicon 等放在那里,并尝试将我的菜单放在那里。它似乎与任何其他样式表中的任何其他菜单类都没有冲突。我什至在代码和样式表中将类重命名为 topmenu 以确保。奇怪的是,它在设计模式下的 VS 中看起来不错。

所以我检查了三次,发现没有 .css 冲突,所以代码仍然是这样的:

            <div class="clear hideSkiplink">
            <asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false"
                IncludeStyleBlock="false" Orientation="Horizontal">
                <Items>
                    <asp:MenuItem NavigateUrl="http://rtn.org/Default.aspx" Text="Home" />
                    <asp:MenuItem NavigateUrl="http://rtn.org/About.aspx" Text="About RTN" />
                    <asp:MenuItem NavigateUrl="http://rtn.org/resources.aspx" Text="RTN Resources" />
                    <asp:MenuItem NavigateUrl="http://rtn.org/advertise.aspx" Text="Advertise with RTN" />
                    <asp:MenuItem NavigateUrl="http://rtn.org/donate.aspx" Text="Donate to RTN" />
                </Items>
            </asp:Menu>
        </div>

CSS看起来像这样:

div.hideSkiplink
{
background-color: #3a4f63;
width: 100%;
}

div.menu
{
padding: 4px 0px 4px 8px;
}

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

div.menu ul li a, div.menu ul li a:visited
{
background-color: #465c71;
border: 1px #4e667d solid;
color: #dde4ec;
display: block;
line-height: 1.35em;
padding: 4px 20px;
text-decoration: none;
white-space: nowrap;
}

div.menu ul li a:hover
{
background-color: #bfcbd6;
color: #465c71;
text-decoration: none;
}

div.menu ul li a:active
{
background-color: #465c71;
color: #cfdbe6;
text-decoration: none;
}

但是正如您从这张图片中看到的那样,由于某种原因,在我的 /blog/ 子目录母版页中,无论出于何种原因,显示:块都无法正常工作,就像在我的根母版页中一样:

菜单

有人知道为什么会这样吗?同样,它在设计模式下的 VS 中看起来不错。只是当我上传它时, display:block 无法正常工作。我已经摆弄了几个小时,但无法在我的 /blog/ 子目录中重现该菜单。任何建议将不胜感激!

4

1 回答 1

1

几乎总是会发生这种情况,因为您的 CSS 的相对链接没有链接到正确的位置。在您的其他页面上,样式表显示正确,因为相对链接指向您正确的站点根目录。但是,在您的子域上,根最有可能是该子域,而不是您网站的实际根。

例如,如果您的链接通常是:

<link rel="stylesheet" type="text/css" href="css/mystyle.css">

该链接指向http://yoursite.com/foo/css/style.css

但是,当您从博客链接时,即使相对链接相同,它现在也链接到http://yoursite.com/blog/foo/css/style.css

要修复它,请尝试放入绝对链接以确保这是问题所在:

 <link rel="stylesheet" type="text/css" href="http://yoursite.com/blog/foo/css/style.css">

如果在尝试之后它有效,请返回并确保这些相关链接到达正确的位置并且您足够具体。

于 2012-12-31T20:07:59.553 回答