• ベストアンサー

テーブルの項目幅を固定するには?

ものすごく簡単な質問だと思うんですけど、なんせ初心者なのでどうかわかりやすく教えてください。 テーブル定義で%で列幅を指定しているのに、その中に文字をいれたとき、 その文字幅にあわせて幅がかわるんです。 そもそも%で指定するときの%って何に対しての%なんですか?画面幅?? それともテーブル全体の幅ですか? 横にスクロールしてもいいので列幅を固定する方法を教えてください。 過去の質問をチェックしてみたのですが、よくわかりませんでした。

  • batu1
  • お礼率97% (41/42)
  • HTML
  • 回答数6
  • ありがとう数6

質問者が選んだベストアンサー

  • ベストアンサー
  • blank_out
  • ベストアンサー率37% (10/27)
回答No.3

テーブル定義の%はテーブル全体に対しての割合です。 しかし、それぞれのセルの内容物のサイズによってはブラウザが勝手に 割合を変える場合があります。 ピクセル固定でもネットスケープナビゲータ等は内容によって無視しま す。 従って、幅を固定したいならピクセル指定で固定した上で、テーブルの 各列に固定用のスペーサーを入れる事になります。また、ネットスケー プだけが対応している<SPACER>タグを使用することにより、ネットスケー プのテーブル表示上の不具合を解決すると言うやり方もあります。 ただし、これらは見えないテーブルをレイアウト用に使用したときに、 使用するテクニックであって、初心者が普通の表をこれらのイレギュラー なテクニックを使用して固定するのもどうかと思います。 ※ちなみに、テーブルのセル単位でのスクロールはありません。  スクロールが発生するのは、画面全体かフレームに対してです。

batu1
質問者

お礼

