• ベストアンサー

CSSでtdの横幅の片方だけを指定したい

横2列の table を配置して、一方の tdのみ 120px で強制的に確保したいです。 <table style="width:100%"> <tr> <td style="width:120px;">120pxで固定したい</td> <td>残りスペース全て使う </td> </tr> </table> ※ここに記載するため、styleで表記しています。 上記でCSS指定すると、ブラウザの横幅に合わせて伸縮してしまい120pxの幅より大きくなってしまいます。 伸縮せず120pxで強制する指定方法がございましたら教えてください。

  • tetish
  • お礼率91% (234/256)

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

  • ベストアンサー
回答No.2

No.1です。 おそらく #contentstable {width:100%; } はブラウザに対してwidthが100%になっているから、ブラウザの横幅にあわせて伸縮しているのではないでしょうか? /*--CSS--*/ #wrap{ width:750px; } #contentstable { width:100%; } #contentstable td#leftarea { width:120px; background-color:white; padding:0 0; vertical-align:top; } #contentstable td#mainarea { vertical-align:top; padding:60px 0 20px; } /*--HTML--*/ <div class="wrap"> <table id="contentstable" border="1"> <tr> <td id="leftarea">120pxで固定したい</td> <td id="mainarea">残りスペース全て使う </td> </tr> </table> </div> これでどうでしょう?

tetish
質問者

お礼

ありがとうございまうす。 確かにアドバイスの方法では伸縮せず強制できます。 ただ今回は、 #leftareaは120pxに保ったままで、 ブラウザの横を伸縮させた場合、 #leftareaの120pxを差し引いた横幅の中でセンター揃えにしたいため、 この方法では、固定テーブルと同じことになってしまい、 本来の目的を達成することができません。。。 すみません、面倒な要望で…

tetish
質問者

補足

お礼にすでに書き込んだ後に解決しましたので、こちらに書きます。 <td id="mainarea">のtdに、width="520"という数値が入ったままになっていました。 大変申し訳ございませんでした。 CSSの方ばかりに気をとられていたので、 HTMLのほうをしっかりチェックしてませんでした。 無事解決できましたことをお知らせするとともに ご協力いただきましたことをお礼申し上げます。

その他の回答 (1)

回答No.1

<table style="width:100%"> <tr> <td style="width:120px;">120pxで固定したい</td> <td>残りスペース全て使う </td> </tr> </table> このままでもやりたいことはできるような・・・。 もしかしてCSSで td{ width:120px; } としていませんか? ↑をすると、両方のtdにかかってしまうので表示が崩れているのだと・・・。 作るとしたら <table width="100%"> <tr> <td width="120">120px固定</td> <td>残りのスペース</td> </tr> </table> ですが <table> <tr> <th width="120">120px固定</th> <td>残りのスペース</td> </tr> </table> のほうがいいかと。 で、いちいちthにwidthを入れるのは面倒なので CSSで th{ width:120px; } とするのが良いのかと。 最後に書くのもなんですが カテゴリはおそらく [技術者向] コンピューター > プログラミング > Webデザイン・CSS でしょう。 もしくは [技術者向] コンピューター > プログラミング > HTML でしょう。

tetish
質問者

お礼

早速ありがとうございます。 ここに記載するためにstyleとしたのですが、実際には以下の通りです。 (初めからコピペすれば良かったですね…) <table id="contentstable"> <tr> <td id="leftarea">120pxで固定したい</td> <td id="mainarea">残りスペース全て使う </td> </tr> </table> #contentstable {width:100%; } #contentstable td#leftarea { width:120px; background-color:white; padding:0 0; vertical-align:top; } #contentstable td#mainarea { vertical-align:top; padding:60px 0 20px;; } です。 IEもFirefoxも、ブラウザの横幅に合わせて広くなります。(120pxより狭くなることはありません) 引き続き、原因が分かりましたらアドバイスをどうぞ宜しくお願い致します。 ※カテゴリについてはすみません。CSSというのを見つけることができませんでした。。

