• ベストアンサー

投稿フォームの整列

CSS + HTMLでのinputフォームを使う際、フォームの左側に文字を入れたいのですが、文字数が違うと端がそろわなくなり見た目が悪いです。(画像参照) float:leftでできるかと思い文字とフォームを左右に分けたのですが文字の高さとフォームの高さがうまくあわせられなくてうまくいきません。(文字=0.9em) inputフォームの左端を揃えるにはどのようにすればよいのでしょうか?

  • HTML
  • 回答数5
  • ありがとう数6

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

  • ベストアンサー
  • mflow
  • ベストアンサー率63% (42/66)
回答No.5

こんな感じが今のスタンダード。 テーブルタグでやるとか、ナンセンスです。 dl.profile dt{ clear:left; position: relative; float: left; width: 10em; padding:10px 0px 0px 0px; } dl.profile dd{ margin-left: 10em; width: 300px; padding: 10px 10px 10px 0px; } <dl class="profile"> <dt>お名前</dt> <dd><input name="name" type="text" size="40" /></dd> <dt>件名</dt> <dd><input name="subject" type="text" size="40" /></dd> <dt>メール</dt> <dd><input name="email" type="text" size="40" /></dd> </dl>

django13
質問者

お礼

今思いっきりテーブルでやってたところです(笑) こちらのやり方もきれいにまとまりますね。

その他の回答 (4)

noname#119957
noname#119957
回答No.4

■formの要素を綺麗に配置する一番簡単な方法は、テーブルに格納することです。 ■CSSでやりたいなら、この場合は、labelのとテキストエリアの幅を固定すればいけそうに思います。

django13
質問者

お礼

装飾にもなるのでよさそうですね。 ちょっと試してみます。

  • torayoshi
  • ベストアンサー率62% (910/1449)
回答No.3

一番簡単なやり方。 すべて6バイトで統一する。 お名前 件 名 メール

django13
質問者

お礼

これも悪くないのですが、プロポーショナルフォントだと若干がたつきますね。

  • salonpath
  • ベストアンサー率48% (194/399)
回答No.2

どんなマークアップしてるかで変わってきますが お名前、件名、メール側のタグでwidthを固定したらいいと思いますよ。

django13
質問者

お礼

文字の3行を左div、input3段を右divでfloatしてたのがそもそも間違いでした。 難しく考えすぎだったようですね。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

一般に縦横の整列をした表示をテーブルといいます。 またdiv+floatでやるなら、余裕をみた固定のwidthをcssで 指定してやればよいかとおもいます。

django13
質問者

お礼

わざと大きめにしておくのですか。 ブラウザの解釈によってもばらつきがでないのでいいですね。

