3

(この質問に続いて:コンテンツに応じて幅が自動的に変化する html 列)

PHP スクリプトから、いくつかの HTML コードを出力します。結果の高さを知りたい (ページング計算用)。次の入力があるとします。

  • $html 印刷したいコード (文字列);
  • $css コード。HTML に表示されるすべてのアイテムのフォントとサイズの詳細 (文字列)。
  • 関連するすべてのブラウザ設定 (フォント、サイズなど);
  • ページの $width (ピクセル単位 (int))。

次のようなページを作成します。

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

PHPスクリプト内から、ページの上部からテキストの下部までのピクセル数を知りたいです。

編集:コンテンツが表示される前に、サーバー側でこれを行う必要があります。これを使用して、配置するコンテンツを計算するためです。例えば、内容が高すぎて前半だけ入れたりとか。

別の可能な用途は、特定の高さを達成するために必要な幅を計算することです。たとえば、幅 200 ピクセルの 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 に答える