• 締切済み

表示されているtd幅を変えたい。

width=100のテーブルでtd width=50 が2つ作ってあります。 これをボタンを押すとtd width=40 width=60とかに、表示した後にセルの幅を変えたいのですが、できないでしょうか? よろしくお願いします。 ※IE専用でもかまいません。

  • ekap
  • お礼率0% (0/3)
  • HTML
  • 回答数3
  • ありがとう数1

みんなの回答

  • Masazo-
  • ベストアンサー率48% (12/25)
回答No.3

=========================================================== <INPUT type=text name=txtSize size=4 value=200> <INPUT type="button" value="変更1" onclick="ChangeSize1();"> <INPUT type="button" value="変更2" onclick="ChangeSize2(txtSize.value);"> <TABLE width="400px" border="1"> <TR> <TD ID="tdLeft"width="100px" >aaa</TD> <TD ID="tdRight">bbb</TD> </TR> </TABLE> <SCRIPT language="JavaScript"> function ChangeSize1(){ tdLeft.width = txtSize.value; } function ChangeSize2(aSize){ tdLeft.width = aSize; } </SCRIPT> =========================================================== こういうことですか? 「変更1」と「変更2」は微妙に異なる作りです。用途に合わせてください。 (とりあえずIEのみです。) ものすごく適当ですみません。

回答No.2

 まず、CGIでページを作成すれば簡単にできます。しかし、これはCGIというもの自体が知らない人には厄介です。  次にJavaScriptを使う方法ですが、命令としてはそういったことはできません。背景を変える、などは可能ですが。  よって、その場合は次のようにすることで一応実現できます。  まず、width=50が2つのページを普通に作ります。  別に40と60のページを作ります。つまり、それ以外は上と同じです。  最初に前者のページを表示し、ボタンを押したら後者のページへ飛びます。  後者のページにも前者へ飛ぶためのボタンを作れば、事実上セルの表示幅だけが変わっているように見えます。  基本的に、CGIかSSIを利用しないとデータは記録できません。  またJavaScriptによって、なさりたいような効果を素直に表現することは無理だと思います。  ダイナミックhtmlというものだったら可能かも知れませんが、それは専門外なので・・・(汗)。

  • shigatsu
  • ベストアンサー率26% (511/1924)
回答No.1

HTMLが動的に作成されるような仕組みになっていれば可能でしょう。 例えばJavaScriptやCGIなどを使えばIE専用でなくても可能だと思います。 幅を変数として持っていれば、その変数の値を変更してリロードすればいけると思います。

