【发布时间】:2014-08-28 13:22:25
【问题描述】:
我正在尝试创建一个论坛(不会显示 PHP)。每个帖子/回复由两个 td 表示(第一个 td 有图像 - 用户个人资料图片 -,第二个 td 有文本 - 用户写的内容 - 宽度为 100%)。第一篇文章没有缩进。帖子可以收到任意数量的回复。每个回复都可以收到任意数量的回复。我想不出一种动态缩进回复的方法。基本上,我需要一种方法来让帖子回复有一个“缩进”,对回复的回复应该有两个“缩进”,对回复的回复应该有三个“缩进”等等。
这是我尝试过的。 CSS:
tr {
border-left: 20px solid transparent; /* this would be the indent which each reply will receive */
HTML:
<table>
<tr> <!-- this is the first reply to a post, so it should receive one indent -->
<td class='first'><img src='proileImage.png' width='30px' /></td>
<td class='second'>first reply</td>
</tr>
<tr> <!-- this is another reply to the post, so this should also get one indent -->
<td class='first'><img src='proileImage.png' width='30px' /></td>
<td class='second'>Second reply</td>
<tr> <!--this is a reply to the second reply, so it should have two indents-->
<td class='first'><img src='proileImage.png' width='30px' /></td>
<td class='second'>Reply to second reply</td>
</tr>
</tr>
</table>
如您所见,我希望由于对第二个回复的回复是 tr 内的 tr,它会收到两个 20px 的左边框(两个缩进),但它只缩进一次 20px。我还意识到将 tr's 放在 tr's 内是无效的。
我想到的另一个解决方案(但不是正确的解决方案)是将每个回复放在一个 li 内(因为 li 收到一个左边距,并且 li 里面的 li 也会缩进)但后来我发现放置 td并且 tr 在 ul's 和 li's 里面是无效的。
我想不出一种方法来动态地使每个帖子/回复有一个缩进,并且对回复的每个回复都有两个缩进等等。我无法更改每个帖子/回复的内容(必须由两个 td 组成)但我可以更改任何其他内容(CSS 和帖子/回复周围的 html)。谁能想到我可以动态缩进每个帖子/回复的方法,具体取决于它是回复,回复回复等?
这属于 codegolf (https://codegolf.stackexchange.com/) 吗?
【问题讨论】:
-
在
<tr>中嵌套<tr>不是有效的HTML。<tr>的唯一有效直系后代是<td>或<th>。
标签: html css dynamic html-table margin