0

httphandler を使用して、ページにレンダリングされる画像のサイズを動的に変更しています。すべての画像で確認する必要がある事前設定された幅があります-画像の高さはさまざまです(元の幅と高さに制限された比率)。私は画像をキャッシュしています - しかし、それらが最初に読み込まれたとき、ページがレンダリングされた後に httphandler が呼び出されます - そのため、長い画像の場合、最初の読み込み時に、その下にあるコンテンツと重なるため、大きな画像でレイアウトが壊れることがあります。ここからのスクリーンショットの例を次に示しますhttp://www.teakmonkeystudios.ca/photos/photo.aspx?id=10801 :

ここに画像の説明を入力

CSSは次のとおりです。

.gallery
{

    margin-left:0px;
    padding-left:5px;
}


ul.gallery div.top_frame
{
       width:732px
}


ul.gallery div.view_frame
{
    margin-left:5px;
}

ul.gallery div.image_frame
{
    border: 1px solid #dddddd; padding-top: 5px; height:100%; min-height:490px;
    padding-bottom: 5px; text-align: center;
}

ul.gallery div.button_frame
{
    width: 732px; text-align: right; margin: 4px 0px 0px 0px;
}


ul.gallery div.name_frame, ul.gallery div.original_name_frame
{

    margin: 0px 0px 0px 5px;
}

ul.gallery div.name_frame h2
{
    margin: 2px 0px 3px 0px;
    padding: 0px;

}

ul.gallery div.date_frame
{
    margin-left:5px;
    margin-bottom:5px;
}

ul.gallery div.update_frame
{
    width: 732px; margin-bottom: 5px; margin-top: 5px;text-align:right;
}



ul.gallery div.desc_frame
{
    margin-left:5px;
    background-color:#eeeeee;

}

ul.gallery li
{
     width: 732px;

     display: -moz-inline-stack;
     display: inline-block;
     vertical-align:top;
     margin: 5px;
     zoom: 1;
     *display: inline;
     _height:100%;
      color:#000000;
      letter-spacing:0px;
      line-height:normal;

} 

ul.breadcrumbs li
{
    float:left;

    margin:0px;
    padding:0px;
    width:100%;
}

ul.breadcrumbs li a
{
    font-size:12px;
}

以下のスクリーンショットの画像はキャッシュされている可能性があるため、壊れたレイアウトが表示されない場合があります。テーブル内の画像をレンダリングする方が良いのでしょうか? またはCSSの修正はありますか?私はJqueryを試し、画像コンテナの高さを調整する準備ができているドキュメントを使用しましたが、画像が読み込まれない可能性があるため、関数で画像の高さを返すことはできません. この問題を解決する方法について何か提案はありますか?

4

3 に答える 3

0

カスタム イメージの prerender イベントでイメージを作成してキャッシュにロードすると、この問題は修正されたようです。元々、コントロールはブラウザーの src 文字列に画像情報をレンダリングし、画像はキャッシュマネージャーを呼び出す httphandler によってインターセプトされました (存在する場合は戻り、存在しない場合は作成します)。上記の問題は、イメージが最初に作成されたときにのみ発生するように見えたため、「要求」される前に再作成すると役立つ可能性があると考えましたが、発生しているようです。これに結果が生じる場合は、ソリューションを編集します。

于 2011-04-19T15:05:54.237 に答える
0

これがあなたの問題の鍵です:

ただし、それらが最初にロードされたとき、ページがレンダリングされた後に httphandler が呼び出されます。

IHttpHandlerは、応答がブラウザーに送信される前に要求を確認し、サイズ変更された画像で応答するなど、必要なことは何でも実行できます。私はそれをたくさんやっていますが、問題はありませんでした。うまくいかないので、HttpHandler にバグがあるのは 100% です。

于 2011-04-19T13:37:02.147 に答える
0

画像がすべて同じ幅になる場合は、幅属性を指定して IMG タグを出力します。これは役立つかもしれません。

<img src="..." width="720">

このタイプのアプリケーションに使用input type="image"するのは少し奇妙です。画像を囲む A タグを使用しないのはなぜですか?

于 2011-04-19T13:30:00.777 に答える