为什么表单元素的前后有一大块空白?
解决思路:
因为表单元素form是默认外补白margin属性不为0的块元素,所以要解决问题有两个方法,定义块元素为行内元素,或者设置CSS对象的margin属性为0。
具体步骤:
方法一:设置CSS对象的margin属性为0:
<div style="border:1px solid #000">第一行<form style="margin:0px"></form>第二行</div>
方法二:把块元素设置为行内元素:
<div style="border:1px solid #000">第一行<form style="display:inline"></form>第一行</div>
虽然还有一种是把<form>标签跟<tr>或者<td>嵌套的写法,但不推荐使用:
<table><form><tr><td>单元格</td></tr></form></table>
或
<table><tr><form><td>单元格</td></form></tr></table>
注意:第一种方法在表单前后的文字不在同一行,而第二种方法同行。
提示:如果想改变所有表单的这个效果,可以直接在CSS里定义:
<style>
form{margin:0px}
</style>
或
<style>
form{display:inline}
</style>
特别提示
本例中加的 DIV元素并设置边框,目的是为了让读者能更清楚的看出效果。图1.4.9、图1.4.10和图1.4.11分别为按本例设置前后的效果对比。
图1.4.9 未设置前时的表单
图1.4.10按方法一设置的表单
图1.4.11 按方法二设置的表单