60

我是新手,尤其是 Bootstrap。我有这个代码:

<div class="row">
    <div class="col-lg-3">
       <div class="input-group">
         <input type="text" class="form-control">
         <span class="input-group-btn">
             <button class="btn btn-default" type="button">Go!</button>
         </span>
       </div><!-- /input-group -->
    </div><!-- /.col-lg-6 -->
</div><!-- /.row -->

我需要将此输入字段和按钮放在页面中心:

这没有用:"margin-left: auto; margin-right:auto;"

在网页上看起来像这样

有没有人有任何想法?

4

10 回答 10

118

您可以使用偏移量使列显示居中,只需使用等于行剩余大小一半的偏移量,在您的情况下,我建议使用col-lg-4with col-lg-offset-4,即(12-4)/2.

<div class="row">
    <div class="col-lg-4 col-lg-offset-4">
        <div class="input-group">
            <input type="text" class="form-control" /> 
            <span class="input-group-btn">
                <button class="btn btn-default" type="button">Go!</button>
            </span>
        </div><!-- /input-group -->
    </div><!-- /.col-lg-4 -->
</div><!-- /.row -->

演示小提琴

请注意,此技术仅适用于偶数列大小(.col-X-2, .col-X-4,col-X-6等...),如果您想支持可以使用的任何大小,margin: 0 auto;但您也需要从元素中删除浮动,我建议使用自定义 CSS 类,如下列的:

.col-centered{
    margin: 0 auto;
    float: none;
}

演示小提琴

于 2013-08-03T19:35:42.740 回答
10

将元素居中的最佳方法是使用.center-block辅助类。但是你的引导版本必须不低于3.1.1

<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha/css/bootstrap.css" rel="stylesheet" />
<div class="row">
  <div class="col-lg-3 center-block">
    <div class="input-group">
      <input type="text" class="form-control">
      <span class="input-group-btn">
             <button class="btn btn-default" type="button">Go!</button>
         </span>
    </div>
    <!-- /input-group -->
  </div>
  <!-- /.col-lg-6 -->
</div>
<!-- /.row -->

于 2015-11-28T10:10:23.527 回答
9

尝试将此样式应用于您的div class="input-group"

text-align:center;

查看它:小提琴

于 2013-08-03T20:17:51.097 回答
7

响应式网站不需要使用偏移量。

使用带有 justify 内容中心的 flexbox:

<div class="row d-flex justify-content-center">
  <input></input>
</div>
于 2020-10-27T09:45:03.990 回答
5

好的,这对我来说是最好的解决方案。Bootstrap 包括移动优先的流体网格系统,随着设备或视口大小的增加,该系统可以适当地扩展到 12 列。所以这在每个浏览器和设备上都能完美运行:

        <div class="row">
            <div class="col-lg-4"></div>
            <div class="col-lg-4">
                <div class="input-group">
                    <input type="text" class="form-control" /> 
                    <span class="input-group-btn">
                        <button class="btn btn-default" type="button">Go!</button>
                    </span>
                </div><!-- /input-group -->
            </div><!-- /.col-lg-4 -->
            <div class="col-lg-4"></div>
        </div><!-- /.row -->

这意味着 4 + 4 + 4 =12... 所以第二个 div 将在中间。

示例:http: //jsfiddle.net/jpGwm/embedded/result/

于 2013-08-04T22:50:27.893 回答
4

对我来说,这个解决方案在 TD 中将输入字段居中效果很好:

<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha/css/bootstrap.css" rel="stylesheet" />
<td style="background:#B3AEB5;">
  <div class="form-group text-center">
    <div class="input-group" style="margin:auto;">
      <input type="month" name="p2" value="test">
    </div>
  </div>
</td>

于 2015-12-07T22:26:18.910 回答
2

尝试使用此代码:

.col-lg-3 {
  width: 100%;
}
.input-group {
   width: 200px; // for exemple
   margin: 0 auto;
}

如果它不起作用,请使用 !important

于 2013-08-03T19:18:19.433 回答
1

那么在我的情况下,以下工作正常

<div class="card-body p-2">
  <div class="d-flex flex-row justify-content-center">
     <div style="margin: auto;">
        <input type="text" autocomplete="off"
          style="max-width:150px!important; "
          class="form-control form-control-sm font-weight-bold align-self-center w-25" id="dtTechState">
     </div>
  </div>
</div>
于 2020-12-03T03:11:51.837 回答
0

对于 bootstrap 4,使用 offset-4,见下文。

<div class="mx-auto">        
        <form class="mx-auto" action="/campgrounds" method="POST">
            <div class="form-group row">                
                <div class="col-sm-4 offset-4">
                    <input class="form-control" type="text" name="name" placeholder="name">
                </div>
            </div>
            <div class="form-group row">               
                <div class="col-sm-4 offset-4">
                    <input class="form-control" type="text" name="picture" placeholder="image url">
                </div>
            </div>
            <div class="form-group row">
                    <div class="col-sm-4 offset-4">
                        <input class="form-control" type="text" name="description" placeholder="description">
                    </div>
                </div>
            <button class="btn btn-primary" type="submit">Submit!</button>
            <a class="btn btn-secondary"  href="/campgrounds">Go Back</a>
        </form>      
    </div>
于 2020-08-06T03:17:43.680 回答
0

在 b4 你也可以使用d -flex justify-content-center

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"/>

<div class="form-group">
                
    <div class="d-flex justify-content-center">
    
    <input type="text" class="form-control">
    
     <span class="input-group-btn">
         <button class="btn btn-default" type="button">Go!</button>
     </span>
     
    </div>      
        
</div>

于 2021-06-24T14:47:19.057 回答