我想在线格式化考试文本。经过高低搜索,这是我能想到的唯一解决方案:
<table>
<tr><td colspan="3">Question 1</td><td>[24]</td></tr>
<tr><td>1.1</td><td colspan="2">Solve for $x$</td></tr>
<tr><td></td><td>1.1.1</td><td>$(3x+7)(x^2+2)=0$</td><td>(3)</td></tr>
<tr><td></td><td>1.1.2</td><td>$\sqrt{2-x} - x = 4$</td><td>(5)</td></tr>
<tr><td>1.2</td><td colspan="2">The equations of two parabolas are $y = x^2 +
x + c$ and $y = 1 - cx - x^2$, where $c$ is a real number.</td></tr>
<tr><td></td><td>1.2.1</td><td>Prove that these parabolas must intersect
for all real values of $c$.</td><td>(6)</td></tr>
</table>
尝试将每个问题排成一行。我已经看过使用HTML列表,但在插入图表等时会出现问题。有什么我想念的吗?有没有更快的方式来打字?我的问题只在于格式化,在寻找答案的过程中找到了CSS中的计数器。
非常感谢,一位绝望的老师和noobie。
答案 0 :(得分:1)
如果你的问题是垂直对齐,在顶部,问题和分数的数字,而不是最简单的答案是添加css样式vertical-align:top;
。
所以你的css应该是这样的:
td {
vertical-align:top;
}
请参阅此http://jsfiddle.net/dyPR9/
对于更高级的版本,您不应该使用表来格式化输出。在这种情况下,您有一个订单列表,因此,表格将转换为ol
和li
元素,并将得分放在div
元素中:
<ol>
<li class="mainquestion">Question 1
<div class="score">[24]</div>
</li>
<ol>
<li>Solve for $x$</li>
<ol>
<li>$(3x+7)(x^2+2)=0$
<div class="score">(3)</div>
</li>
<li>$\sqrt{2-x} - x = 4$
<div class="score">(5)</div>
</li>
</ol>
</ol>
</ol>
并且css应该处理演示文稿:
OL { counter-reset: item }
LI { display: block }
LI:before { content: counters(item, ".")" "; counter-increment: item }
ol:first-child { padding: 0; }
li.mainquestion { list-style: none; }
li.mainquestion+ol { padding: 0; }
li.mainquestion:before { content: ""; counter-increment: item }
div.score { float: right; }
中的示例