• ベストアンサー

</form>を書くとズレる

こんばんは ホームページを作成していて、疑問に思うのですが、入力フォームを作成していてテーブルの中に</form>タグを記述すると、テーブルが壊れてしまいます。 </form>を外すと正常に表示されて、</form>をつけるとズレます。 記述する場所も直下に書いたり</td>の外や</table>の外に書いたりしますが、大丈夫の時とそうでない時があります。 他にもフォームがあるので、直下に記述したいのですが表が崩れてしまい困っています。 どのように対応したら良いか教えてください。 宜しくお願いします。

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

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

 なぜ最初に仕様書を見ないのでしょう。こんな場所で聞いたって正確な解答が得られることは少ないです。 <!ELEMENT TABLE - -   (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>  ⇒11.2.1 TABLE要素( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/tables.html#h-11.2.1 ) 意味は --   開始タグ終了タグとも省略できない CAPTION? ひとつかゼロ(?) (COL*|COLGROUP*) COLゼロ個以上(*)またはCOLGROUPゼロ個以上 THEAD?  ひとつかゼロ個 TFOOT?  ひとつかゼロ個以上 TBODY+  ひとつ以上  しかTABLEの直下には入りません。TRも本当は置けないが <!ELEMENT TR - O (TH|TD)+ -- table row -->  ⇒11.2.5 表の行: TR要素( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/tables.html#h-11.2.5 ) - O  開始タグ省略不可(必須) 終了タグ省略可能 (TH|TD)+ THないしTDがひとつ以上 読み方は・・慣れたら難しくないというか読み方は身につけておくこと  ⇒3.3.3 要素宣言( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/intro/sgmltut.html#h-3.3.3 ) 整理すると FORMの中に入れられる要素  <ADDRESS> <BLOCKQUOTE> <DIV> <DL> <FIELDSET> <H1> <H2> <H3> <H4>  <H5> <H6> <HR> <NOSCRIPT> <OL> <P> <PRE> <SCRIPT> <TABLE> <UL> FORMが存在しうる親要素  <BLOCKQUOTE> <BODY> <DD> <DEL> <DIV> <FIELDSET> <INS> <LI> <MAP>  <NOSCRIPT> <OBJECT> <TD> <TH> だけです。  <table>や<tr>に</form>を書くと、ブラウザは判断できなくなります。そのため適当に要素を追加してなんとか表示できるように工夫します。・・・それが崩れる原因です。 >他にもフォームがあるので、直下に記述したいのですが表が崩れてしまい困っています。  他のフォームがあるのでしたら、文書構造上ひとつのtableに入れてはなりません。  必ず別のtableになるはずです。  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ★ひょっとしてTABLEを配置やデザインのために使用しているのではないですよね。それは論外です。  →『単に文書内容を整形する目的だけで表を用いるべきでない。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/tables.html#h-11.1 )』  →『 ⇒ページレイアウトの目的で表を用いる。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/present/styles.html#h-14.1 )』  きちんと、インデントさせてHTMLを書くようにしましょう。 <form action="./cgi1" method="post">  <table summary="form">   <tbody>    <tr>     <th abbr="氏名">お名前</th>     <td><input type="text" name="name" size="10" value=""></td>  ・・・・  </table> </form> <form action="./cgi2" method="post">  <table summary="form">   <tbody>    <tr>     <th abbr="氏名">お名前</th>     <td><input type="text" name="name" size="10" value=""></td>  ・・・・  </table> </form>  送信先をひとつのプログラムにして、submitの値で処理を分けても良いでしょう。 <form action="./cgi1" method="post">  <table summary="form">   <tbody>    <tr>     <th abbr="氏名">お名前</th>     <td><input type="text" name="name" size="10" value=""></td>  ・・・・    <tr>     <th abbr="送信">送信</th>     <td><input type="submit" name="submit1" value="送信">    </tr>    <tr>     <th abbr="氏名">お名前</th>     <td><input type="text" name="name" size="10" value=""></td>  ・・・・    <tr>     <th abbr="送信">送信</th>     <td><input type="submit" name="submit2" value="送信">    </tr>  </table> </form> とか・・  

arisa_551
質問者

お礼

arisa_551様感謝します。 本当に勉強になります。 恥をしのんで質問したので、初心者の私にとってはとても参考になりました。 これから参考にしてやってみたいと思います。 どうもありがとうございました。

関連するQ&A

  • tableタグとformタグの組み合わせ

    tableタグとformタグの組み合わせでどのように記述すれば、構文上正しいのでしょうか? 私は下のパターンで書いておりますが、間違いでしたら早めに改めたいので お聞きしました。 <table> <form> <input type="hidden" name="a" value="1"> <tr> <td> <input type="text" name="b" value=""> </td> </tr> <tr> <td> <input type="submit" value="OK" value=""> </td> </tr> </fomr> </table>

    • ベストアンサー
    • HTML
  • formタグの挿入について

    こんにちは。 私はホームページビルダー9で作成しています。htmlにformタグを直接貼り付けたいのですが、エラーが出て上手くいきません。 ビルダーの表の中に買い物カゴボタン(数量、サイズ)などを設置したいのです。 例えば下記のような空白の表があります。 <TD> </TD> この表の中に設置しようとすると <TD> <form・・・・・> ・・・・ ・・・・ ・・・・ </form> </TD> と貼り付けてもエラーがでます。貼り付ける場所が間違っているのでしょうか?・・・はformの内容です。 表は分割したりしていくつも分かれた状態です。その中の一つに挿入したいのです。 質問が分かりにくいですがお願いします。

  • FORMタグ後の改行を抑制したい

    FORMタグを使用した後に自動的に改行されますが、これを改行されないように 抑制する方法をご存知でしょうか? 下記の例のようにTABLEタグを使用することで、横にFORMタグを並べることはできたのですが、ひとつのセル内で改行されてしまい、縦長のセルになってしまいます。 <TABLE BORDER=1> <TR> <TD> AAA<FORM> </FORM> </TD> <TD> BBB<FORM> </FORM> </TD> </TR> </TABLE> スタイルシートでも、なんでも構いませんのでなにか方法があったらご教授ください。 環境:Windows2000, IE5.5

    • ベストアンサー
    • HTML
  • <?php ?>内にてformを使用して$POSTに値を送る

    ※PHP初心者なのでお手柔らかにお願いします。 現在PHPを使用して掲示板を作成しているのですが、 掲示板の書き込みフォームの作成で詰まっています。 下記ソースを実行してもテーブルが表示されません。 テーブルのみ表示を試してみたらうまくいったので、 inputタグがおかしいのではと思いますが何が NGなのかよく分かりません。 誰か教えてください。 <?php $Temp = '<div align="center">       <form action="bbs_input.php" method="POST">       <table border="0" width="100%">         <tr>           <td width="20%" align="right" bgcolor="E0FFFF">             <b><font size="2" color="#696969">お名前(HN)               </font></b>           </td>           <td>             <input type="text" name="NAME" size="30"             maxlength="20" value="<?=$_POST['NAME'] ?>">           </td>         </tr>      </table>      </form>      </div>'; print ($Temp); ?>

    • ベストアンサー
    • PHP
  • formで出来る微妙な空間を消したい

    <form>をtableの中に入れたとき、たとえば ************************ <table><tr><td bgcolor=#0000ff><form><input type=submit class=a value="RES"></form></td></tr></table> ************************ とした時に、RESと書かれたボタンの下にかなり空間が残ります。(その空間が分かりやすいようにbgcolorをつけました。)だいたい1行分くらいの空間でしょうか・・・ これの空間を消し去る方法はありますか?? こちらはIE6です。

    • ベストアンサー
    • HTML
  • テーブルの中のフォームについて

    テーブルの中にフォームを入れて使いたいのですが、次のようにフォームを入れると、勝手に改行されてしまいます。 <table> <tr> <td><form>.....</form></td> </tr> </table> または <form> <table> <tr> <td>.....</td> </tr> </table> </form> これが嫌で、次のようにしているのですが、何か問題や他に良い方法があるでしょうか? <table> <form> <tr> <td>.....</td> </tr> </form> </table> ちなみに、Dreamweaverのバリデータでは警告が出ます。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • FORMタグ挿入による勝手に改行されてしまう

    こんにちは。 ホームページビルダー9を使用しています。 TABLEタグ内に、FORMを使用しているのですが、BRタグはないのに、勝手に改行が入ってしまいます。 過去の質問から、 TDタグの外側にFORMを移動すれば良いとあったのですが、FORMタグ内にactionが入っています。 INPUTタグなども存在しているのですが、そのような場合、どのようにしてFORMタグを移動するのでしょう? もしくは、タグを移動させなくても、勝手に入る改行を防ぐことは出来るのでしょうか? 宜しくお願いします。

  • formタグ

    すみません、お教え頂きたいのですが xhtml文でformタグでフォームを作り、PHPで確認画面を見せる といったものを作成したのですが、formの中のtableにCSSで 色などを修飾しようと思って、リンクしている外部CSSに書き込んでも、反応がなく、直接CSSを書き込むとちゃんと色などつきます。何か問題があるのでしょうか?わかりにくい聞き方ですみませんが、宜しくお願いします。

    • ベストアンサー
    • HTML
  • p、form、tableの階層構造

    p、form、tableを正しくコーディングしたいと思っています。どの要素が上位(または同位)になるのでしょうか。 特にformとtableの関係はどのように考えればよいでしょうか。formにはinput、tableにはtr、tdと言うように、下位の要素があるので複雑です。 これらに関して詳しいサイトがあれば教えてください。

    • ベストアンサー
    • HTML
  • WEBサイトのデザインについて教えてください。

    少し前から趣味でホームページを作成するようになり、今ではかなりホームページに興味を持つようになりました。今は飲食店でアルバイトをしているのですが、将来はWEBデザイナーになりたいと思っています。 無料で作れてテンプレートを使用し作成できるサイト作りに飽きてしまい、先日ドリームウィーバーを購入して勉強しています。HTML,CSSはある程度習得できたと思っています。 そこで質問なのですが、tableタグを使用してサイトをデザインしていくのはいけない(好ましくない)のでしょうか?とあるサイトを見てみると、「tableは表を表すタグなのでできる限り使用しない方がよい。CSSを用いてpositionを使用した方が好ましい」といった事が書かれていました。他にも「tableタグ内にtableタグを挿入するのはよくない。spamサイト(?)扱いにされてしまう事がありSEO対策も悪い。」といった事も聞いたことがあります。 今まで私はtableタグを使い、CSSのtext-align:center;を使用して配置していましたのでそのような記事を見てしまい「今まで間違ったことをしていたのだろうか」と思っています。しかし、綺麗に作られたサイトのソースを見たりしてもtableタグを使用しているサイトもあり、実際はどうなのだろうかと心配です。例えば<table>を使用していけないのか、 <table><tr><td> <table> <tr><td> </td></tr> </table> </td></tr></table> 上記のように(見にくくてすみません)table内にtableタグを使用してはいけないのか・・・。いろいろな情報がありすぎてどれが一般的に使用していいのかさっぱりです。 皆様はどのようにWEBデザインをなさっているのでしょうか。やはりtableを使用しないのでしょうか。 説明が長くなってしまいましたが、どなたかご教授していただけませんでしょうか。本気で目指していきたいと思っております。どのような意見でもかまいません。よろしくお願いいたします。

専門家に質問してみよう