如何制作2 ASP:菜单控制渲染在同一行中



我试图在同一行中添加第二个菜单控件,但我无法做到。

<div class="clear hideSkiplink">
            <asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">
                <Items>
                    <asp:MenuItem NavigateUrl="~/Default.aspx" Text="Home"/>
                    <asp:MenuItem NavigateUrl="~/About.aspx" Text="About"/>
                </Items>
            </asp:Menu>
            <asp:Menu ID="SmallMenu" runat="server" CssClass="smallMenu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">
                <Items>
                    <asp:MenuItem NavigateUrl="~/Settings.aspx" Text="Settings"/>
                    <asp:MenuItem NavigateUrl="~/Admin.aspx" Text="Admin"/>
                </Items>
            </asp:Menu>
        </div>

尝试使用CSS格式化它,但它不起作用。第二个菜单出现在新行中。我在这里做错了什么?

div.menu
{
    padding: 4px 0px 4px 8px;
    float:left;
    width:500px;
}
div.smallMenu
{
    padding: 4px 8px 4px 0px;
    width: 300px;
    float: right;
}

编辑:如果我将它们放入Divs并将第二个浮动在右侧,但现在右侧的菜单一半出现在右侧(外部)页。

这听起来像是要使用浏览器的客户端调试工具进行调试。从您描述的内容(右手菜单的分裂)中听起来好像CSS继承层次结构中更高的东西正在影响该DIV的位置。

您可以尝试的另一件事是菜单的进一步嵌套:

<DIV>
  <DIV style="float:left;">
     <DIV style="float:right;">
        <asp:Menu />
     </DIV>
     <asp:Menu />
  </DIV>
</DIV>       

eta:这是一个有类似问题的帖子。前2个答案(分别为7分和5分)有一些您可以尝试的事情以及一些其他链接。

虽然我可能看不到这样做的很好的理由,但请尝试用CSS造型 - 然后用DIV标签封闭每个标签。

同时,使用具有适当静态,动态和超级值的单个菜单项,您可以完成。

最新更新