関連するQ&A

  • テーブル<TD>の幅の固定

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

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

    tableのwidth指定についての質問です。 同じレイアウトで複数のhtmlファイルを作るのですが、その中のテーブル及びセルの幅をwidthで固定してあるのにも関わらず、セル内のテキストの長さによって各ファイルごとのテーブルのセルの幅が、IEでの表示で変わってしまいます。 <table width="450" cellspacing="0" cellpadding="2" border="1"> <tr> <th bgcolor="#ffcccc" width="150">aaaaaaaaa</th> <th bgcolor="#ffcccc" width="286">\100,000</th> </tr> <tr> <td colspan="2">ここには商品説明が入ります。ああああああああああああああああああああああああああああああああああああ</td> </tr> </table> 上記のaaaaaaaaaの部分がファイルによって長さが違うのですが、それによってセルの幅が変わってしまいます。 IE6でプレビューすると変わりますが、firefoxでは変わりません。 <th>を<td>に変更すると、幅は固定され変わりません。 IEの場合、thでwidth指定が出来ないのでしょうか。 なぜ変わってしまうのでしょうか?どこかに記述の問題があれば教えていただければありがたく思います。

  • テーブル(TD)の幅について。

    <TD WIDTH=100>この幅指定はディスプレイ幅内のテーブル幅なら有効なんですが ディスプレイ幅を超えるテーブル幅になると途端に崩れてしまい 意図しないところで勝手に改行されていたりします。 この問題を回避する為には<TABLE>の方にも幅指定してやらないといけないのでしょうか? それとも回避不能なんでしょうか?よろしくお願いします。

    • ベストアンサー
    • HTML
  • tableでcolspanを使うと次行以下のセルの幅が均等に?

    tableでcolspanを使うと、colspanで結合した行の次行以下のセルの幅が均等になってしまいます。 どうすれば、colspanで結合した行の次行以下のセルの幅が均等になるのを防げるでしょうか?IE6,IE7 意図的にスタイルシートは、使用しないでください。 例: <table width="300" border="1" cellspacing="1" cellpadding="5"> <tr> <td colspan="2" width="284" align="center"> タイトルセル </td> </tr> <tr align="left" valign="top"> <td width="100"> セル左 <td> <td width="171"> セル右 <td> </tr> <table> 上記の場合、本来ならば、左のセルの幅(100px)が右のセルの幅(171px)より狭いはずなのに、左のセルの幅と右のセルの幅が均等になっていしまいます。 下記コード部分を上記のコードから削除すると、本来の比率で左のセルと右のセルの幅が表示されます。 <tr> <td colspan="2" width="284" align="center"> タイトルセル </td> </tr> よろしくお願いします。

    • ベストアンサー
    • HTML
  • tdタグに何も入れなくとも幅を均一にする方法

    <table border = "1"> <tr> <th>hoge</th> <td></td> </tr> </table> 上記のような場合、<td>タグ内には何も書かれてないので セルがつぶされた形で表示されますよね? これを<th>タグ内のhogeと同じセルの幅で表示するにはどうすればいいですか? style属性にwidth:100pxとかしてみたのですが無駄でした‥

    • ベストアンサー
    • HTML
  • ●○■□などの文字を含んだ<td>の幅指定について

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

  • セルの幅について

    htmlで指定した幅と開発者ツールで確認した実際の幅、JQUERYで取得できる幅 それぞれ違うのはなぜでしょうか。 具体的なhtmlは以下のようなものです。 table-layout: fixedは都合により使う事ができません。 <script src="./jquery.js" type="text/javascript"></script> <table border="1"> <colgroup> <col width="10"> <col width="20"> <col width="30"> </colgroup> <thead> </thead> <tbody> <tr> <td class="a">a</td> <td class="b">b</td> <td class="c">c</td> </tr> </tbody> </table> <script type="text/javascript"> alert($('.a').width()); </script> 開発者ツールで確認すると左から14 24 34の幅になります。 また、jqueryでセルの幅をwidth()で取得すると 12 22 32となります。 指定 使用しているブラウザはIE8 / IE6です。

  • 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
  • テーブルの幅指定について

    <html> <head></head> <body> <table border width="800" align="center"> <tr> <td>1日目</td>  <td width="200">7:00駅集合→8:00新幹線出発→15:00宿着</td> </tr> <tr> <td>2日目</td>  <td>10:00宿出発→12:00新幹線出発→17:00駅着</td> </tr> </table> </body> </html> ・・・というページを作ります。注目して欲しいのは1行目の2番目のセルのwidth="200"です。  ネスケ(7.02)で見た場合、幅は200になりません。指定しないときと変わらない幅になります。  IE6の場合、セルの幅は変わらないままなのですが、どうやら、中の文字は200が効いているらしく、途中で改行になってます。  次に上のファイルにドキュタイプ宣言 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> をつけてみました。  そうすると、ネスケでは、指定通りセル幅200になりましたが、IEは変わった感じがしませんでした。  これは、ドキュタイプ宣言をつけたネスケが正しい動きをし、IEの動きはバグと考えてよいのでしょうか?  普通に考えると、ドキュタイプのネスケの表示が1番正しい気がするのですが・・・

    • ベストアンサー
    • HTML
  • セルを結合してもCSSで設定した一つ分の幅で表示されます

    tableタグを使用して表を作成しており、幅や罫線などの装飾はすべてCSSを使用しています。 質問は、WindowsのIEのみで発生する事象についてです。 colspanで結合しているthタグやtdタグがいくつかあるのですが、それらがCSSのwidthで設定した幅の一つ分で表示されてしまうのです。 FirefoxやSafari、Mac版IEでは発生しません。結合したセルの幅で表示されます(例:widthで100pxを設定し、colspan="3"なら、300pxで表示)。 これはWindows IEのバグでしょうか? ネット上でかなり探してみましたが、情報は得られませんでした。 解決策・回避策をご存じの方、ご教示ください。

専門家に質問してみよう