3

(以下问题:宽度根据内容自动更改的html列

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

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

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

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

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

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

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

4

3 回答 3

0

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

于 2012-10-16T04:55:08.323 回答
0

您也许可以使用TCPDF 类来执行此操作。根据这个线程,该类对 CSS 的支持有限,但如果支持您的样式,则想法是在 writeHTML 方法调用之前和之后检查当前位置(GetX() 和 GetY())。

于 2017-06-25T22:40:37.790 回答
-1

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

但是,您可以使用 JavaScript 获得它。
请参阅:获取剪裁 DIV 的全高

于 2012-07-26T04:59:38.133 回答