我最近一直在研究一个Pastebin脚本(为了好玩),我遇到了一个我似乎无法在CSS中解决的问题。我有一个2列的表。 1列用于显示行号,第2列用于显示代码。我似乎无法将数字与代码中的行匹配,因此它看起来很奇怪(例如:http://www.zamnproductions.com/paste.php?id=32)。看看我的代码(片段):
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<style type="text/css">
td.num {
vertical-align: top;
}
td.numbers {
display:table-cell;
padding:1px;
vertical-align: top;
line-height:25px;
}
td.code {
display:table-cell;
vertical-align: top;
line-height:20px;
}
#hide {
display:none;
}
#leftcontent {
position: absolute;
left:10px;
top:119px;
width:200px;
background:#fff;
border:0px solid #000;
}
#centercontent {
background:#fff;
margin-left: 199px;
margin-right:199px;
border:0px solid #000;
voice-family: "\"}\"";
voice-family: inherit;
margin-left: 201px;
margin-right:201px;
}
html>body #centercontent {
margin-left: 202px;
margin-right:201px;
}
</style>
以下是制作表格的部分:
<?php
if (isset($_GET['id'])) {
$paste = new Paste();?>
<table border="1">
<tr>
<td class="num"><font size="2"><?php $paste->listNumbers($_GET['id']); ?></font></td>
<td class="code"><?php $paste->viewCode($_GET['id']); ?></td>
</tr>
</table>
<?php }?>
答案 0 :(得分:2)
您的结果表结构已关闭。
这是您的脚本输出的内容。
<table border="1">
<tr>
<td class="num">
<font size="2">
<table border="0">
<tr>
<td class="numbers">1.</td>
</tr>
<tr>
<td class="numbers">2.</td>
</tr>
[...]
</table>
</font>
</td>
<td class="code">
<pre><b>for</b> (<b>int</b> i = 5; i == 5; i++)
{
System.out.pr<b>int</b>ln("LOLOL");
}</pre><br/>
</td>
</tr>
</table>
什么时候应该输出更像:
<table border="1">
<tr>
<td class="num">1.</td>
<td class="code">
<pre><b>for</b> (<b>int</b> i = 5; i == 5; i++)</pre>
</td>
</tr>
<tr>
<td class="num">2.</td>
<td class="code">
<pre>{</pre>
</td>
</tr>
</table>
您希望每个表行包含两列,一列包含数字,另一列包含代码。您的脚本将所有数字放入一列。您应该将代码拆分为行,然后通过listNumbers进行操作。