odricさんは「画面幅に対する%ですね。」 とおっしゃっているのでまたまた??になってしまいました。 raiyaさんの話とあわせて考えると、<th>または<td>の場合、 テーブルに対する%で <table>で指定する%は画面に対する%  って解釈したんですが、違うでしょうか? ブラウザはIEです。 固定用のスペーサーって何ですか? 本当に初心者で申し訳ないです・・・ これを読んで「アチャー、答えるんじゃなかった」 とかって思わないでくださいね・・・(^^;

その他の回答 (5)

  • zetora
  • ベストアンサー率0% (0/1)
回答No.6

こんばんは、私は独学でHTMLを学んだ者です。 batu1さんのお力になれるかどうか解りませんが 参考になればと思い・・・(; ̄ー ̄A アセアセ・・・ <table width="★" height="☆"> ★・……表の横幅(ピクセル数または%) ☆・……表の縦幅(ピクセル数または%) WIDTH、HEIGHT属性で表の大きさを指定する場合、 パーセンテージで指定すると、ブラウザのウインドウ サイズに対する割合となり、ウインドウの大きさを変 えると表の大きさも変わりますので、横にスクロール してもよいのであれば、パーセンテージで指定するよ り、ピクセル指定の方が良いのではないでしょうか? ピクセル指定であれば、絶対的な指定になるので、ブ ラウザのウインドウの大きさに関係なく、同じ表示が 保てます。但しあまりにもピクセル数が大きくな ると、HP見る人もスクロールして見るのが大変なの で注意した方が良いと思います。 私の場合は、ノートPCのブラウザ(800×600ピクセル) でも横スクロールしないですむように、横幅は800以内 で納めるようにしています。ご参考になれば^^;

batu1
質問者

お礼

とてもわかりやすい説明でした。ありがとうございます。 ところで<table width="800"> と書いたらスクロールしない範囲で画面いっぱいになるのですか?? 今日会社でいろいろ指定を変えて書いてみたんですが、 <table>で何を指定しても何も反映されないんですよ~ 何か基本的に間違えてるんでしょうか・・・(;_;)

  • blank_out
  • ベストアンサー率37% (10/27)
回答No.5

何回もすみません。 あと、スペーサーについて書いておきます。 >固定用のスペーサーって何ですか? 一般に、1×1ピクセルの透明なGIFイメージの高さと幅をしていして、 特定のスペースを確保するために使われるGIFイメージをスペーサーと 言います。 これはテーブルやテーブル以外のレイアウティングに使われる補助的な テクニックです。テーブルをレイアウト用に使うと、ドット単位の狂い も認められない場合があるので、自然にこのテクニックが定着したもの と思われます。 ただし、最近はnowrap属性などでコントロールする事を解説している本 なども多いですね。 因みに、幅をピクセルで指定してnowrapを指定すると幅は指定したピク セルの幅になります。 ブラウザはIEと言う事ですが、IEは幅を数字で指定すればこれらのテク ニックを使用しなくても比較的思い通りに表示してくれるはずです。

batu1
質問者

お礼

丁寧に何度もありがとうございます。 とりあえず、ピクセルで指定して試してみましたが、やっぱり列によって幅が変わってしまったので、いろいろ試した結果を報告させていただきます。 超簡単に説明させてもらうと まず、<table widht=100%> を指定して <td widht="50"> を指定しました。 でもだめでした。なので<table>タグには何も指定せず<td>でピクセル数を書いたのですが、これもだめでした。 この時点でもう半泣きに・・・(T_T) 結局、<table style="table-layout:fixed"> と <colgroup>を併用してやっとこさ、うまくできました。 本当にどうもありがとうございました。 また新たな疑問があるので最新の質問も読んであげてくださいませ。

  • blank_out
  • ベストアンサー率37% (10/27)
回答No.4

混乱させてごめんなさい。 TABLEタグに対する%は画面と言うか、ブラウザの表示幅に対する割合です。 一方、TDタグ等のセルに対する%はテーブル幅に対しての割合です。 列幅を指定していると書いてあったもので、個々のセルに対しての指定かと 思っていました。

  • raiya
  • ベストアンサー率50% (15/30)
回答No.2

  えっと、  テーブルの幅を決める方法ですが、まず一つの列の幅を決める場合、  <colgroup span="★" width="☆☆">や<col span="★" width="☆☆">  として、  ☆☆に数字を入れた場合には単純にその数字のピクセル分の幅になり、  テキストによって幅が変わることはないと思います。  これは、<th width="☆☆">や<td width="☆☆">を利用した場合も  同じだと思います。  またここで、☆☆に75%なんていれると、  表の大きさに対しての75%になります。  このとき、<table width="☆☆">なんてやって、テーブル自体の幅を  予め決めておかないと、  もしかしたらテーブル自体の幅が変わってしまうこともあるかもしれません。  また、<table>で75%なんて数字を入れた場合はブラウザのウインドー幅に  対する大きさになります。   えっと、もうひとつ、  <th nowrap><td nowrap>なんて感じに、nowrapの文字をつけておくと、  特別幅が指定されていない場合、文字列の幅にあわせるようになります。  このとき、一行の文字がどんなに長くても勝手に改行しませんので  文字が長ければ横にスクロールするようになります。   もちろん、上記のようにwidth=""でピクセル単位で幅を決めるのが  普通ですので、邪道なやり方にはなりますけど、、。   わかりづらい上に長文ですみません、、、。

参考URL:
http://wakusei.cplaza.ne.jp/twn/html/index.htm
batu1
質問者

お礼

いえいえ、わかりやすい説明でした。 ありがとうございます。 また質問ですが幅を指定したうえで、<nowrap>を指定したら どっちが優先されるのですか? これは暇があれば教えてください。 ちょっと疑問に思っただけなので。

  • odric
  • ベストアンサー率37% (6/16)
回答No.1

画面幅に対する%ですね。 はみ出ても良いのなら、直接数値を指定すればよいのではないでしょうか? なお、参考URLにHTMLリファレンスがあります。

参考URL:
http://wakusei.cplaza.ne.jp/twn/www.htm
batu1
質問者

お礼

回答ありがとうございます。 早速明日会社に行って直接指定を試してみます。 多分次から次にわからないことが出てくると思うので またよろしくお願いします。

関連するQ&A

  • テーブル幅が固定できない

    テーブル幅が固定できないく困っています。 ドリームウィーバー上では意図した指定幅で表示されているのですが、ブラウザで確認してみると、両端の方のセルが極端に圧縮(幅が短くなる)され、それ以外のセルも圧縮されてしまいます。 画面を横スクロールしなければならないほどに横長のテーブルを作成するとこの現象が起きます。 colspanを使っているからいけないのでしょうか? それともほかに原因があるのでしょうか? このようなときの解決方法を教えてください。

  • テーブルの幅固定について

    テーブルの幅固定を以下のように行っているのですが文字が指定した幅を超えると、 幅を指定してるにも関わらず、文字が改行せずに幅が伸びてしまいます。 自動的に改行になるとばかり思っていました。 <br>での改行は考えていないので、テーブルの幅を絶対的に固定する方法ありますでしょうか? <table width="50" border="0" style="background-color: #cecece"> <tbody> <tr> <td>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</td> </tr> </tbody> </table>

    • ベストアンサー
    • HTML
  • tableの幅・高さの固定

    初心者です。Dreamweaver2004MX操作の質問です。 【問題点 テーブルに適当な幅・高さを作成し、そのテーブルに画像ファイルを 挿入した際、テーブルの大きさより画像ファイルの幅・高さが多きい 場合、画像や文字を優先される様でテーブルサイズが自動的に挿入したファイルやリンク先の画像ファイルの大きさ比例してテーブルの幅・高さが変わってしまいます。 【やりたい事 テーブルの幅・高さを固定し、そのテーブルにそのテーブル幅・高さより大きな画像ファイルや文字を挿入してもあくまで、 固定されたテーブル幅・高さに合わせ画像や文字を拡小表示(挿入)する事って出来るのでしょうか? 大きい画像ほど、つぶれた画像になっても構いません。 スタイルシートの適用や拡張モードでの操作、 プロパティ等操作してみましたが、全くうまくいきません。 どなたかご教示願いますm(__)m

    • ベストアンサー
    • HTML
  • テーブルを固定

    □□□ □□□ 上記のように6つのテーブルを作ったとします。 スタイルシートで"<table style="width="200" height="200">のように幅を指定しても 作ったテーブルより小さいサイズの画像を入れただけでも全体が大きく崩れてしまいます。 これをテーブルの幅を幅以下の画像なら("width="200" height="200"で作った場合は199まで)動かないように完全固定したいのですがどのような方法で可能になるのでしょうか?。

    • ベストアンサー
    • HTML
  • テーブル幅について

    どなたか教えてください。 現在、strictで、cssを用いてソースの手打ちで HPを作成しています。 文字サイズをユーザー側で変えられるように 文字をemで設定しました。 文字サイズを小→大に変更すると テーブルの中の文字が全部表示されません。 (更新ボタンを押すと正常に 全部の文字が表示されますが) この症状のときは、テーブルの横幅などをピクセル指定 していました。 テーブル幅がピクセル指定しているために 正常に表示されないのかと思い、テーブル幅などの 指定も全てem指定に変更しました。 今度は、全部の文字が表示されるのですが、 文字サイズをユーザー側で小さくすると テーブルの横幅が極端に狭くなってしまい、 最大にすると、横幅が広くなりすぎてしまいます。 理想では、横幅を固定し、文字を全て 表示させることです。 テーブルの横幅を30emに指定し、中のtdタグは 計30emになるように指定しています。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • table の幅を固定したい

    初心者です。教えて頂けますか? テーブル内に、php pear mdb2 を利用して文字列を入れているのですが、 文字列が長いのですが、シングルバイト文字とマルチバイト文字で挙動が異なっています。 指定している幅で固定したいのですが どうすれば良いでしょうか? 申し訳ありません。よろしくおねがいします。 <table width="380" border="1" cellspacing="0" cellpadding="0"> <tr> <td> あいうえお。あいうえお。あいうえお。あいうえお。あいうえお。あいうえお。あいうえお。あいうえお。あいうえお。あいうえお。... </td> </tr> </table> <table width="380" border="1" cellspacing="0" cellpadding="0"> <tr> <td> yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy... </td> </tr> </table>

    • ベストアンサー
    • HTML
  • テーブル幅・縦の固定

    こんにちは。 Dreamweaver MX2004でウェブサイトを作りました。 大きなテーブルの中にもうひとつ小さなテーブルを入れたのですが そのテーブルの横幅は均一に出るのですが、縦の幅が各ページ違って表示されてしまいます。propertyでサイズを同じ高さに指定しても固定されません。初歩的な質問で申し訳ないのですが、どなたかご回答よろしくお願いいたします。

  • テーブル幅が固定できない

    cssに「table-layout: fixed;」を記載してテーブルの幅が固定になるように設定しています。 設定していますが、ブラウザの幅を狭めると テスト1|テスト2|テスト3 と表示されていたものが テスト1 テスト2 テスト3 と、レイアウトが崩れてしまいます。 <table>、<tr>、<td>タグにつけてみましたが、全て崩れてしまいます。 幅や高さ等も指定していますが、何かが足りないのでしょうか。

    • ベストアンサー
    • CSS
  • テーブル<TD>の幅の固定

    テーブルのTD幅をWIDTHで指定しているのですが、入力するテキストによって幅が動いてしまいます。 例) <table width="50">  <tr>   <td width="10">AAAAAAAAAAAAAAAA</td>   <td width="40">AA</td>  </tr> </table> というような場合、幅の狭い方のセル幅が広くなってしまいます。 また逆に広い方が何度も改行させられて出力されたり、出力させたいテキストによって、いかようにも幅が変更されてしまいます。 他のサイトなども色々調べてみて、半角英数字の場合は特に顕著ということも書かれてあったのですが、半角英数字の出力は必須なんです。 (全角文字の場合でも、完全に固定とはなりませんでした) やっぱり完全にテーブルのセル幅を固定するのはムリなのでしょうか? 何か解決方法はありますでしょうか? よろしくお願いします。

    • ベストアンサー
    • HTML
  • テーブルの幅を固定するとnowrapがきかなくなるのですが・・・

    いつもお世話になっております。どなたか教えて下さい。 テーブルの幅を”width=***”で固定しました(tableタグもtdタグも両方)。文字列を改行したくないので”nowrap”を書いて改行不可にしたら、改行は回避できたものの、幅が固定されずに文字の長さに合わせられてしまいました。 そこでこのサイト内で方法を模索していると”style=table-layout:fixed”で固定できると書いていたので追加すると幅の固定は出来たのですが、今度は文字列が改行されてしまいました。 どうすれば幅を固定し、改行も回避できるのでしょうか? 文字列が長すぎるものは途切れていてもOKなので、枠をとにかく固定したいのです。 どなたか回答御願い致します。 ブラウザはIE5か6です。

専門家に質問してみよう