Javascript 哪个html容器允许在隐藏垂直项时,子项向上移动?

Javascript 哪个html容器允许在隐藏垂直项时,子项向上移动?,javascript,jquery,asp.net,html,css,Javascript,Jquery,Asp.net,Html,Css,我的应用程序有一个垂直菜单。每个菜单都是一个链接按钮。这些链接按钮放在html表格单元格中,我创建它们并将它们放置在后面的ASP.NET代码中。 要创建菜单,我需要menuCell.Controls.Add(newMenu) 当我点击一个有sumenus的链接时,它显示在主链接按钮下面: 当我再次单击它时,子菜单必须隐藏,但它们所占据的位置一直保持在那里。我使用jquery来实现这一点: function toggleSubMenu(smenu) { $('.'+smenu')

我的应用程序有一个垂直菜单。每个菜单都是一个链接按钮。这些链接按钮放在html表格单元格中,我创建它们并将它们放置在后面的ASP.NET代码中。

要创建菜单,我需要
menuCell.Controls.Add(newMenu)
当我点击一个有sumenus的链接时,它显示在主链接按钮下面:

当我再次单击它时,子菜单必须隐藏,但它们所占据的位置一直保持在那里。我使用jquery来实现这一点:

function toggleSubMenu(smenu) {
        $('.'+smenu').toggle();
    }

查看Munu2和菜单3的空白空间。

所以主要的目的是移除这个空间。 是否有任何Asp.NET占位符或容器可以自动生成它?或者我必须使用jQuery手动进入Menu3和它下面的所有菜单吗

完整的html代码:MenuCell保留菜单。同样,每个菜单都被创建并放置在ASP.NET代码后面

<body MS_POSITIONING="Gridlayout">
    <!-- Logo -->
    <form id="Menu" method="post" runat="server">
        <table id="mainTable" style="Z-INDEX: 101; LEFT: 0px; POSITION: absolute; TOP: 0px" tabIndex="-1" height="800" cellSpacing="0" cellPadding="0" border="0" runat="server" width="125px">
            <tr align="left">
                <td style="WIDTH: 125px" tabIndex="-1" vAlign="bottom" align="middle" colSpan="2" height="55"><IMG id="imgLogo" tabIndex="-1" height="50" width="50" align="middle" border="0" runat="server">&nbsp;
                </td>
            </tr>
            <TR>
                <TD style="WIDTH: 125px" vAlign="top" align="middle"></TD>
                <TD vAlign="top" align="left" colSpan="1" rowSpan="2"><IMG id="imgLine" style="WIDTH: 1px" height="720" hspace="0" width="1" vspace="0" border="0" runat="server"></TD>
            </TR>
            <tr align="left">
                <td id="menuCell" style="WIDTH: 125px" tabIndex="-1" vAlign="top" align="left" height="740" runat="server"></td>
            </tr>
        </table>
    </form>
</body>

ASP.NET将在服务器端处理代码。加载页面后,只能使用Javascript或Javascript库(如jQuery)操纵DOM。

我将每个子菜单放在Asp.net面板中:

Panel psubmenu = new Panel();
HyperLink hylSMenu = new HyperLink();
psubmenu.Controls.Add(hylSMenu);
然后将面板放入整个容器内:

menuCell.Controls.Add(psubmenu);

像这样,我切换
面板
而不是每个子菜单。

为什么要使用表格作为菜单?似乎一个标准的列表将适合那里…相对位置将做的把戏。如果子菜单不再占用空间,下面的相关项也会上升。如果使用表,则需要隐藏
,但正如Samuel Caillerie所说,大多数人使用
作为列表。然后需要隐藏
  • +10000以使用列表代替表。它的语义更丰富,效果更好!餐桌上的菜单,我们还在90年代吗?选择结构化内容,如
    或带有专用类的嵌套div,您可以使用css进行样式设置。您可以将html代码与菜单共享吗?您共享的html似乎不是菜单。是的是整个代码,菜单在服务器端动态生成,并放置在
    menucell
    td中。如果可以,请共享生成的代码,因此我应该帮助您编写代码。Simpy copy将其粘贴到浏览器中。
    menuCell.Controls.Add(psubmenu);