HTMLでwebページを作る際、<table weight=”800”>をページ全体に指定し、その中の表などのtableタグにweight=パーセント指定をするというのはどうでしょうか?全体が800pxで決まっているためウィンドウサイズによって表がずれることはないのですが、ブラウザによっては中の表が崩れてしまうという話を聞きました。

実際のところはどうなのでしょうか?
tableの横幅指定は全部ピクセルで決めるべきでしょうか?
パーセント指定をしているのは、項目追加や枠線のサイズの変更時に、変更しやすいからです。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答8件)

id:mady No.1

回答回数86ベストアンサー獲得回数0

ポイント43pt

http://www.htmq.com/

HTMLクイックリファレンス

回答になっているか自信がありませんが。

ブラウザによって崩れる理由はパーセント指定を行った場合、ウィンドウのサイズを基準にしサイズを決めるものと、ブロック属性の入れ子の親のタグのサイズを基準にサイズを決めるものがあるためです。

私のオススメは、imgタグを使用する方法です。

tableタグを入れ子にはしません。tableおよびtdにパーセント指定を行います。次にtd要素の中にimgタグを記述します。imgタグの幅を最小表示時の幅に指定してください。画像は1px*1pxの透明の画像を使用するといいと思います。

id:router

ご回答ありがとうございます。

ブラウザの、対応によって違うということですね。

各ブラウザの対応状況などがわかるページなんかが有ると良かったのですが、難しいですね。

2004/11/13 01:20:43
id:corutika39 No.2

回答回数21ベストアンサー獲得回数0

すべてがピクセル指定でなくてもいいと思います。私もサイトをつくる時テーブルやフレーム幅はパーセントで指定してます。そのほうがどのサイズのウィンドウでも10%なら10%分だけの横幅になってくれるからです。

ページ全体に指定するテーブル幅が100%でもいけるような気がするのですが、どうでしょうか

id:router

その方法ではサイトのデザインが崩れてしまいます。

質問文の場合ウィンドウサイズが小さくても、テーブル幅は800pxとなる。でも、その中の入れ子にしたテーブルはパーセントで指定し、項目の追加や削除などを、テーブルのwight指定を変更せずに行えるのが、期待している動作です。

しかし、入れ子のテーブルのwightにパーセント指定をすると表示が崩れることがあると聞き、実際のお話を知りたく、質問をしました。

2004/11/13 01:26:32
id:fake234 No.3

回答回数197ベストアンサー獲得回数0

ポイント47pt

ネスケ4.xのバグです。

(weight→widthと読み替えていいですよね)

TABLEの幅:widthを相対指定にした場合に、

TDの幅を絶対指定しても無視されるというものです。

おそらくこのことをおっしゃっているのだと思います。

id:router

>(weight→widthと読み替えていいですよね)

何でこう書いてしまったのか・・・間違いました・・

ご回答は、微妙に違います。

1番目の方のいっている、テーブルの入れ子になっている状態です。

一番外のテーブルが幅800px。その中にあるテーブルが幅%指定になっています。

でも、テーブルの幅指定に関する不具合なら何でも知りたいのでありがとうございます。

2004/11/15 17:52:29
id:torapapa No.4

回答回数19ベストアンサー獲得回数0

はじめに確認ですが「weight」ではなく「width」のことですね?

たとえば入れ子のテーブルを「20%」「80%」とすれば、

800pxの範囲内で2:8(つまり160pxと640pxです)に分けてくれますので大丈夫です。

全部ピクセルで指定する必要はありません。

実際に試してみると分かりますよ。

id:router

もちろんそのように使っていますが、

「ブラウザによっては中の表が崩れてしまうという話を聞きました。」

2004/11/15 17:53:16
id:ke_ishi No.5

回答回数269ベストアンサー獲得回数0

ポイント20pt

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>

id:router

スタイルシートも、結構ブラウザによって表示が違ったりすると聞きますが、どうなんでしょうかね。

そろそろ真剣にスタイルシートも勉強しなければならないかも知れませんね。

2004/11/16 01:50:33
id:tacosa No.6

回答回数4ベストアンサー獲得回数0

ポイント5pt

レイアウトが崩れるのはcssとnowrapで最小限に

とどめられると思います。

cssでフォントとピクセルを指定し、

改行されたくないセルにnowrapを仕込む事で

OSやブラウザに大きく左右されないレイアウトを

組むことが可能です。

また、各テーブルの一行目のみピクセル指定を

する事や、画像を埋め込むことでも回避できます。

id:fake234 No.7

回答回数197ベストアンサー獲得回数0

書き方が悪かったようなので、書き直します。

絶対指定のAの中に相対指定のBを入れ子にすることが原因となって崩れることはないです。

にも関わらず、崩れるケースがあるというのは、入れ子が原因ではなく、

先に書いたことが原因となって崩れているケースがあるということです。

「ブラウザによっては中の表が崩れてしまうという話」というのは、

AとBの組み合わせではなく、Bの中だけで起きていることです。

「実際のところ」とすれば、

入れ子のテーブル中のwidthの指定を全て相対指定にしていれば、崩れるブラウザは

私の知っている限りではありません。

この回答も微妙に違っていましたら、ごめんなさいです。

id:router

なるほど、よくわかりました。

テーブルBの幅を相対指定した場合、その中のセルは全て相対指定にしなければ、崩れてしまうことがあるのですね。

2004/11/16 01:56:06
id:tacosa No.8

回答回数4ベストアンサー獲得回数0

ポイント5pt

cssでフォントと、サイズを指定して、

nowrapで改行を制御するとそこそこ

レイアウトを保持します。

ただ、きっちりとレイアウトを考える場合は

ピクセル指定をした方が良いと思いますよ。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません