width指定してもテキストが広がってしまう問題の解決方法

このQ&Aのポイント
  • 左ナビ部分のテキストが大テーブルの幅を広げてしまう問題が発生しています。
  • width指定の方法とテキストの流し込み方に問題がある可能性があります。
  • CSSの設定に加えて、<div>の使用などの方法が問題の解決に役立つかもしれません。
回答を見る
  • ベストアンサー

widthを設定してもテキストを流すと幅が広がってしまう

トップページの左ナビの部分です。 1行2列の大テーブルの、左のtdが左ナビになっています。 ↓こんな感じです。 <table width="800"> <tr><td>左ナビ</td></tr> <tr><td>内容</td></tr> </table> この左ナビ部分を更に<div>で区切って、 その<div>の中に改行なしのテキストを流し込むと大テーブルの幅800まで広がってしまいます。 幅170pxの指定方法は、<div class="navi">というふうにwidth指定を含むcssをつけています。 cssではダメなのかと、<div>なしで tdのwidth指定だけにしてみてもダメでした。 方法を教えてください。

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

  • ベストアンサー
  • unimentai
  • ベストアンサー率70% (34/48)
回答No.1

<tr></tr>はテーブルにおける1行を表しますので、 例示の書き方ですと、以下のようなテーブルとなってしまいます。  ┌───┐  ├───┤  └───┘ 質問者の意図が以下のようなテーブルでしたら、 下記のように記述します。  ┌┬──┐  ││内容│  └┴──┘  <table width="800">  <tr>  <td width="170">左ナビ</td>  <td>内容</td>  </tr>  </table> 以上、お試し下さい。

niconico_1969
質問者

お礼

ご回答ありがとうございました! ごめんなさい。例示のソースは間違いでした。 unimentaiさんがご提示くださったソース上での 問題点として最初の疑問を投げさせていただいた次第です。 あの後色々と調べていたところ、この左ナビに流しこむブランド名データ自体が問題になっていたことがわかりました。 メールで受けとったデータをコピペしていたのですが、 そのメールからのコピペでないものを流し込んだ際は、 幅指定が、きちんと効いてくれました。 メールデータの何がダメなのかはわからなくて、 本当に解決はしていないのですが・・・とりあえずは納品することができました。 ご回答の返事が遅くなってしまい大変申し訳ありませんでした。わかりやすい回答の提示の仕方、今後の参考にさせていただきます。

関連するQ&A

  • table要素のwidthの解釈

    tableタグを使って次のようなことをしたいと考えています。 ・table要素の親はdiv要素 ・div要素にはサイズ(width/height)が指定されており、overflow:hiddenとしてある。 ・table要素にはサイズを指定しない ・td要素にはサイズを指定する →つまり、tableのサイズはtdのサイズで決定する HTML/CSSは次の通りです。 ----------------------------------------------------- div { width: 300px; overflow: hidden; } table { table-layout: fixed; } td { width: 170px; } <div> <table><tr> <td>a</td><td>b</td><td>c</td> </tr></table> </div> ----------------------------------------------------- このコードを「DOCTYPE宣言を書かずに」IE8で開くと、想定通りの表示になりますが、 <!DOCTYPE html>と記述すると、tableの横幅が300pxに詰められてしまいます。 td要素のwidth指定が働かず、親のdiv要素のwidthに無理やり押し込められてしまうようです。 また、FirefoxではDOCTYPE宣言無しでも同様の問題が起きてしまいます。 table内の列数は固定ではないので、tableに対してwidth指定はしたくありません。 何か書き方が間違っているのでしょうか。 あるいは、標準準拠モードの仕様では、そもそもできないことをやろうとしているのでしょうか。

  • ●○■□などの文字を含んだ<td>の幅指定について

    Firefoxで表示確認をしています。 <table border="1" width="100"> <tr> <td>あああああああああああ</td> </tr> </table> だと、幅100pxの位置で自動的に改行されるのですが、 <table border="1" width="100"> <tr> <td>●●●●●●●●●●●</td> </tr> </table> だと改行ず、幅がオーバーしてしまいます。●以外にも○■□などでも同じでした。 ●を使いつつ、指定した幅で改行させることはできないでしょうか?

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

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

    • ベストアンサー
    • HTML
  • テーブルの幅をデフォルトに戻すcssがわかりま

    <html> <head> <title>test</title> <style type="text/css"> table { width: 100%; } </style> </head> <body> <table border=1> <tr><td>No</td><td>table1</td></tr> </table> <table border=1> <tr><td>No</td><td>table2</td></tr> </table> </body> </html> このようなソースで二つ目のテーブルだけ table { width: 100%; } を適用しない方法はありますか? 実際はテーブルが複数あり 基本的には table { width: 100%; } をテーブルに設定したいのですが とあるテーブルのみテーブルの幅をデフォルトのサイズにしたいのです。 table { width: 100%; } で全てのテーブルに適用した後に クラスを使って該当のテーブルのみ デフォルトの値に戻す方法は有りますか? <table border=1 class="デフォルトに戻す"> <tr><td>No</td><td>table2</td></tr> </table> としたいのですが テーブルの幅をデフォルトに戻すcssがわかりません。 2つのテーブルの幅は指定したくありません。

    • ベストアンサー
    • HTML
  • cssで列の幅を調整するには?

    たとえば、 <style type="text/css"> table { width: 100%; } </style> </head> <body> <table border=1 cellspacing=1 cellpadding=1> <tr><td>a</td><td>b</td><td>c</td></tr> <tr><td>1</td><td>2</td><td>3</td></tr> </table> このようなcssとコードがある場合、 3列目のcと3の列の幅を10%にしたい場合、 どのようなコードを書けばいいですか? td { width: 10%; } こうすると、すべての列が10%になってしまいます。 指定した列のみのcssで幅を調整する方法を教えてください。 できれば直接テーブルのタグをいじるのではなく、スタイルシートの宣言部分で対応したいです。

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

    テーブルの幅が変わらないように 幅を指定するようにするにはどうしたらよいでしょうか? 普通にwidth=100などと打ち込んでいるのですが、 サイズが変化してしまいます。 もうちょっと具体的に言うと、 <table> <tr> <td></td> <td></td> </tr> <tr> <td colspan=2></td> </tr> </table> 上に二つテーブルがあって、 その下に一つのテーブルがある状態です。 この状態で、上の二つのテーブルの右側の方には画像を入れて、 幅と高さを指定したいと思っています。 その下には、文を打ち込む予定です。 この画像のところを変化しないように指定したいのです。 画像が何重にも写らないようにしたいからです。 文をたくさん打ち込むとそれだけテーブルが大きくなりますよね。 そのときに上の二つのテーブルのところの 画像が入っていない左のほうのテーブルの長さを変化させたいのです。 どうすればいいでしょうか? よろしくおねがいします。

    • ベストアンサー
    • HTML
  • 固定幅div内のテーブルセルの幅指定方法

    幅を指定して横スクロールバーを有効にしたdivがあります。 その中に、divよりも幅の広いtableを置き、thやtdの幅を指定したいのですが、有効になりません。 tableへの幅指定は有効になるのですが、内容が動的に変化するので、セル単位で幅を指定したいと思っています。 解決方法がありましたらお願いいたします。 HTML:標準モード UA:Windows xp IE6 サンプルコード: <style> div{ height:200px; width:200px; overflow-x:scroll; border:#f99 solid 1px; } table{ background:#ddd; border:#666 solid 1px; } td{ width:100px; border:#666 solid 1px; } </style> <div> <table> <tr> <td>サンプルテキスト</td> <td>サンプルテキスト</td> <td>サンプルテキスト</td> <td>サンプルテキスト</td> <td>サンプルテキスト</td> <td>サンプルテキスト</td> </tr> </table> </div>

    • ベストアンサー
    • HTML
  • IEでのテーブル幅

    質問させて下さい。 テーブルのソースが以下のようになっています。 <table width="450" height="300" border="1" cellpadding="10" cellspacing="0" bordercolor="#333333"> <tr> <td width="225" height="150" align="left" valign="top">あああああああああああああああああああああああ</td> <td width="225" height="300" rowspan="2" background="haikei.jpg">&nbsp;</td> </tr> <tr> <td width="225" height="150" align="left" valign="top">いいいいいいいいいいいいいいいいいいいいいい</td> </tr> </table> このときに、ファイアーフォックス3での表示と、IE8での表示に 違いが大きいんです。(IEの表示の方が縦が長くなります) このままだと右側の背景画像の高さと左のテキストの高さが あいません・・・それぞれのテーブル幅などの指定はきちんと しているつもりなのですが、どうすれば良いのでしょう。 CSSの利用はなしとして、どなたか教えて頂けないでしょうか。

    • ベストアンサー
    • HTML
  • widthの% or ピクセルを指定した場合の違いについて

    お世話になっております。 下記のソースは、2つのテーブルをくっつけたソースなのですが、 (1)はwidthに「%」を指定しており、(2)は「ピクセル」を指定しています。 (1)の%だとちょうど合っていますが、(2)のピクセルを指定した場合では、値を合わせているにも関わらずずれてしまっています。 「ピクセル」指定をした場合でも合わせるにはどうすればよいのでしょうか? (1)widthに「%」を指定 </head> <body> <div style="width:330;height:20;overflow:hidden"> <table cellpadding="0" width="300" border="1" align="left"> <tr> <td width="20%">列1</td> <td width="20%">列2</td> <td width="20%">列3</td> <td width="20%">列4</td> <td width="20%">列5</td> </table> </div> <div style="width:330;height:50;overflow:auto"> <table cellpadding="0" width="300" border="1" align="left"> <tr> <td width="20%">ああああああああああああああああああああああ</td> <td width="20%">2</td> <td width="20%">3</td> <td width="20%">4</td> <td width="20%">5</td> </tr><tr> <td>4</td> <td>5</td> <td>6</td> <td>7</td> <td>8</td> </tr><tr> <td>7</td> <td>8</td> <td>いいいいいいいいいいいいいいいいいいいいいい</td> <td>10</td> <td>11</td> </tr> </table> </div> (2)widthに「ピクセル」を指定 </head> <body> <div style="width:330;height:20;overflow:hidden"> <table cellpadding="0" width="300" border="1" align="left"> <tr> <td width="60">列1</td> <td width="60">列2</td> <td width="60">列3</td> <td width="60">列4</td> <td width="60">列5</td> </table> </div> <div style="width:330;height:50;overflow:auto"> <table cellpadding="0" width="300" border="1" align="left"> <tr> <td width="60">ああああああああああああああああああああああ</td> <td width="60">2</td> <td width="60">3</td> <td width="60">4</td> <td width="60">5</td> </tr><tr> <td>4</td> <td>5</td> <td>6</td> <td>7</td> <td>8</td> </tr><tr> <td>7</td> <td>8</td> <td>いいいいいいいいいいいいいいいいいいいいいい</td> <td>10</td> <td>11</td> </tr> </table> </div>

    • ベストアンサー
    • HTML
  • IE5以上のテーブル幅

    テーブルの幅の最大値を設定することはできませんか? 下記の例では「あ」が少ないとテーブル幅(td)が100になって広過ぎるのでだめです。 <table border><tr><td>aa<td> <table border=5><tr><td width=100> ああああああああ </table> </table>

    • ベストアンサー
    • HTML