【问题标题】:Bootstrap - forcing alignment of responsive elementsBootstrap - 强制对齐响应元素
【发布时间】:2014-03-06 22:28:33
【问题描述】:

我有几个元素很难水平对齐。我有一个JSFiddle example 来尝试说明它。我特别想实现的布局是查看第一个/最左边的电子邮件字段。

如果有空格,我希望滑块和输入字段都与标签对齐,否则它们都位于标签下方。

然而,我发现我最终得到了控件环绕,或者文本框周围有大量空白(甚至是灰色空间) - 而不是填充以占用空间。

不幸的是,我发现我似乎无法在切换开关上使用 col 类,因为这会导致渲染出现问题。

编辑

所以我尝试为我的滑块使用引导库,希望它可以提供更好的布局,并尝试使用引导列大小。这给我留下了类似的问题,您可以在下面的JSFiddle 中看到。

如果我可以解决第一个库的问题,我仍然会更喜欢使用第一个库。

我的 HTML 看起来像这样:

<div id="settingsBar" class="">
    <div class="well bs-component col-sm-6">
        <form class="form-horizontal">
            <fieldset>
                <legend style="color: #ccc;">General</legend>
                <div class="form-group row">
                    <label for="txtBackColor" class="col-sm-12 col-md-3 col-lg-4 control-label">Background Colour</label>
                    <div class="col-sm-12 col-md-9 col-lg-8 row">
                        <div class="col-xs-1 col-sm-0"></div>
                        <input id="tglBackColor" type="checkbox" name="tglBackColor" class="bootstrap-toggle form-control" checked data-on-color="success" data-off-color="danger">
                        <input id="txtBackColor" type="text" class="colorPicker form-control col-xs-10 col-sm-7 col-md-10 col-lg-11" />
                    </div>
                </div>
            </fieldset>
        </form>
    </div>
</div>

我遇到的问题是,根据大小,框会重叠。我想要的是最终的颜色框缩小以适应同一行,如果有足够的空间,标签位于上方或内联。

【问题讨论】:

  • 您将列放在行中,不要将 div 中的行包含在其他列中,例如
    - 在其周围放置一个
    并删除该行,使其变为:
  • @RyanMcDonough:好的——虽然我不相信,但把它拿出来似乎并没有什么不同?如果它确实并解决了问题,您可以修改 JSFiddle 来说明吗?

标签: css twitter-bootstrap responsive-design


【解决方案1】:

Bootstrap 有不同尺寸的控件。

您可以通过使用适当的类来控制列的呈现,例如:

<div class="col-xs-12 col-sm-6 col-md-4 col-lg-3"></div>

这意味着,具有此类的列将呈现超过 100% 的容器宽度(智能手机)、50% 的容器宽度(平板电脑)、33% 的容器宽度(小型笔记本/桌面屏幕)和 25% 的容器高分辨率显示器上的宽度。

您也可以尝试将 div 与 class="row" 放在列之前。 类行将取消列的左右填充。例如:

<div class="row">   
<div class="col-xs-12 col-sm-6 col-md-4 col-lg-3">some div</div>
<div class="col-xs-12 col-sm-6 col-md-4 col-lg-3">some div</div>
<div class="col-xs-12 col-sm-6 col-md-4 col-lg-3">some div</div>
</div>

你可以找到更多关于引导基础的信息here

【讨论】:

  • 嗨欧内斯特 - 感谢您的回答。不幸的是,正如我所提到的,这些似乎会导致我正在使用的滑块出现问题。
  • 嗨欧内斯特 - 我实际上已经更新了我的问题并尝试按照你所说的方式做一些事情,但我似乎仍然有一些问题。
  • 你好,伊恩,这都是关于数学的。让我们将这些 div 称为 A(text) B(switcher) C(input)。您将它们放在容器中,称为 X。无论容器的大小是多少,在台式机/笔记本电脑上,您都需要 ABC 33% 的 X 宽度。对于手机/平板电脑,您可能需要 ABC 100% 的 X 宽度。但这仅代表列。这是我上面的代码。所以,现在我们有 3 个很好的列,它们工作得很好,所以问题是这些列的内容。您需要将子元素的宽度设置为 100%,而不是使用绝对像素定义。如果你有问题,请告诉我:)
  • Enrest - 您可以尝试更新 JSFiddle 来为我说明吗?我理解加到 12 并尽量不直接在元素上放置宽度的想法......
  • 这还不错 - 但是颜色选择器仍然过早地包裹(如果要保持在同一行上,左右两边的空间很大)并且它不会随着区域的增长而扩展。
猜你喜欢
相关资源
最近更新 更多
热门标签