dポイントプレゼントキャンペーン実施中!

CSS + HTMLでのinputフォームを使う際、フォームの左側に文字を入れたいのですが、文字数が違うと端がそろわなくなり見た目が悪いです。(画像参照)

float:leftでできるかと思い文字とフォームを左右に分けたのですが文字の高さとフォームの高さがうまくあわせられなくてうまくいきません。(文字=0.9em)

inputフォームの左端を揃えるにはどのようにすればよいのでしょうか?

「投稿フォームの整列」の質問画像

A 回答 (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>
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/10/03 17:43

■formの要素を綺麗に配置する一番簡単な方法は、テーブルに格納することです。


■CSSでやりたいなら、この場合は、labelのとテキストエリアの幅を固定すればいけそうに思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/10/03 17:08

一番簡単なやり方。


すべて6バイトで統一する。

お名前
件 名
メール
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/10/03 17:09

どんなマークアップしてるかで変わってきますが


お名前、件名、メール側のタグでwidthを固定したらいいと思いますよ。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/10/03 17:06

一般に縦横の整列をした表示をテーブルといいます。



またdiv+floatでやるなら、余裕をみた固定のwidthをcssで
指定してやればよいかとおもいます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/10/03 17:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!