我正在学习一些css并希望制作一个两列形式,没有任何表格标签等。 这就是我所拥有的(来自CSS Cookbook 3ed版的代码)。
HTML code:
<div class="container">
<form id="regform" name="regform" method="post" action="/regform.php">
<div id="register">
<h4>Register</h4>
<label for="fmlogin">Login</label>
<input type="text" name="fmlogin" id="fmlogin" />
<label for="fmemail">Email Address</label>
<input type="text" name="fmemail" id="fmemail" />
<label for="fmemail2">Confirm Address</label>
<input type="text" name="fmemail2" id="fmemail2" />
<label for="fmpswd">Password</label>
<input type="password" name="fmpswd" id="fmpswd" />
<label for="fmpswd2">Confirm Password</label>
<input type="password" name="fmpswd2" id="fmpswd2" />
</div>
<div id="contactinfo">
<h4>Contact Information</h4>
<label for="fmfname">First Name</label>
<input type="text" name="fmfname" id="fmfname" />
<label for="fmlname">Last Name</label>
<input type="text" name="fmlname" id="fmlname" />
<label for="fmaddy1">Address 1</label>
<input type="text" name="fmaddy1" id="fmaddy1" />
<label for="fmaddy2">Address 2</label>
<input type="text" name="fmaddy2" id="fmaddy2" />
<label for="fmcity">City</label>
<input type="text" name="fmcity" id="fmcity" />
<label for="fmstate">State or Province</label>
<input type="text" name="fmstate" id="fmstate" />
<label for="fmzip">Zip</label>
<input type="text" name="fmzip" id="fmzip" size="5" />
<label for="fmcountry">Country</label>
<input type="text" name="fmcountry" id="fmcountry" />
<input type="submit" name="submit" value="send" class="submit" />
</div>
</form>
</div>
CSS代码:
label {
margin-top: .33em;
display: block;
}
input {
display: block;
width: 250px;
}
#register {
float: left;
}
#contactinfo {
padding-left: 275px;
}
答案 0 :(得分:2)
因为你浮动一个div而不是另一个div。
通过一些简单的CSS更改,它将起作用(只要h4
不跨越多行):
#register {
float: left;
width: 275px;
}
#contactinfo {
float: left;
}
请参阅updated fiddle。
答案 1 :(得分:0)
以下是我的调试方法(除了我使用Firebug或其他Inspect / devtools):http://jsfiddle.net/PhilippeVay/yuxTA/2/
正如@Arjan在回答中所述,这是由于浮动及其影响
取消注释不会修改布局的解决方案的最后一个CSS声明。如果您想要一个垂直边距,请同时将margin-top
添加到两列或padding-top
答案 2 :(得分:0)
另一种选择是从h4
移除边距(尽管如其他答案所述,浮动[或类似]两列更有意义。)
h4 {margin: 0;}
答案 3 :(得分:0)
你必须在容器中浮动所有div
#register {
float: left;
}
#contactinfo {
float:left;
margin-left:30px; /*increase or decrease if you like*/
}