函数来计算html + css的显示高度

时间:2012-07-26 04:57:06

标签: php html css

(关注此问题:html columns whose width automatically changes according to their content

从PHP脚本中,我打印了一些HTML代码,我想知道结果的高度是什么(用于分页计算)。假设我有以下输入:

  • $ html代码我要打印(字符串);
  • $ css代码,包含HTML(字符串)中显示的所有项目的字体和大小的完整详细信息;
  • 所有相关的浏览器设置(字体,大小等);
  • page $ width,以像素(int)。

我创建了一个如下所示的页面:

<html>
  <head>
    <style>$css</style>
  </head>
  <body style='width:$width'>
    $html
  </body>
</html>

我想知道,从PHP脚本中,从页面顶部到文本底部的像素数。

编辑:我需要在服务器端执行此操作,之前显示内容,因为我使用它来计算要放入的内容。例如,如果内容太高,我可能会决定只放置上半部分等等。

另一种可能的用途是计算达到特定高度所需的宽度。例如,我可能会尝试将它放在宽度为200px的div中,但结果可能太高了;然后我尝试宽度400px等,直到我找到宽度给出我想要的高度。

3 个答案:

答案 0 :(得分:0)

如果要创建自己的服务器端浏览器,则会遇到加载时间问题。如果这不是一个大问题,你可以解析css(类似这样的内容:link),找出$html变量中使用的填充,边距,字体,行高等,然后,如果你知道字体细节,你可以尝试计算内容高度(自然给出,来自用户输入的浏览器)。

答案 1 :(得分:0)

您可以使用TCPDF class执行此操作。根据{{​​3}},该类对CSS有限制,但如果支持你的样式,那么想法是在writeHTML方法调用之前和之后检查当前位置(GetX()和GetY())。

答案 2 :(得分:-1)

HTML呈现在客户端完成,而PHP驻留在服务器上 因此,PHP无法从服务器端确定HTML元素高度。

但是,您可以使用JavaScript获得它 请参阅:Get full height of a clipped DIV