我如何表示一组;拥有并属于许多人;HTML中的自相关项?

我如何表示一组;拥有并属于许多人;HTML中的自相关项?,html,markup,directed-acyclic-graphs,Html,Markup,Directed Acyclic Graphs,我正在开发一个RubyonRails系统,它有一个项目表,表中有一个与自身有很多关系(循环关系是不可能的)。通过这种方式,一个项目可以是多个其他项目的一部分,这非常有用,并且是新应用程序所基于的遗留系统的一个杀手级功能。我需要一种方法,在一个页面上显示所有项目及其名称、短名称,以及其他简单属性。每个项目都必须相对于其父项目显示(可以使用重复条目),并且浏览器必须将每个属性值与每个其他属性对齐(没有任何一个“静态宽度”始终中断)。项目也必须是可折叠的,尽管我怀疑这与解决方案无关 当前的解决方案与解

我正在开发一个RubyonRails系统,它有一个
项目
表,表中有一个
与自身有很多关系(循环关系是不可能的)。通过这种方式,一个项目可以是多个其他项目的一部分,这非常有用,并且是新应用程序所基于的遗留系统的一个杀手级功能。我需要一种方法,在一个页面上显示所有项目及其
名称
短名称
,以及其他简单属性。每个项目都必须相对于其父项目显示(可以使用重复条目),并且浏览器必须将每个属性值与每个其他属性对齐(没有任何一个“静态宽度”始终中断)。项目也必须是可折叠的,尽管我怀疑这与解决方案无关

当前的解决方案与解决方案类似:使用
并通过使用CSS
填充左侧
在最左边的列中实现“树状”结构。通过存储每个项目的父项目ID来保持完整的父子关系。因为这不是语义标记,所以很难用JavaScript处理结果表。如果要折叠节点,则必须遍历折叠节点之后的每个
,直到在同一级别上找到一个节点,而不仅仅是删除子节点列表。此外,还多次显示了几个项目

有没有一种语义方法可以在HTML(任何版本)中表示这样的数据结构,而不牺牲合理地设置样式的所有能力?据我所知,表格列表无法正确对齐,而且无法将列表与表格混合


我不是在用ruby或ruby on rails做标记,因为编程语言与任务无关,只是为了解释现有系统的结构。

你可以把列表和表格混在一起……你的帖子有点难理解,我肯定一张图会有帮助,但从我能从中吸取的东西来看,如果可以的话,我会尽力帮忙

<table>
  <tr>
    <% obj1.each do |o1| %>
    <td>
      <ul id="tree_<%= o1.id %>">
        <% obj2.each do |o2| %>
          <li><%= o2.name %></li>
        <% end %>
      </ul>
    </td>
    <% end %>
  </tr>
</table>

然后,您可以只隐藏指定ul.tree的列

也许我误解了你的需要,但我希望这能有所帮助!:)


加油

进入
后,如何为子对象创建
?我认为这是不可能的。你不需要,你使用ul来控制你的行,表格本身只为你创建列结构…每个
  • 构成一行的一个单元格,取代了对的需要,但每行有多个列-我如何使它们对齐?每一列(
      )都是它自己的,为您的应用程序提供一系列列。行中的每个单元格都在
    • 中表示……我不知道具体显示的是什么数据,因此我不知道一行中的一个单元格与下一个单元格应该如何关联,但如果它们需要内联,您可以设置
    • 的样式以容纳数据。