TABLEタグでの表示不正WEB相談室Webページ作成に関しての何でも掲示板です。IIS4.0以上]お疲れ様です。<TABLE>タグを利用して、表形式でデータを表示しているページがあります。具体的な数値はわかりませんが、表示するデータ量が多い場合、スペックの悪いマシンだと以下のような現象が発生します。1、表示すべき任意の1行が表されないことがある。2、BORDERで指定した線が表示されないことがある。いずれも、右クリックでソースを確認すると、正しく書かれています。以下の観点で調査しようと思いますが、何か情報をお持ちの方がいらっしゃったら、教えてください。1、Microsoftサポート情報にそういうことに関する情報が載っていないか?(現在、探しきれていません。Yachimataも似たような現象に遭遇した事があります。した原因は分かりません。その時は、Web全般に詳しい先輩に『Web画面はエクセルのような表形式で大量のデータ表示をするように作られて居ないから出来ないのが当たり前。それは画面設計から間違ってるんだよ。』と言われてしまい、見直しを図りました。その時の画面はレコードに10フィールドあり、全てにコンボボックスがあるというパターンで、何十行も出力される可能性がありました。コンボボックスは中でも大量にメモリを消費するオブジェクトだそうです。その時は合計で20個のコンボボックスを表示するので精一杯のようでした。ただのテキストであれば大量に表示出来るのですが、テキストボックスや、コンボボックスとなると流石に限界があるようです。見直してみるのはどうでしょうか。]回答ありがとうございます。表には、テキストのみですが、各セルのバックグラウンドの色を変えたり、字を太字で表示したりしています。現在、行数は無制限です。『Web画面はエクセルのような表形式で大量のデータ表示をするように作られて居ないから出来ないのが当たり前。』の根拠になっているようなMicrosoftのWEBページなどありませんでしょうか?「最低限のデータ数に押さえる、行数を押さえる」にしても、根拠が必要です。(画面デザインそのものは、発注元が作成していますので)ただ、この現象の頻度がCPUやメモリだけじゃないような気がしています。CPUやメモリのスペックの悪いマシンでも、現象が出ないものは、全然でないので、どのスペックを気にしたらよいのか悩みどころです。]スペックに関わらず、IEはどうもborderの表示は不安定な感がありますね。弊社(何処)のニュースなんかも、出て欲しい線が出たり出なかったりします。こだわりませんが(謎)。http://www.b-architects.com/news/CSSを切れば常にちゃんと出るので、CSSレンダリングの実装がアレ(どれ)なんじゃないかと思ったり。根拠になるMSKBなんかはよくわかりませんが、まあどっかにあるのだと思います。折りを見て調べてみましょう。]私も、スペックっぽいな・・・とは思ってたんですが、具体的にどのスペックなのかは判断付きませんでした。スペック改善で現象を押さえる事が出来たとしても、そのページを見る人がそのスペックを有しているとはかぎら・・・・・・あ、もしかして不特定多数ではなく、特定小数限定のページなのでしょうか。スペックでカバー出来るなら、端末の方のスペックアップでの対応が可能という事でしょうか。我々の場合はもう「このレイアウトじゃ表示出来ません、変更しましょう!」とユーザーに言って聞き入れて貰えました。今思えばラッキーというか、恵まれてましたね。]イメージ的には、イントラネット用のパッケージソフトなんで、「不特定多数」と考えたほうがいいでしょう。(IEのバージョン等は制限していますが、、、)yuuさんの言うとおり、CSSの実装の仕方がまずいのかも知れませんね。現象が現れる一部のページのCSSです。style="table-layout:fixed;">どこか、ますいところがありますか?現在は、仮リリース済みなので、対策より先に「調査」を優先されています。マシンのスペックのみならず、IEのバージョン(パッチ含む)やOSのバージョン(SP含む)で調査してみようと思います。]>table-layoutプロパティの意味を理解して使用していますか?テーブルのレイアウト方法で、高さや幅を固定にするのが、fixedだと思っています。algorithm)」の意味を説明できますか?この言葉は知りませんでした。・ページのロードが高速化される。等の情報を得ています。使ったことは有りませんが、固定レイアウトアルゴリズムという言葉も知りませんでした。検索して見たところ、以下のアドレスのページに『列幅が狭すぎる場合は、列ごと消すことになったり・・・』と記述されていました。本当にこれが原因かどうかはわかりませんが、しっかりと理解して使わないと、悪さしてしまう事があるようですね。]http://www.swlab.csce.kyushu-u.ac.jp/man/rec-css2/tables.html#width-layoutあたり。表全体の幅が指定されている場合、固定レイアウトアルゴリズムが用いられる。固定レイアウトアルゴリズムでは、列要素(HTMLではcol要素)のwidthがauto以外のときはそのwidth値が使用され、そうでない場合は表の1列目のwidth値を用いて各列の幅が決定される。それで列の幅が決定できない場合は、残りの各列に均等に幅が配分される。俗にtable-layout:fixedが高速といわれるのは、表の1列目を読み込んだだけで表全体の各列の幅を決定できるため、逐次レイアウトが可能だから。表全体の幅を指定しなければ、table-layout:fixedは意味がないことと、列の幅を指定していなければ、全ての列がその内容によらず等しい幅になることに注意。現象と何が関係があるのか分からなくなったので、statusを関連にして投稿。]Yachimataさん、ひじさん、有用なページありがとうございます。見たところ、table-layout:fixedが悪さしている可能性は否定できないですね。列幅を超えるデータは存在しません。データ内容により、ColSpanを変更しながら、テーブルを書いています。よって、セルの数も列×行で固定ではありません。]IE5.5SP2、IE6.0、IE6.0SP1でテストしてみた結果、表示崩れを起こすのは、IE6.0のみと判明しました。理由はあるかもしれませんが、IE6.0のみということで、IE6.0の「バグ」ということで、片付けようと思います。Microsoftのサポートページには、その件は載っていませんでしたが、IE6.0からIE6.0SP1の間で、対応されたものと判断します。