【问题标题】:span is not inline with input using bootstrap 3span 不与使用 bootstrap 3 的输入内联
【发布时间】:2015-09-03 12:19:54
【问题描述】:

我在表单标签中使用带有 form-horizo​​ntal 的 Bootstrap 3。我正在使用表单组,如下面的示例 HTML 所示。 span 没有像使用 form-horizo​​ntal 所期望的那样与输入控件内联。

<form name="productForm" class="form-horizontal">
<div class="col-lg-6">
    <div class="form-group">

            <span class="col-lg-4 col-md-4 col-sm-4 col-xs-4" style="text-align:right;">Number</span>

        <div class="col-lg-8 col-md-8 col-sm-8 col-xs-8">
            <input type="text" class="form-control  control-look-input" />
            <div class="control-look"></div>
        </div>
    </div>
    <div class="form-group">

            <span class="col-lg-4 col-md-4 col-sm-4 col-xs-4" style="text-align:right;">Name</span>

        <div class="col-lg-8 col-md-8 col-sm-8 col-xs-8">
            <input type="text" class="form-control control-look-input" />
            <div class="control-look"></div>
        </div>
    </div>
</div>
<!-- More tags -->

为了更好地理解,这里是fiddle

解决方案参考: 参考 span 中的 control-label 类,让它像fiddle working一样工作

【问题讨论】:

  • 您能否详细说明您希望用于此 HTML 的 CSS 的问题?
  • 我使用的是 Bootstrap 3,除了没有涉及其他 CSS。在getbootstrap.com/css/#forms-horizontal 中,我看到当 col-md-4 不用于标签时,标签和输入控件是内联的。在我的情况下,我必须在 span 之上使用 col-md-4。

标签: html css twitter-bootstrap-3


【解决方案1】:

您需要做的只是将 span 更改为 label 并将其放在包含输入的 div 上方,如下面的代码所示:

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet" />
<form name="productForm" class="form-horizontal">
  <div class="form-group">
    <label for="number" class="col-sm-2 control-label">Number</label>
    <div class="col-sm-10">
      <input type="text" class="form-control" id="number" placeholder="Enter your Number...">
    </div>
  </div>
  <div class="form-group">
    <label for="name" class="col-sm-2 control-label">Name</label>
    <div class="col-sm-10">
      <input type="text" class="form-control" id="name" placeholder="Enter your Name...">
    </div>
  </div>
</form>

但是如果你想要它作为一个跨度,我不推荐它的代码,因为你不能应用到 &lt;span&gt; 你可以应用到 &lt;label&gt; 就像你点击它会选择的标签他的意见。

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet" />
<form name="productForm" class="form-horizontal">
  <div class="form-group">
    <span for="number" class="col-sm-2 control-label">Number</span>
    <div class="col-sm-10">
      <input type="text" class="form-control" id="number" placeholder="Enter your Number...">
    </div>
  </div>
  <div class="form-group">
    <span for="name" class="col-sm-2 control-label">Name</span>
    <div class="col-sm-10">
      <input type="text" class="form-control" id="name" placeholder="Enter your Name...">
    </div>
  </div>
</form>

如果您有任何问题,或者如果我错过了您想要的东西,请告诉我。

【讨论】:

  • 我通过删除跨度外部的 div 来尝试它,我也尝试使用标签代替跨度。请参考jsfiddle.net/venudil/0q17uj22/2jsfiddle.net/venudil/0q17uj22/3。我的问题没有解决。它们仍然没有与输入内联。谢谢@Mohammed
  • 看起来您的代码使它们内联。让我根据您的代码尝试一下。
  • 谢谢@Mohammed。发现“控制标签”类正在发挥作用。我的代码没有。
  • 欢迎您@Venu,请不要忘记提供最佳答案,谢谢
【解决方案2】:

由于您的信息有限,很难说出您的其他样式是什么。 Here is a quick example 没有实现正确的样式会对您的表单造成影响,因为您的 &lt;span&gt;&lt;input&gt; 实际上位于两个不同的 div 中,可能未设置为内联显示。

.form-horizontal div {
    display: inline-block;
}

这就是我所说的单独 DIV 的意思,可能由于不使用“标签”,您的两个单独 DIV 不是内联的:

Bootstrap 似乎正在使用实际标签,所以您可能想朝那个方向冒险? (示例见下)

【讨论】:

  • 我以前使用display:inline-block;。在这里,我集中精力使用 Bootstrap 让它工作,因为似乎有办法做到这一点。我尝试在 form-horizantal 中使用标签,但对我不起作用。我理想的要求是跨度。谢谢@Michael
猜你喜欢
  • 2016-04-28
  • 1970-01-01
  • 1970-01-01
  • 2014-01-11
  • 2017-09-02
  • 1970-01-01
  • 2012-12-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多