関連するQ&A

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

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

  • css で指定した div と table の幅が

    html と css の勉強中です。 スタイルシートで次のように同じ幅を 指定したのですが、表とブロックの幅が 揃いません。 <style><!-- #a {width:300px;border:solid 2px} #b {width:300px;border:solid 2px} --></style> <div id="a"> <p> a b c d </p> </div> <table id="b" border="1"> <tr> <td>a</td><td>b</td><td>c</td><td>d</td> </tr> </table> ブラウザは IE6と opera で見てみました。 お願いします。

    • ベストアンサー
    • CSS
  • cssで<div>にpaddingを指定したとき

    下のように、cssで<div>にwidth720px、padding10px,background-color: #00FFFF;と指定して、 IE6とoperaで表示してみたところ、widthが740px、padding10pxになってしまいます。 divの下に740pxのテーブルをおいて確認してみました。 これは、こういうものと、思うしかないのでしょうか? また、こうなるのは、私だけなのでしょうか? <style type="text/css"> <!-- #contents { width: 720px; padding: 10px; background-color: #00FFFF; } --> </style> </head> <body> <div id="contents"> あああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ </div> <table width="740" border="0"> <tr> <td bgcolor="#0000FF">あ</td> </tr> </table> </body>

    • ベストアンサー
    • HTML
  • width指定したTDでwhite-space:nowrapが効かない

    width指定したTDでwhite-space:nowrapが効かない ブラウザはIE6~8のみを想定しています。 下記のHTMLでは、2行目は正常なのですが、1行目のnowrapが働かず、改行がかかってしまいます。 列毎に幅を指定する必要があるので、1行目にはwidthを指定しているのですが、 どのようにすれば自動改行を禁止できるでしょうか。 <table style="table-layout: fixed;"> <tr> <td style="width: 50px; overflow: hidden; white-space: nowrap;">あああああああ</td> <td style="width: 70px; overflow: hidden; white-space: nowrap;">あああああああ</td> </tr> <tr> <td style="overflow: hidden; white-space: nowrap;">あああああああ</td> <td style="overflow: hidden; white-space: nowrap;">あああああああ</td> </tr> </table>

    • ベストアンサー
    • HTML
  • CSSでの画像の自動縮小について

    あるホームページを作成しているのですが、ブラウザを縮小した時、画像を自動で縮小したいのですがうまくいきません。 テーブルのレイアウトを崩したくないので、幅は固定したまま、かつ画像はブラウザサイズによって自動縮小にするようにしたいのですが、どうやってもうまくいきません。 ソースコードは下の通りです。 やはり、フレームレイアウト(waku)と、テーブルの幅を可変(パーセント表示)にしないと、画像の伸縮は難しいのでしょうか。 **** HTML部分(CSSは外部) ***** <body> <div id="waku"> <div id="a"> <table border="1" width="100%"> <tr> <td>ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ</td> </tr> <tr> <td> <div id="b"> 画像の説明 <img src="01.jpg"> </div> </td> </tr> </table> </div> <div id="c"> <table border="1" width="100%"> <tr> <td>ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ</td> </tr> </table> </div> </div> </body> **** style.css(CSS部分) ***** #waku { width:900px; border: 1px solid #000; } #a { width:800px; } #b img { max-width: 600px important!; width: 100% important!; max-height: 300px important!; height: 100% important!; } #c { width:800px; }

    • ベストアンサー
    • HTML
  • CSSがわかりません!

    <table> <tbody> <tr> <td>あ <td>い <td>う ・・・ って感じになってて、この「い」だけを300pxの幅にしたいです。 CSSに td.under_supplementation_table{ width: 300px important!; } と記述し、 <table> <tbody> <tr> <td>あ <td class="under_supplementation_table">い <td>う に直しても、うまくいきませんでした。 正しい修正方法を教えてください。

    • ベストアンサー
    • CSS
  • 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
  • tdに指定したborderの隙間について

    tdにborder(dotted)を指定して線を引きたいのですが、 セルの境目に隙間が空いてしまいます。 《html》 <table class="information"> <tr> <td class="infoborder_u">営業時間</td> <td class="infoborder_u">月曜~金曜</td> <td class="infoborder_u">9:00 ~ 19:00</td> </tr> 《css》 .information{ width: 350px; height: 180px; background-color: #808080; margin: 10 0 0 0px; border-collapse: collapse; } .information td{ padding-left: 10px; } .infoborder_u{ border-style: dotted; border-width: 1 0 0 0px; border-color: #000000; } 回避方法はないでしょうか?

  • CSSのテーブルの件で

    はじめまして よろしくお願いいたします。 CSSでテーブルを作っているのですが うまくいきません 作りたいのは下記のようなテーブルです ┌───────┐ │ A  │ B   │ └───────┘ 点線ではなく普通の線で構いません 大きなテーブルの幅が500pxとして Aを200px Bを300px にしたいのです テーブルのIDは「table2」にしています <外部CSSの部分> #table2{border:1px solid #000000; width:500px; } #table2 th{border:1px solid #000000; width:200px; } #table2 td{border:1px solid #000000; width:300px; } <htmlの部分> <table id="table2"> <tr> <td></td> </tr> </table> 色々やってみたのですが うまく行きません 詳しい方教えて頂けないでしょうか? どうぞよろしくお願いいたします。

    • ベストアンサー
    • HTML
  • ●tableをCSSで書き直すには(HTMLソース付き)

    いつも勉強させていただいております。 今回は質問をさせていただけないでしょうか。 上の表の枠のように少し立体感があるようにしたいと思います。 これを、CSSにしたいのですが、border-styleをいろいろ試しても同じようになりません。 どのようにすれば良いでしょうか? <html> <STYLE TYPE="text/css"> <!-- .TTT { border-style:ridge; padding:0px; border-width:1px; } --> </STYLE> <body bgcolor="#FF88FF"> <table width="270" border="1" cellpadding="0" cellspacing="0" > <tr> <td>こんな感じにしたいです。</td> <td>BBB</td> </tr> </table> <br> <table style="width:270px;" class="TTT"> <tr class="TTT"> <td class="TTT">なぜか、こんな感じになってしまいます。</td> <td class="TTT">DDD</td> </tr> </table> <br> </body> </html>

専門家に質問してみよう