- ベストアンサー
Netscape 6/7 でのテーブル内の表示のズレについて
テーブルタグを使って、画像で作った枠で文書を囲んでいるのですが、表示がずれることがあります。 □□□ □ □ □□□ 真ん中の空白に文書、まわりのボックスに画像を表示させています。 上部ボックス 3 つ、下部ボックス 3 つの下部分に 2, 3 px の空白がでます。 Win 98 IE 5, Netscape 4.78/6.2.3/7.02, Opera 6.03/7.03 のうち、Netscape 6/7 で発生します。 原因は <!DOCTYPE ~> の文書タイプ宣言にあるようで、宣言後半の URL を抜くとか、strict にしなければ発生しないようではあります。 明確な原因、他にもズレが発生する場合もあるなどなにか知っていましたら教えて下さい。 お願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
確たる原因とは言い切れないかも知れませんが、DOCTYPE宣言の書式によってレイアウトが変わるのであれば、表示モードの対応の差が出ているのではないかと思います。 IEやNetscapeには標準モードと後方互換モードという二つの表示モードがあり、それぞれのモードによってCSSの解釈の仕方などが変わります。 CSSの書式などに関しても、標準モードでは厳密に判定され、書式違反はすべて無視されるようです。 この表示モードのスイッチはDOCTYPE宣言の内容によって切り替えられるものですので、DOCTYPE宣言の書き方の違いで表示に差が出るのであれば、この線が濃厚なのではないかと思います。 参考URLは、標準モードと互換モードの差について解説しているページです。 こちらも参考になるのではないかと思います。
その他の回答 (1)
- selene_pl
- ベストアンサー率49% (102/207)
レイアウトにテーブルを使わない人間なのではっきりとは言えませんが。。。 >strict にしなければ ということなので、きっと、本来はそう見せるものだと、Netscapeのエンジンが判断しているのでしょう。 (失礼ですが、strict宣言の意味はわかってらっしゃいますよね?) たしかIE6も、strict宣言によって、解釈・表示のスイッチを切り替えるはずですので、 もしかしたらその空白が発生するのかもしれません。 私の意見になりますが、strictを宣言してテーブルレイアウトを行うことは、 ちょっと理念に反しているような気がするので、無難にtransitionalにした方が自然かと思います。
お礼
回答ありがとうございます。 strict 宣言の意味はわかっています。 ただ現象として、各プロパティすべて 0 指定して空白を作るなと指定しているので、なんだかバグな感じがしました。 それともこれが仕様? テーブルタグは古いブラウザのことを考えると今のところ一番信頼できるんですよね。 ただ、HTML 4.01 ではそろそろ CSS に完全移行しなさいということでしょうか? とりあえず今は transitional にしておこうかなと思います。 そろそろ CSS でのレイアウトを本格的にやってみたほうがいいのかな… どうもありがとうございました!
お礼
URL の指定があるかないかで判断する場合があるんですね。 参考ページの御紹介ありがとうございます。 表示モードの違いがあるというのも初耳でした。 納得しました。 他にいろいろやってみたんですが(タグの間を改行しないとか)全部反応なしでしたので 宣言の書き方の線がやっぱり濃厚みたいです。 どうもありがとうございました!