这个间距问题让我发疯。我终于想通了,为了在表单元素之间有空格,我需要格式化我的HTML代码,如下所示。
有人能解释一下这里发生了什么吗?这是一个换行问题吗?
注意:
.form-group
div的布局方式1。带空格的表单元素:
<!DOCTYPE html>
<html>
<head>
<title>Elements with spaces</title>
<link href="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet" media="screen">
</head>
<body>
<form class="form-inline" role="form">
<div class="form-group">
<input type="email" class="form-control" placeholder="Enter email">
</div>
<div class="form-group">
<input type="password" class="form-control" placeholder="Password">
</div>
<button type="submit" class="btn btn-default">Sign in</button>
</form>
</body>
</html>
2。表单元素没有空格:
<!DOCTYPE html>
<html>
<head>
<title>Elements with spaces</title>
<link href="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet" media="screen">
</head>
<body>
<form class="form-inline" role="form">
<div class="form-group">
<input type="email" class="form-control" placeholder="Enter email">
</div><div class="form-group">
<input type="password" class="form-control" placeholder="Password">
</div><button type="submit" class="btn btn-default">Sign in</button>
</form>
</body>
</html>
答案 0 :(得分:3)
内联元素对代码中的空白区域很敏感。由于您的示例中的div通常是块级元素,但它们并排出现,因此您的CSS很可能会将它们更改为内联显示。您还可以使用HTML注释消除差距。
<div class="form-group">
<input type="email" class="form-control" placeholder="Enter email">
</div><!--
--><div class="form-group">
<input type="password" class="form-control" placeholder="Password">
</div>
答案 1 :(得分:1)
根据Bootstrap文档(http://getbootstrap.com/css/#forms-inline),form-group
用于包裹form-control
,因此您的第二种方法更好。
您的第一个示例是按预期呈现,因为Bootstrap CSS设置inline-block
并且form-control
本身没有边距。您可以通过在CSS中使用margin来覆盖此行为。
.form-inline .form-control {
display: inline-block;
margin-right:4px;
}
答案 2 :(得分:0)
作为j08691答案的替代方法,这是我用来防止空格的方法:
<div class="form-group">
<input type="email" class="form-control" placeholder="Enter email">
</div
><div class="form-group">
<input type="password" class="form-control" placeholder="Password">
</div>
您不会引入不必要的注释,但在某些IDE中自动格式化可能会使您的缩进陷入困境。