0

私のサイト: www.metallica-gr.net では、メイン テーブルに 3 つの列があることがわかります。

1列目(左):縦画像
2列目(中):メインコンテンツ
3列目(右):縦画像

問題は、右の画像がコードの一番下にあるため(テーブルの最後の列であるため)、メインコンテンツがロードされるのを待ってから表示されることです。そのため、レイアウトの境界線が 1 つしか表示されないため、サイトが読み込まれる前は乱雑に見えます。

私はすでに多くのHTMLページを作成しているため、これにdivを使用することはできません。また、試してみるとうまくいきませんでした。これを修正する方法はありますか?コードは次のとおりです。

index.html:

<table border="0" cellspacing="0" cellpadding="0" id="main" align="center">
      <tr>
        <td width="2" valign="top"><?php include "vertical.php"?></td>
        <td valign="top" style="vertical-align:top;">
    <div><?php include "main.html"?></div></td>
        <td width="2" valign="top"><?php include "vertical.php"?></td>
      </tr>
    </table>   

vertical.php:

<div style="background-image:url(images/vertical.jpg); width:2px; height:100%; background-repeat:repeat-y; vertical-align:top; position:fixed; top:0;"></div>
4

2 に答える 2

3

より現代的な HTML 構造 (div の使用など) を検討することをお勧めしますが、完全な再構築が実行できない場合があることも理解しています。


PHP 出力バッファーが暫定的な解決策を提供する可能性があると思います。

<?php ob_start(); ?>
<table border="0" cellspacing="0" cellpadding="0" id="main" align="center">
    <tr>
        <td width="2" valign="top"><?php include "vertical.php" ?></td>
        <td valign="top" style="vertical-align:top;">
            <div><?php include "main.html" ?></div>
        </td>
        <td width="2" valign="top"><?php include "vertical.php" ?></td>
    </tr>
</table>
<?php ob_end_flush(); ?>

これにより、すべてのインクルードが処理されるまでページの応答が保留されます。また、これによりページの「シャッフル」が少なくなる可能性がありますが、認識される読み込み時間が長くなる可能性があることにも注意してください。

詳細については、ob_start に関する PHP マニュアルのドキュメントを参照してください: http://www.php.net/manual/en/function.ob-start.php


上記は PHP インクルードによって引き起こされた問題を処理する必要がありますが、他にもいくつかの原因が考えられます。最も可能性が高いのは、「src」からタグをロードしていることです。スクリプト タグは、読み込みと処理中に他のすべての読み込みを遅らせます。そのため、可能であれば非同期で追加することをお勧めします。非同期でロードできない場合は、終了タグ内または終了タグのすぐ上に含める必要があります。

スクリプトの問題の詳細について は、HTML の <script> タグの位置は Web ページのパフォーマンスに影響しますか? を参照してください。


HTML をふるいにかけているときに、おそらく解決する必要があるかなりの数の検証エラーも見つけました 。自動的に%29&doctype=インライン&グループ=0

テーブルベースのレイアウトであっても、ブラウザのレンダリングがより予測しやすくなり、バグハンティングが容易になるため、検証する必要があります。

于 2012-11-03T15:25:45.620 に答える
0

テーブル構造をdiv構造に置き換える必要があると思います。これは、テーブル構造の欠点であり、各TR / TDを1行ずつロードするのに対し、DIV構造ではさまざまな部門を作成するため、ブラウザーはさまざまな部門を同時にロードするためです。現在、設計者は DIV 構造を好みます。

あなたの場合、最初の TD からロードを開始し、最後の TD で 1 つずつ終了しているので、DIV 構造が問題の解決策であると思います。

于 2012-11-03T10:43:19.543 に答える