関連するQ&A

  • DIVタグについて

    DIVタグのstyleで二つの画像を左右の端に標示することは可能でしょうか? floatでleftを指定すると当然、二つの画像が左端に寄ってしまいました。 DIVのwidthで指定した幅の左右に標示させたいんです。

  • css フォームのプルボタンを使う場合

    cssでselect(プルダウンメニュー)を定義すると、 その後のフォーム(例えばテキストフィールド)のレイアウトが崩れます。 お詳しい方、ご教授いただければ幸いです。 ======================================= html側の記述です ======================================= <form accept-charset="UTF-8" action="/mmm" > <div style="margin:0;padding:0;display:inline"></div> <div class="field"> <label for="vvv">氏名</label> <input id="vvv_name" name="vvv[name]" size="30" type="text"> </div> <div class="field"> <label for="xxx">好きな果物</label> <select id="xxx" name="site[ftp_id]"><option selected="selected" value=""></option> <option value="1">りんご</option> <option value="2">さくらんぼ</option></select> </div> <div class="field"> <!--#ここのレイアウトが崩れます--> <label for="yyy">好きな動物</label> <input id="yyy" name="yyy[yyy]" size="30" type="text"> </div> </form> ======================================= cssの記述です ======================================= * { margin: 0; padding: 0; } .field { width:500px;} .field label { width:230px; float:left; color:#FFFFFF; background-color:#001207; display:block; height: 2em; line-height :2em; margin-top:10px; } .field input { width:200px; float:left; color:#FFFFFF; margin-top:10px; height: 2em; } .field select { width:200px; float:left; color:#FFFFFF; margin-top:10px; height: 2em; } どうぞよろしくお願い致します。

    • 締切済み
    • CSS
  • CSSのfloatについて

    ホームページを作成していて、CSSが効かなくて困っています。 2カラムで左側にメニュー 右側にメインのコンテンツを作成しております。 メインのコンテンツは floatでrightに設定していて その中にさらに 2つの内容を入れようと (メインコンテンツ内に左側に画像で右側に画像の詳細をいれたい) floatタグでleftとrightに設定したのですが CSSが効かなくて 左側に画像が配置され その下に画像の詳細文が配置されてしまい 全部左側に配置されてしまいました。 色々と試したみたのですが やっぱりCSSが効きませんでした。 すいません誰かお分かりになられましたら 教えてください。宜しくお願い致します。

  • テキストリンクとテキストで、高さが違ってしまいます。これを直したいのですが…

    左側のテキストリンクは左上に、右側のテキストは右上に表示させたいのですが、FxとIEで高さがずれてしまいます。どちらのブラウザでもIEのように高さが合うようにしたいのですが… 以下、ソースです ---------------------------------------- HTML <div id="footer"> <a href="index.html">左端に揃えたい</a> <p>右端に揃えたい</p> </div> CSS #footer a { float: left; } #footer p { float: right; } ---------------------------------------- 素人質問で申し訳ありません。いろいろ考えた結果、左側はリンクで、右側がテキストだから高さが合わないのではないかと思っているのですが、対策が取れませんでした。

    • ベストアンサー
    • HTML
  • CSSに詳しい方!

    HTMLとCSSを使って画像(完成図)のようなページを作ろうとしていますが、どうしても失敗例のようになってしまいます。どうすれば完成図のようになりますか。 失敗1→サイドバーにfloat:left;を設定。 失敗2→サイドバーと本文にfloat:left;を設定。

    • 締切済み
    • CSS
  • CSSでflotさせた要素を親要素で幅いっぱいに表示したい

    以下のHTMLソースで、リストをfloatで横並びにし、 親のdivに対して3列ずつで左右余白なく幅いっぱいに 表示させたいと考えております。 <div> <ul> <li><img></li> <!-- 複数リストを繰り返し --> <li><img></li> </ul> </div> 例えば以下のようなCSSを書いた場合、  div {width:500px;}  li {float:left; width:150px; margin-left:10px;} 左端はそろいますが、右端に余白が出来てしまいますよね。 各リストに対して左端用クラス、右端用クラスみたいなものを 指定すれば実現は可能だと思いますが、出来るだけHTMLを編集せず 実現したいと考えております。 IE6~7・safariでとりあえず表示させたいです。 どなたか知識のある方、ご教授の程よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • フォーム要素の文字数制限について

    それぞれのフォーム要素に文字数(またはバイト数)の制限ってあるんでしょうか? あるとしたら何文字ですか? maxlengthなどで指定する値や、受け取るプログラム側の制限ではなく、HTMLの仕様としての制限についてです。 特に知りたいのが、隠しフィールド(input type="hidden")の文字数制限です。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • CSSにてfloat:leftを使用して画像を3つ並べたのですが。。

    CSSにてfloat:leftを使用して画像を3つ並べたのですがこの3つの画像をセンターによせることができません。 なんでかまったくわかりません(ToT) 教えてくださいm(__)m 【HTML】 <div class="box2"><img src="images/sum2.gif"></div> <div class="box3"><img src="images/sum3.gif"></div> <div class="box4"><img src="images/sum4.gif"></div> 【CSS】 .box2{ float:left; width:219px; } .box3{ float:left ; width:156px;} .box4{ float:left ; width:195px; }

  • ページヘッダー部分のHTML/CSS

    独学で勉強中の学生です。 どうしてもできなくて…よろしくお願いします! ページヘッダー部分1~5(グローバルナビより上)を画像でHTML入れました。 CSSで 全体を inline 1をfloat: 2をmargin-left; 5をfloat: right; 3,4の高さを合わせることができません。 添付画像のような配置にするにはどうしたらよいのでしょうか。 使っているのはDreamweaverです。 よろしくお願いします。

  • フォームが枠で囲えない

    HTMLとCSSの勉強でサイトを作っているのですが、上下に文章があり、その文章の間にフォームがあるのですが、上の文章しか枠で囲えなくて困っています。 [HTML] <body> <h4>題名</h4> <p class="box"> 文章1 <form method="get" action="hoge.php"> <input type="text" name="form" size="25"><input type="submit" value="実行"> </form> 文章2 </p> </body> [CSS] body { line-height: 1.5; text-align: center; margin-top: 30px; } .box { width: 50%; margin-left: auto; margin-right: auto; border: 1px #000000 solid; } これで、文章1しか枠に囲われません。 回答よろしくお願いします。

    • ベストアンサー
    • HTML

専門家に質問してみよう