実際のところはどうなのでしょうか?
tableの横幅指定は全部ピクセルで決めるべきでしょうか?
パーセント指定をしているのは、項目追加や枠線のサイズの変更時に、変更しやすいからです。
HTMLクイックリファレンス
回答になっているか自信がありませんが。
ブラウザによって崩れる理由はパーセント指定を行った場合、ウィンドウのサイズを基準にしサイズを決めるものと、ブロック属性の入れ子の親のタグのサイズを基準にサイズを決めるものがあるためです。
私のオススメは、imgタグを使用する方法です。
tableタグを入れ子にはしません。tableおよびtdにパーセント指定を行います。次にtd要素の中にimgタグを記述します。imgタグの幅を最小表示時の幅に指定してください。画像は1px*1pxの透明の画像を使用するといいと思います。
すべてがピクセル指定でなくてもいいと思います。私もサイトをつくる時テーブルやフレーム幅はパーセントで指定してます。そのほうがどのサイズのウィンドウでも10%なら10%分だけの横幅になってくれるからです。
ページ全体に指定するテーブル幅が100%でもいけるような気がするのですが、どうでしょうか
その方法ではサイトのデザインが崩れてしまいます。
質問文の場合ウィンドウサイズが小さくても、テーブル幅は800pxとなる。でも、その中の入れ子にしたテーブルはパーセントで指定し、項目の追加や削除などを、テーブルのwight指定を変更せずに行えるのが、期待している動作です。
しかし、入れ子のテーブルのwightにパーセント指定をすると表示が崩れることがあると聞き、実際のお話を知りたく、質問をしました。
http://www.geocities.co.jp/Playtown-Domino/4598/HTML_05.html
Note when TABLE is Generated for NN
ネスケ4.xのバグです。
(weight→widthと読み替えていいですよね)
TABLEの幅:widthを相対指定にした場合に、
TDの幅を絶対指定しても無視されるというものです。
おそらくこのことをおっしゃっているのだと思います。
>(weight→widthと読み替えていいですよね)
何でこう書いてしまったのか・・・間違いました・・
ご回答は、微妙に違います。
1番目の方のいっている、テーブルの入れ子になっている状態です。
一番外のテーブルが幅800px。その中にあるテーブルが幅%指定になっています。
でも、テーブルの幅指定に関する不具合なら何でも知りたいのでありがとうございます。
はじめに確認ですが「weight」ではなく「width」のことですね?
たとえば入れ子のテーブルを「20%」「80%」とすれば、
800pxの範囲内で2:8(つまり160pxと640pxです)に分けてくれますので大丈夫です。
全部ピクセルで指定する必要はありません。
実際に試してみると分かりますよ。
もちろんそのように使っていますが、
「ブラウザによっては中の表が崩れてしまうという話を聞きました。」
http://hp.vector.co.jp/authors/VA022006/css/visualren.html#width
視覚整形モデル - CSS2リファレンス
個人的には、レイアウト目的ならtableではなくdiv+スタイルシートのfloat指定で…と考えます。
でも、以下のようなHTMLで、最近のブラウザなら表示は崩れなさそうですけどね。多少の割り切りは必要かも?です。少なくとも、CSS的には正しい指定の仕方のようですし。
<table width=”800” border=”1”><tr><td>
<table width=”10%” border=”1”><tr><td>ここは外のテーブルの10%の幅になるはず</td></tr></table>
</td></tr></table>
スタイルシートも、結構ブラウザによって表示が違ったりすると聞きますが、どうなんでしょうかね。
そろそろ真剣にスタイルシートも勉強しなければならないかも知れませんね。
レイアウトが崩れるのはcssとnowrapで最小限に
とどめられると思います。
cssでフォントとピクセルを指定し、
改行されたくないセルにnowrapを仕込む事で
OSやブラウザに大きく左右されないレイアウトを
組むことが可能です。
また、各テーブルの一行目のみピクセル指定を
する事や、画像を埋め込むことでも回避できます。
書き方が悪かったようなので、書き直します。
絶対指定のAの中に相対指定のBを入れ子にすることが原因となって崩れることはないです。
にも関わらず、崩れるケースがあるというのは、入れ子が原因ではなく、
先に書いたことが原因となって崩れているケースがあるということです。
「ブラウザによっては中の表が崩れてしまうという話」というのは、
AとBの組み合わせではなく、Bの中だけで起きていることです。
「実際のところ」とすれば、
入れ子のテーブル中のwidthの指定を全て相対指定にしていれば、崩れるブラウザは
私の知っている限りではありません。
この回答も微妙に違っていましたら、ごめんなさいです。
なるほど、よくわかりました。
テーブルBの幅を相対指定した場合、その中のセルは全て相対指定にしなければ、崩れてしまうことがあるのですね。
cssでフォントと、サイズを指定して、
nowrapで改行を制御するとそこそこ
レイアウトを保持します。
ただ、きっちりとレイアウトを考える場合は
ピクセル指定をした方が良いと思いますよ。
ご回答ありがとうございます。
ブラウザの、対応によって違うということですね。
各ブラウザの対応状況などがわかるページなんかが有ると良かったのですが、難しいですね。