我从 C# 生成一个 HTML 页面。在 HTML 页面中有很多元素。他们都有一个绝对的位置。
其中一个元素是表格。此表表示一个保存双 [] 的对象。每个双精度值都是新行中的一个新单元格。
我遍历 double[] 并创建我的表:
for (int i = 0; i < dbl.Length; i++)
{
htmlTextWriter.RenderBeginTag(HtmlTextWriterTag.Tr);
htmlTextWriter.RenderBeginTag(HtmlTextWriterTag.Td);
htmlTextWriter.Write(dbl[i]);
htmlTextWriter.RenderEndTag(); // td
htmlTextWriter.RenderEndTag(); // tr
}
如果表格有这么多元素,以至于它跨越了该表格下方的元素,我必须对此问题做出响应。
这意味着,我需要知道这张表有多少像素长。
当然,我确实知道我生成了多少个单元格,并且我也知道 BorderSize、Padding、Margin 等。
但是有两个问题。首先,虽然我知道 FontSize、FontFamily、FontWeight,但我不知道如何将这些信息包含在数学计算中。
其次,我认为在每个浏览器中实际大小也不同。我创建了一个虚拟表并认识到,在一个屏幕高度上,Opera 和 Firefox 之间已经存在一个单元格差异。
所以我认为在 C# 中我只能近似实际高度?!
我的下一个想法是在我的 HTML 中包含一个 JavaScript。我没有使用 JavaScript 的经验,但我的方法是找到我的表格并读出大小。然后遍历所有元素并找到所有重叠。
我的问题是:
- 我的考虑是真的还是我错过了某些方面?
- 我的方法是正确的吗(在 C# 中我只会得到一个近似的结果?!,JavaScript 我不知道我是否真的可以做我想做的事)
- 还有其他我现在看不到的可能性吗?
提示:除 JavaSript 之外的其他脚本语言不适用于我的解决方案。JavaScript 我只在真正需要时使用。