FORM文で改行されないようにするには?

[上に] [前に] [次に]
いそぎんちゃく 1999/10/29(金) 10:20:00
 <FORM …>文や、</FORM>文を使うと、ブラウザ上でそこが改行されてしまいます。

 この意図しない改行を防ぐために、
 近くに<TABLE>がある場合は、</TR>と</TABLE>の間に入れてしまうという手がありますが、ないような場合はわざわざ仮のTABLEを作ってまではそういうことはやりたくありません(TABLEはページを重たくする原因になるので…)。

 何か、他に良い手がありましたら御教授願います。

いちま 1999/10/29(金) 15:32:39
いちいちTABLEに入れなくても、
TABLEの外に直においても動作すると思うんですが、どうですか?

いちま 1999/10/29(金) 15:35:05
TABLEで改行されるのが嫌なら極端な話、
<body>の後と、</body>の前に<form>タグを置けば
改行はわからないと思います。

#質問の意図と違っていたらすみません。

そに〜 1999/10/29(金) 18:18:13
たとえば画像があって、
その右側にフォームをつけたいって事ですかね?

  ■□←チェックボタンなどのフォーム
画像↑

こんな感じ?
だとしたらFORMタグの中にIMGタグを入れればいいのでは?
全然関係無いか

1999/10/30(土) 07:46:11
一般的によく使われている(?)方法は、<form・・・>はページの一番上に持ってくる、
あるいは改行があっても目立たない所に持ってくる。</form>はページの一番下に
持っていく、という方式のように思います。
よく使われている、と言っても「あれ、このフォームは改行が入ってない、どうやってるんだろう?」
と思ってソースを見てみたいくつかのページがたまたまそのようにしていた、
ということですが。

いそぎんちゃく 1999/11/01(月) 09:37:08
> 一般的によく使われている(?)方法は、<form・・・>はページの一番上に持ってくる、
> あるいは改行があっても目立たない所に持ってくる。</form>はページの一番下に
> 持っていく、という方式のように思います。

 たしかにそのとおりだと思います。
 しかし、私が作ろうとしているのは、ページ内にいくつものFORMがあるというものでして…、しかしまぁなかなか良い方法は見付からないみたいですね。
 「そに〜」さんの方法も基本的には、ページの一番上と一番下というのと変わらないと思います。
 ども、みなさん。いろいろ意見出して下さってありがとうございました。

のぐ 1999/11/01(月) 17:10:37
私も普通はみなさんのような方法を取ってますが、こんなのもありです。
一応、改行はなくなります。NC4、IE5 で動作します(多分IE4も)。

<form name="form1" style="float:left">
<input type="checkbox" name="check1" value="1">Check 1
</form>
<form name="form2" style="float:left">
<input type="checkbox" name="check2" value="2">Check 2
</form>

そに〜 1999/11/01(月) 17:23:22
個人的に知りたいんですけど、
FORMで改行してしまう状態ってどんな感じなんでしょう?
どれがその状態かちょっとわからなかったんで

いちま 1999/11/01(月) 17:54:23
> そに〜さんへ
テーブルなんかに<form>ごと入れてみるとよくわかります(^^)
四角い入力するところの上下に改行が入っちゃって
テーブルの高さがみょっと伸びます。

そに〜 1999/11/01(月) 18:04:48
なるほど、自分で回答しといて今やってることがわかった…
どうもです。

…?解決じゃないんですか?

J.Naka 1999/11/01(月) 20:26:48
想像で、スタイルシートで、FORMの改行をゼロにする。

moci [E-Mail] 1999/11/02(火) 08:18:21
FORMは一つにして、type=submitのINPUTにnameとvalueを
指定して、actionで呼ばれたCGI側でどのボタンが押されたかを
判別するという手はいかがでしょう?

Another HTML-lintでは、nameに同じ値を指定している、と
怒られてしまいますが^^;

いそぎんちゃく 1999/11/02(火) 09:47:53
[[解決]]
 みなさん、いろいろ御意見出して下さってありがとうございます。
 こんなHTMLを仮に作って試してみました。

<HTML>
通常
<form name="form1">  
<input type="checkbox" name="check1" value="1">Check 1
<input type="submit" value="送信">
</form>
<form name="form2">
<input type="checkbox" name="check2" value="2">Check 2
<input type="submit" value="送信">
</form>
<BR CLEAR=ALL>
<HR>
form style="float:left"
<form name="form1" style="float:left">
<input type="checkbox" name="check1" value="1">Check 1
<input type="submit" value="送信">
</form>
<form name="form2" style="float:left">
<input type="checkbox" name="check2" value="2">Check 2
<input type="submit" value="送信">
</form>
<BR CLEAR=ALL>
<HR>
form style="line-height:0%"
<form name="form1" style="line-height:0%">
<input type="checkbox" name="check1" value="1">Check 1
<input type="submit" value="送信">
</form>
<form name="form2" style="line-height:0%">
<input type="checkbox" name="check2" value="2">Check 2
<input type="submit" value="送信">
</form>
<BR CLEAR=ALL>
<HR>
</HTML>

 イメージは、実際に作られて見てもらうとしまして…、
 のぐさんの案(float:left)が良いかなと思われましたが、最初のformでなぜか改行がどうしても入ってしまいました(IE5/NC4.7共)。
 後、line-height:0%指定は、「改行させない」という目的はまるで果たせず、しかもNC4.7の場合2個目のformがある行の表示の字がかけてしまって使い物になりませんでした。

 mociさんの意見は「究極の裏技」といった感じで面白いですね。

 完全な解決とまでは至ってないんですが、とりあえず「こうすると、こうなる」という事が分かっただけでも収穫でした。
 みなさん、ありがとうございました。
 解決印、つけておきます。

moci 1999/11/02(火) 14:58:58
蛇足ながら、RFC1866 HTML2.0の仕様にも例示されているので、
表か裏かと言えば、表かと…

まあ昨今の「裏技」という言葉は、表か裏かという意味合いとは
だいぶ違ってきているようにも思われますが^^;

いそぎんちゃく 1999/11/02(火) 16:08:25
こりゃまた、失礼しました。>mociさん

J.Naka [E-Mail] 1999/11/13(土) 21:32:41
ところで、何故、FORMには改行があるの?
どんな理由?
言語仕様として、1つだけへんてこな動作するのはバグに近いのではないの?Object-Orientedの継承から逸脱しているで。

というのを、フリーメールログイン用インターフェィス作成中にFORMの改行がバランスを崩すために、またぞろ思い返したというわけ(^^;

[上に] [前に] [次に]