Bootstrap - 输入组插件标签宽度对齐

Posted

技术标签:

【中文标题】Bootstrap - 输入组插件标签宽度对齐【英文标题】:Bootstrap - input-group-addon labels width alignment 【发布时间】:2017-06-19 04:39:20 【问题描述】:

您可以在下面看到我的输入组目前的情况。我希望labels宽度 相等

(fx. 标签占宽度的 25%,输入占 最后 75%)

我尝试添加自定义 CSS,但最终(出于某种原因)缩小了整个内容。

我更愿意让这个动态

(因为不是硬编码的 px 值,而是 % 值,所以如果你使 窗口更小)。

我的代码如下所示:

<div class="col-md-6" style="text-align: center">
   <div class="input-group input-group-lg form-group">
      <label class="input-group-addon">Område: </label>
      <select name="AreaId" asp-for="AreaId" class="form-control">
         <option disabled selected value=""> -- Vælg et område -- </option>          
            @foreach (var a in Model.Areas) 
               <option value="@a.ProfileID">@a.Name</option>
            
      </select>
   </div>
   <div class="input-group input-group-lg form-group">
      <label class="input-group-addon" asp-for="ProductNumber">Varenummer: </label>
      <input name="ProductNumber" asp-for="ProductNumber" class="form-control" type="text" placeholder="Indtast varenummer" maxlength="8" />
   </div>
   <div class="input-group input-group-lg form-group">
      <label class="input-group-addon" asp-for="OrderNumber">Ordrenummer: </label>
      <input name="OrderNumber" asp-for="OrderNumber" class="form-control" type="text" placeholder="Indtast ordrenummer" />
   </div>
   <div class="input-group input-group-lg form-group">
      <label class="input-group-addon" asp-for="DateRange">Dato (Fra-Til): </label>
      <input id="daterange" name="DateRange" asp-for="DateRange" class="form-control" type="text" value="" placeholder="Klik i boksen og vælg til/fra dato" />
   </div>
</div>

非常感谢任何帮助。提前致谢!

编辑:修复了我的表单组与输入组的组合 - 不再在同一个 div 中添加类

还添加了JSFiddle

【问题讨论】:

Bootstrap 的文档 specifically discourages combining input-group with other components - 我将从修复它开始。 @TiesonT。我现在修好了。我之前没有修复它的错误。实际上,在发布此内容之前,我已经阅读了该内容,但甚至没有意识到我没有在我的项目中修复它(尽管已修复)。但它并不能解决问题。向元素添加自定义样式仍然很奇怪,我找不到任何有完全相同问题的人,我正在寻求解决方案:) 【参考方案1】:

在您的代码中添加一些 css 即可...

.input-group-addon 
    min-width:60%;
    text-align:left;

工作代码 sn-p

<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
 <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
          <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
          <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
          <style type="text/css">
          	.input-group-addon  width: 60%;  // Or whatever width you want

/*.input-group  width: 100%; 
          </style>
          
  </head>

    <body>
    <div class="col-md-6" style="text-align: center">
    <div class="row">
    <div class="row">
   <div class="input-group input-group-lg form-group">
      <label class="input-group-addon">Område: </label>
      <select name="AreaId" asp-for="AreaId" class="form-control">
         <option disabled selected value=""> -- Vælg et område -- </option>          
            @foreach (var a in Model.Areas) 
               <option value="@a.ProfileID">@a.Name</option>
            
      </select>
      </div>
   </div>
    <div class="row">
   <div class="input-group input-group-lg form-group">
      <label class="input-group-addon" asp-for="ProductNumber">Varenummer: </label>
      <input name="ProductNumber" asp-for="ProductNumber" class="form-control" type="text" placeholder="Indtast varenummer" maxlength="8" />
   </div>
   </div>
    <div class="row">
   <div class="input-group input-group-lg form-group">
      <label class="input-group-addon" asp-for="OrderNumber">Ordrenummer: </label>
      <input name="OrderNumber" asp-for="OrderNumber" class="form-control" type="text" placeholder="Indtast ordrenummer" />
   </div>
   </div>
    <div class="row">
   <div class="input-group input-group-lg form-group">
      <label class="input-group-addon" asp-for="DateRange">Dato (Fra-Til): </label>
      <input id="daterange" name="DateRange" asp-for="DateRange" class="form-control" type="text" value="" placeholder="Klik i boksen og vælg til/fra dato" />
   </div>
   </div>
</div>
</body>
  </html>

【讨论】:

由于没有更好的响应,我将使用这个。它做(有点做)我需要它做的事情。【参考方案2】:

另一种改变标签宽度并达到预期效果的方法是添加html不间断空格&amp;nbsp;,如下图:

<div class="input-group mb-3">
  <div class="input-group-prepend">
    <span class="input-group-text" id="basic-addon1">Username &nbsp; &nbsp;</span>
  </div>
  <input type="text" class="form-control" placeholder="Username" aria-label="Username" aria-describedby="basic-addon1">
</div>

这不是最优雅的解决方案,但如果您知道其局限性,则此方法在某些情况下会很方便。

【讨论】:

以上是关于Bootstrap - 输入组插件标签宽度对齐的主要内容,如果未能解决你的问题,请参考以下文章

IE中的bootstrap v4输入组按钮和文本框对齐问题

两个输入相同的表单列采用所有单元格宽度 Bootstrap 3

带引导选择的输入组插件

当没有使用 Bootstrap 和 MVC5 的随附标签时,复选框输入严重对齐

Bootstrap 4 卡片 - 在底部对齐内容

从 Grails Twitter-Bootstrap 插件覆盖 CSS