テーブルを使用する通常のアプローチとは対照的に、フローティング div を使用してフォームを作成しようとしています。送信ボタンに到達し、中央に配置しようとしています。通常、ブロック要素である DIV は、自動的に行全体を使い果たし、その後に改行がありますね。しかし、私のものはそうではなく、その理由がわかりません。幅を明示的に 100% に設定しようとしましたが、それでも全幅を使用しません。さらに混乱させるために、div は clear:both; でスタイル設定されています。これにより、コンテンツが横に浮かないようにする必要があると思いました。また、次のテキストを独自の div に入れてみましたが、何も変わりませんでした。submit div の横にテキストが浮いているのはなぜですか?
<style type="text/css">
#rlpContactForm
{
width:275px;
}
#rlpContactForm label
{
display:block;
float:left;
width:112px;
text-align:right;
font-weight:bold;
}
#rlpContactForm input
{
float:left;
margin:0 0 5px 5px;
}
#rlpContactForm input[type="text"]
{
border: 1px solid #999999;
}
#rlpContactForm input[type="text"]
{
width: 146px; /*175 available - total width of label (including margins/borders/10pxwiggle room)*/
padding: 1px 0px 1px 0px; /* Otherwise IE adds 1px right and left padding automatically */
}
#rlpContactForm input[type="text"].age
{
width: 44px; /* Sized for 3 boxes to fit 1 line */
margin: 0 0 5px 5px;
text-align:center;
}
#rlpContactForm .submit
{
float:none;
clear:both;
width:100%;
text-align:center;
}
</style>
...
<div id="rlpContactForm">
<label>First Name:</label>
<asp:TextBox ID="txtFName" runat="server" />
<label>Last Name:</label>
<asp:TextBox ID="txtLName" runat="server" />
<label>E-mail:</label>
<asp:TextBox ID="txtEmail" runat="server" />
<label>Phone:</label>
<asp:TextBox ID="txtPhone" runat="server" />
<label>Children's Ages:</label>
<asp:TextBox ID="txtAge1" runat="server" CssClass="age"/>
<asp:TextBox ID="txtAge2" runat="server" CssClass="age"/>
<asp:TextBox ID="txtAge3" runat="server" CssClass="age"/>
<div class="submit"><asp:Button ID="btnSubmit" runat="server" Text="Submit"/></div>
Thank you for your interest. A team member will contact you shortly.
</div>
IEとFirefoxは次のように表示されます
|Submit|Thank you for your interest. A
team member will contact you
shortly.