1

CSS + テーブルを初めて使用するので、助けが必要です。

ここに私のフォームがあります:

<form id="form" name="form" method="POST" action="contact.asp" accept-charset="utf-8" style="width:540px;">
  <div>
    <label for="name">
      <span class="requ">Name:</span>
      <input type="text" name="name" style="width:180px;">
    </label>
    <label for="email">
      <span class="requ">E-mail:</span>
      <input type="text" name="email" style="width:316px;">
    </label>
  </div>
  <div>
    <label for="message">
      <span class="requ">Message:</span>
      <textarea name="message" rows="8" style="width:518px;"></textarea>
    </label>
  </div>
  <div id="reqmsg"><strong>Important!</strong> Fields with asterisk are required!</div>
  <div id="buttons">
    <input type="submit" name="send" value="Send">
    <input type="reset" name="clear" value="Clear">
  </div>
</form>

CSS は次のとおりです。

#form { padding:0; margin:0 auto; }
#form label { float:left; padding:0; margin:6px; font-family:Arial, Helvetica, sans-serif; }
#form label span { display: block; margin-left:2px; font-size:12px; font-weight: bold; color:#5C5C5C; }
#form label span.requ { background-image:url(../images/required.png); background-repeat:no-repeat; background-position:right 5px; }
#form input { border:1px solid #939393; border-radius:6px; font-size:14px; background-color:#F8F8F8; }
#form input[type="text"] { padding:4px; color:#0067CE; }
#form select { padding:3px; color:#0067CE; border:1px solid #939393; border-radius:6px; background-color:#F8F8F8; cursor:pointer; }
#form textarea { padding:4px; font:normal 14px Arial, Helvetica, sans-serif; color:#0067CE; border:1px solid #939393; border-radius:6px; background-color:#F8F8F8; }
#form input[type="submit"] { width:100px; height:28px; padding:0; margin:0 5px 0 5px; font-size:15px; font-weight:bold; color:#FFFFFF; border: 1px solid #0062C4; border-radius:6px; background-color:#00A0DD; cursor:pointer; }
#form input[type="reset"]  { width:100px; height:28px; padding:0; margin:0 5px 0 5px; font-size:15px; font-weight:bold; color:#FFFFFF; border: 1px solid #707070; border-radius:6px; background-color:#9F9F9F; cursor:pointer; }
#form #reqmsg { display: block; padding:0; margin-top:10px; font:normal 12px Arial, Helvetica, sans-serif; color:#5C5C5C; text-align:center; border:1px solid #000000; }
#form #buttons { display: block; padding:0; margin-top:10px; text-align:center; border:1px solid #000000; }

私が抱えている問題は、div "reqmsg"にあります。問題を確認するために境界線を使用したところ、すべてのフォームが取り込まれました。この div を分離したいので、上下の余白を定義できます。「ボタン」divと同じです。

助言がありますか?

4

2 に答える 2

2

問題はフローティング<label>要素にあります。フロートをクリアする必要があります。そうしないと、レイアウトの問題が解決しません。

CSS クラスとして追加し、適切な領域に適用してクリアする例のJsFiddleを作成しました。.clear {clear: both;}<div class="clear"></div>

于 2013-11-08T14:20:51.323 に答える
1

要素がフローティングされると、html の構造から削除されます。別の要素内のすべての要素がフローティングされている場合、それを含む要素はそれが空であると見なし、高さなしで表示されます。ただし、内部のフローティング要素は引き続き表示され、次の要素をページのさらに下に押し込みます。これにより、フローティング要素のない最初の要素は、ページの先頭から始まると見なされます。

解決策は、#reqmsg の前に空の div を追加するだけです。<div style="clear: both"></div>

于 2013-11-08T14:31:42.320 に答える