Bootstrap表单,列不能按预期的那样工作

时间:2014-05-21 14:01:18

标签: html css twitter-bootstrap

我正在尝试创建一个表单,该表单将在包含验证的表单中显示错误消息框。

我似乎无法使错误框与表单(label -input)列的宽度完全相同。无论我做什么,它似乎都会消失。所以暂时我把它留给了col-sm-12。有人可以向我解释为什么我似乎无法得到这个以匹配标签的宽度和输入宽度?

我对所需的跨度也有同样的问题。我正在努力获得"要求的文字"在输入框下排队。无论我做什么,这都行不通。我可以向左打,使其适合每个尺寸,但这看起来很傻,因为我认为使用cols的框架工作应该为我做?有人可以帮我解决我所缺少的问题。我是相当新的引导程序,我只是难倒。如果我在所需的跨度上放置class =" col-sm-9 col-sm-offest-2,它就不会做任何与class =" col-sm-12"相同的事情。我猜它需要留在我把它拉出来的时候疯了......

这里是标签输入和所需跨度的示例,我唯一可以正常工作的是col-sm-12,因此它至少排成一些东西,但它看起来很荒谬。

<div class="form-group">
        <label class="col-sm-2 control-label" for="InputAddress1">Address 1</label>
        <div class="col-sm-9 col-sm-offest-2  input-group">
            <span class="input-group-addon"><i class="glyphicon glyphicon-asterisk"></i></span>
            <input type="text" class="form-control" placeholder="Address Line 1" autofocus required>
        </div>                                                                                                                            
        <span class="error col-sm-12">Required</span>
  </div>

完整的代码示例可在此处查看 https://stevia-affirm.codio.io/Question.html

谢谢 吉娜

1 个答案:

答案 0 :(得分:1)

我认为你对Require有的问题是你有一个拼写错误(也许你复制并粘贴以重复所需跨度上的错误?)。

您不需要输入组中的偏移量,因为标签的col-sm-2已经存在。如果你纠正了拼写错误,你会得到一些丑陋的东西,因为你的列太多了(即2 + 2 + 9 = 13)。只需将偏移量放在那里。

然后你可以将偏移量添加到你需要的(没有拼写错误;-):

<span class="error col-sm-9 col-sm-offset-2">Required</span>

另外,你的井是表格的宽度。它可能看起来不像是因为右对齐的标签以及每个标签+输入最多只加11而不是12的事实。

编辑:这是表格的清理版本(大部分)。您会注意到我将输入组包装在列的单独类中。这样做的原因是使用form-horizo​​ntal和input-group-addons的组合,使输入为100%+ addon元素的固定宽度。包装这样的所有内容将产生您想要的结果。

<!DOCTYPE html>
<html lang="en">
 <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- Core CSS -->
    <link rel="stylesheet" type="text/css" href="plugins/bootstrap-3.1.1-dist/css/bootstrap.min.css">
 </head>
<body>

    <div class="container">
        <div class="row">
            <div class="col-md-12">
                <h1>Employee Information</h1>
            </div>
        </div>
    </div>
    <div class="container">
        <div class="row">
            <div class="col-sm-12" style="padding-top:30px;">
                <div class="alert alert-danger ">
                    <span class="glyphicon glyphicon-alert "></span><strong> message</strong>
                </div>
            </div>          
        </div>
    </div>

    <div class="container">
        <form class="form-horizontal" role="form">
            <div class="form-group">
                <label class="col-sm-2 control-label ">Name</label>
                <div class="col-sm-10">
                    <div class="input-group">
                        <span class="input-group-addon "><i class="glyphicon glyphicon-asterisk "></i></span>
                        <input type="text" placeholder="Name " class="form-control">
                    </div>
                </div>
            </div>
            <div class="form-group">
                <label class="col-sm-2 control-label" for="InputAddress1">Address 1</label>
                <div class="col-sm-10">
                    <div class="input-group">
                        <span class="input-group-addon"><i class="glyphicon glyphicon-asterisk"></i></span>
                        <input type="text" class="form-control" placeholder="Address Line 1" autofocus required>
                    </div>
                </div>
                <span class="error col-sm-10 col-sm-offset-2">Required</span>
            </div>
            <div class="form-group">
                <label class="col-sm-2 control-label" for="InputAddress2">Address 2</label>
                <div class="col-sm-10">
                    <div class="input-group">
                        <span class="input-group-addon input-group-addon_width"><i class=""></i></span>
                        <input type="text" class="form-control" placeholder="Address Line 2">
                    </div>
                </div>
            </div>
            <div class="form-group">
                <label class="col-sm-2 control-label" for="InputCity">City</label>
                <div class="col-sm-10">
                    <div class="input-group">
                        <span class="input-group-addon"><i class="glyphicon glyphicon-asterisk form-control-feedback"></i></span>
                        <input ng-model="demo.city" ng-disabled="!editAllowed" type="text" class="form-control" placeholder="City" required>
                    </div>
                </div>
                <span ng-show="demographics_form.city.$error.required" class="error col-sm-10 col-sm-offset-2">Required</span>
            </div>
            <div class="form-group">
                <label class="col-sm-2 control-label" for="InputState">State</label>
                <div class="col-sm-10">
                    <div class="input-group">
                        <span class="input-group-addon"><i class="glyphicon glyphicon-asterisk form-control-feedback"></i></span>
                        <select id="state" class="form-control" required>
                            <option >State</option>
                        </select>
                    </div>
                </div>
            </div>
            <div ng-hide="!editAllowed" class="col-sm-12">
                <div class="row">
                    <div class="col-sm-offset-4 col-sm-2">
                        <button class="btn btn-success btn-block">Submit</button>
                    </div>
                    <div class="col-sm-2">
                        <button  class="btn btn-info btn-block">Cancel</button>
                    </div>
                </div>
            </div>
        </form>
    </div>
</body>
</html>