我是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相同。
有什么建议吗?
答案 0 :(得分:2)
问题在于浮动<label>
元素。您需要清除浮动,否则布局问题将持续存在。
我创建了一个JsFiddle,其中包含.clear {clear: both;}
作为CSS类并将<div class="clear"></div>
应用于相应区域的清算示例。
答案 1 :(得分:1)
当一个元素浮动时,它将从html的结构中删除。如果另一个元素中的每个元素都浮动,则包含元素认为它是空的并且将显示没有高度。尽管仍然显示内部的浮动元素,但它们仍然会将下一个元素推向页面的下方。这会导致没有浮动元素的第一个元素认为它从页面顶部开始。
解决方案只是在#reqmsg之前添加一个空div,如<div style="clear: both"></div>