【问题标题】:Bootstrap form controls alignment when resizing window调整窗口大小时引导表单控制对齐
【发布时间】:2019-03-25 23:25:29
【问题描述】:

在这里使用 bootstrap 3.3 和 angular。

我正在尝试在我的网格上方创建一个搜索过滤器,但存在一些对齐问题。在整页中,我可以看到它们正确对齐,但是当我尝试调整页面大小时,我的所有表单控件都会上下混乱。我相信这些是一些缺少的 css 类,但似乎无法弄清楚那是什么。谁能指出我正确的方向。

我还在此处创建了一个 stackblitz 演示: https://angular-datrange-enhq8w.stackblitz.io/

如果你调整窗口大小,你会看到我在说什么。

这里是 stackblitz 编辑器: https://stackblitz.com/edit/angular-datrange-enhq8w

下面是一些相关代码:

<div id="filters"> 
  <form [formGroup]="filtersForm"  >
    <div class="row padding-top-10">
      <div class="col-xs-12 col-sm-12 col-md-1 col-lg-1 form-group" style="margin-right:65px">
        <label for="name">Name</label>
        <input formControlName="name" name="name" type="text" style="height:33px" autocomplete="off" class="hidden-xs hidden-sm" />
      </div>
    </div>
   </form> 
 </div>

另外请注意,如果您以某种方式看到演示,我觉得我的下拉菜单确实具有正确的样式,是否可以为此添加一些额外的 bootstrap 3 样式。

感谢您的调查。

有人要输入吗?

【问题讨论】:

  • 尝试在输入元素中添加“form-control”类
  • @claudiu.nicola 不,没用。
  • 你正在用你的 "style="margin-right:65px" 杀死网格。你的选择是将你的边距添加到屏幕大小或使用你自己的 flex-layout。PS:这是因为您的内容宽度大于容器宽度
  • 您遇到了中型设备的问题。给它 2 列:col-md-2
  • 是的,您不应该为您的网格设置样式。设置网格内容的样式。

标签: html css angular twitter-bootstrap-3


【解决方案1】:

引导程序的网格系统规定每一行都必须由容器类包装。

<div id="filters">
        <form [formGroup]="filtersForm">
            <div class="container-fluid">
                <div class="row padding-top-10">
                    <div class="col-xs-12 col-sm-12 col-md-1 col-lg-1 form-group" style="margin-right:65px">
                        <label for="name">Name</label>
                        <input formControlName="name" name="name" type="text" style="height:33px" autocomplete="off"
                            class="hidden-xs hidden-sm" />
                    </div>
                </div>
            </div>
        </form>
    </div>

这并不能解决更改大小的问题。引导网格系统设置如下:对于每一行,有 12 列。您的意思是,对于具有类 col-xs-12 的 div,当屏幕尺寸特别小时,使该类中的元素具有 100% 的宽度。您还说当它遇到 col-md-1(中等屏幕尺寸断点)时,它的宽度应该为 8.3333%。您提供的该页面中有 6 个 div。由于您有 6 个 div,因此 12 列 / 6 个 div = 每个 div 2 列。因此你的代码应该被重构为这样的:

<div id="filters">
        <form [formGroup]="filtersForm">
            <div class="container-fluid">
                <div class="row padding-top-10">
                    <div class="col-xs-12 col-md-2 form-group" style="margin-right:65px">
                        <label for="name">Name</label>
                        <input formControlName="name" name="name" type="text" style="height:33px" autocomplete="off"
                            class="hidden-xs hidden-sm" />
                    </div>
                </div>
            </div>
        </form>
    </div>

注意我是如何删除 col-sm-12.. 这是因为 col-xs-12 会将每个屏幕尺寸的宽度设置为下一个给定的类。在这种情况下,您有 col-xs-12,因此当屏幕尺寸为 xs 和 sm 时,它将具有 100% 的宽度。当它遇到 md 断点时,它会将宽度更改为 2/12,并且对于 lg 和 xl 屏幕尺寸具有相同的宽度。

【讨论】:

【解决方案2】:

查看引导程序grid system。 基本语法是:

  • 容器 |容器流体
      • 列(col 的总数必须为 12)

此外,您的col div 上不需要额外的边距。

<div id="filters"> 
  <form class="container-fluid">
    <div class="row padding-top-10">
      <div class="col-xs-12 col-md-2">
        <div class="form-group">
          <label for="name">Name</label>
          <input formControlName="name" name="name" type="text" autocomplete="off" class="form-control" />
        </div>
      </div>
      <div class="col-xs-12 col-md-2">
        <div class="form-group">
          <label for="age">Age Range</label>
          <select class="form-control" formControlName="age">
            <option [selected] value="">All</option>
            <option *ngFor="let age of ages" value='{{age}}'>
              {{age}}
            </option>
          </select>
        </div>
      </div>
    </div>
  </form>
</div>

如果您希望即使在小屏幕上也将所有列保留在一行中,请删除 col-xs-12 并将 col-md-2 更改为 col-xs-2

【讨论】:

  • 我尝试根据您的建议进行调整和更新,但这并没有按预期工作。我有大约 6-7 个控件。查看我更新的演示:angular-datrange-enhq8w.stackblitz.io。这里是编辑:stackblitz.com/edit/angular-datrange-enhq8w
  • 将您的 &lt;div class="col-xs-12 col-xs-2"&gt; 编辑为 &lt;div class="col-2"&gt; 并从这些 div 中删除所有边距。此外,您必须在所有输入字段中添加“form-control”类。
  • 我按照您在此处的建议进行了更改:angular-datrange-enhq8w.stackblitz.io 并且它在一定程度上起作用:angular-datrange-enhq8w.stackblitz.io 但是如果您尝试调整窗口大小,在某一点之后,表单控件会变得混乱。我正在寻找的是在一定宽度之后,如果窗口的大小很小,表单控件应该垂直布局。
猜你喜欢
  • 2012-01-28
  • 2012-04-23
  • 2013-08-30
  • 1970-01-01
  • 2017-09-12
  • 2021-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多